Λ8 - Συστηματα και Λογισμικο Υψηλων Επιδοσεων
High Performance Systems and Software
Spring 2018

MS-Teams class

Ο σκοπός του μαθήματος είναι να αποτελέσει μία εισαγωγή στην οργάνωση και τη χρήση των υπολογιστικών συστημάτων υψηλών επιδόσεων. Καλύπτει τις περισσότερες αρχιτεκτονικές κατηγορίες παράλληλων υπολογιστών, συμπεριλαμβανομένων των συστημάτων κοινής μνήμης, των πολυπύρηνων (multicores) και των συστημάτων με πολύ μεγάλο αριθμό πυρήνων (manycores), των υπολογιστικών συστάδων (clusters) και των γραφικών επεξεργαστών γενικού σκοπού (GPGPUs), τόσο από πλευράς οργάνωσης όσο και προγραμματισμού. Οι φοιτητές θα κληθούν να μελετήσουν ερευνητικές εργασίες που σχετίζονται με τα θέματα που θα μας απασχολήσουν στο μάθημα, να εξασκηθούν με τακτικές εργασίες και να φέρουν εις πέρας ένα σημαντικό project.

Μερικά απο τα θέματα που θα μας απασχολήσουν:

  • Ιστορία και σημασία των υπολογιστικών συστημάτων υψηλών επιδόσεων
  • Βασικές αρχές παραλληλισμού σε επίπεδο υλικού και λογισμικού και νόμοι επιδόσεων.
  • Οργάνωση κοινόχρηστης μνήμης και πολυπύρηνες αρχιτεκτονικές.
  • Ιεραρχία της μνήμης και τα προβλήματα της συνοχής (coherency) και της συνέπειας (consistency).
  • Οργάνωση κατανεμημένης μνήμης και υπολογιστικά πλέγματα.
  • Δίκτυα διασύνδεσης, μεταγωγή υψηλών επιδόσεων.
  • Κατανεμημένη κοινή μνήμη και ανομοιόμορφη προσπέλαση μνήμης (NUMA).
  • Οργανώσεις SIMD και επιταχυντών GPUs.
  • Αρχές και γλώσσες παράλληλου προγραμματισμού.
  • Προγραμματισμός σε κοινό χώρο διευθύνσεων (νήματα, OpenMP).
  • Προγραμματισμός με μεταβίβαση μηνυμάτων (MPI).
  • Προγραμματιστικά μοντέλα για GPUs
  • Επιπλέον θέματα, ανάλογα με τον διαθέσιμο χρόνο και τα ενδιαφέροντα των φοιτητών.

Ελευθερα βιβλια

Αλλα αξιολογα textbooks

  • P.S. Pacheco, Εισαγωγή στον παράλληλο προγραμματισμό, Κλειδάριθμος 2015
    Μετάφραση του An introduction to parallel programming, Elsevier, 2011.
  • T. Rauber, G. Runger, Parallel Programming for Multicore and Cluster Systems, Springer, 2010
  • A. Grama, G. Karypis, V. Kumar, A. Gupta, Introduction to Parallel computing (2nd ed), Addison Wesley, 2003.
  • B. Wilkinson, M. Allen, Parallel programming: Techniques and applications using networked workstations and parallel computers (2nd ed), Prentice Hall, 2004.

Πρόγραμμα μαθήματος

Εβδ. Ημ/νία Θέμα Υλικό Εργασίες / Παρατηρήσεις
1 23/2 Καλωσόρισμα, οργάνωση και περιεχόμενα μαθήματος.
2 2/3 Επισκόπηση συστημάτων υψηλών επιδόσεων. Εισαγωγή στην κοινόχρηστη μνήμη. Διαφάνειες 1η εργασία:
Δείτε την ομιλία των Patterson & Hennessy για το βραβείο Turing, διαβάστε το σχετικό άρθρο και γράψτε μία περίληψη (1 σελίδα)
3 9/3 Οργάνωση κοινόχρηστης μνήμης Ι: η διασύνδεση επεξεργαστών-μνημών. Διαφάνειες 2η εργασία
(Έως: 23/3/2021)
4 16/3 Αργία Πανεπιστημίου
5 23/3 Οργάνωση κοινόχρηστης μνήμης ΙI: η λειτουργία της μνήμης. Διαφάνειες 3ο σετ ασκήσεων.
(Έως: 6/4/2021)
6 30/3 Προγραμματισμός με κοινόχρηστο χώρο διευθύνσεων Ι: νήματα POSIX Διαφάνειες Homework #4: Διαβάστε το paper που αναφέρεται στις διαφάνειες για την υλοποίηση κλειδαριών και δώστε μία μικρή περίληψη.
(Έως: 13/4/2021)
7 6/4 Προγραμματισμός με κοινόχρηστο χώρο διευθύνσεων ΙI: OpenMP Διαφάνειες
» Οδηγίες για το cluster
» Κώδικας mandelbrot
Δοκιμαστικά συστήματα Ax=b, διάστασης 1024 και 2048
5ο σετ ασκήσεων.
(Έως: 27/4/2021)
8 13/4 Οργάνωση κατανεμημένης μνήμης Ι: το δίκτυο διασύνδεσης Διαφάνειες
9 20/4 Οργάνωση κατανεμημένης μνήμης ΙI: μεταγωγή, NUMA, clusters, DSM Διαφάνειες Θέματα reading project
10 11/5 Προγραμματισμός με μεταβίβαση μηνυμάτων (I) Διαφάνειες 6ο σετ ασκήσεων.
(Έως: 1/6/2021)
11 18/5 Παρουσιάση reading project (Infiniband + Dragonfly)
Προγραμματισμός με μεταβίβαση μηνυμάτων (II)
12 25/5 Παρουσιάση reading project (Σύγχρονες κλειδαριές για συστήματα NUMA)
Προγραμματίζοντας με GPUs
Διαφάνειες Τελική ανάθεση projects