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

Ο σκοπός του μαθήματος είναι να αποτελέσει μία εισαγωγή στην οργάνωση και τη χρήση των υπολογιστικών συστημάτων υψηλών επιδόσεων. Καλύπτει τις περισσότερες αρχιτεκτονικές κατηγορίες παράλληλων υπολογιστών, συμπεριλαμβανομένων των συστημάτων κοινής μνήμης, των πολυπύρηνων (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 21/2 Αργία Πανεπιστημίου
2 28/2 Αργία Πανεπιστημίου
3 7/3 Καλωσόρισμα, οργάνωση και περιεχόμενα μαθήματος.
4 14/3 Επισκόπηση συστημάτων υψηλών επιδόσεων. Εισαγωγή στην κοινόχρηστη μνήμη. Διαφάνειες 1η εργασία (έως 21/3/2023):
Δείτε την ομιλία των Patterson & Hennessy για το βραβείο Turing, διαβάστε το σχετικό άρθρο και γράψτε μία περίληψη (1-2 σελίδες)
5 21/3 Οργάνωση κοινόχρηστης μνήμης Ι: η διασύνδεση επεξεργαστών-μνημών. Διαφάνειες 2η εργασία
(Έως: 4/4/2023)
6 28/3 Οργάνωση κοινόχρηστης μνήμης ΙI: η λειτουργία της μνήμης. Διαφάνειες 3η εργασία.
(Έως: 11/4/2023)
8 4/4 Προγραμματισμός με κοινόχρηστο χώρο διευθύνσεων Ι: νήματα POSIX Διαφάνειες 4η εργασία: Διαβάστε το paper που αναφέρεται στις διαφάνειες για την υλοποίηση κλειδαριών και δώστε μία μικρή περίληψη.
(Έως: 25/4/2023)
9 25/4 Προγραμματισμός με κοινόχρηστο χώρο διευθύνσεων ΙI: OpenMP Διαφάνειες
» Οδηγίες για το cluster
» Κώδικας mandelbrot
Δοκιμαστικά συστήματα Ax=b, διάστασης 1024 και 2048
5ο σετ ασκήσεων.
(Έως: 9/5/2023)
10 2/5 Οργάνωση κατανεμημένης μνήμης Ι: το δίκτυο Διαφάνειες
11 9/5 Οργάνωση κατανεμημένης μνήμης ΙI: NUMA, clusters, DSM Διαφάνειες Θέματα reading project
12 16/5 Προγραμματισμός με μεταβίβαση μηνυμάτων Διαφάνειες
13 23/5 GPUs: οργάνωση και προγραμματισμός Διαφάνειες
14 30/5 Παρουσιάση reading projects Θέματα προγραμματιστικού project & πληροφορίες 6ου σετ ασκήσεων 6ο σετ ασκήσεων.
(Έως: 13/6/2023)
15 6/6 Μετρικές και επιδόσεις + final projects Διαφάνειες Αναθέσεις των projects και milestones