Y07 - Παραλληλα Συστηματα (Parallel Systems)
Spring 2016

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

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

  • Πολυεπεξεργαστικά και πολυπύρηνα συστήματα, διασύνδεση επεξεργαστών-μνημών, ιεραρχία μνήμης, προβλήματα και συνοχή των κρυφών μνημών (cache coherency), συνέπεια μνήμης (memory consistency)
  • Παράλληλος προγραμματισμός με διεργασίες, νήματα και OpenMP
  • Πολυϋπολογιστικά συστήματα και clusters, δίκτυα διασύνδεσης, διαδρόμηση και μεταγωγή υψηλών ταχυτήτων
  • Παράλληλος προγραμματισμός με MPI και με μοντέλα υψηλότερου επιπέδου (π.χ. map-reduce)
  • Οργάνωση (GP)GPUs και προγραμματιστικά μοντέλα (π.χ. OpenCL)
  • Επιπλέον θέματα, ανάλογα με τον διαθέσιμο χρόνο και τα ενδιαφέροντα των φοιτητών.

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

Άλλα αξιολογα textbooks

  • P.S. Pacheco, Εισαγωγή στον παράλληλο προγραμματισμό, Κλειδάριθμος 2015
    » Μετάφραση του An introduction to parallel programming, Elsevier, 2011.
  • 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 16/02 Καλωσόρισμα, οργάνωση και περιεχόμενα μαθήματος.
2 23/02 Επισκόπηση παράλληλων συστημάτων. Εισαγωγή στην κοινόχρηστη μνήμη. Διαφάνειες
3 01/03 Οργάνωση κοινόχρηστης μνήμης Ι: η διασύνδεση επεξεργαστών-μνημών. Διαφάνειες 1ο σετ ασκήσεων.
(Έως: 8/3/2016)
4 8/3 Οργάνωση κοινόχρηστης μνήμης ΙI: η λειτουργία της μνήμης. Διαφάνειες 2ο σετ ασκήσεων.
(Έως: 22/3/2016)
5 15/3 Αργία Πανεπιστημίου
6 22/3 Προγραμματισμός με κοινόχρηστο χώρο διευθύνσεων Ι: νήματα POSIX Διαφάνειες 3ο σετ ασκήσεων.
(Έως: 29/3/2016)
7 29/3 Προγραμματισμός με κοινόχρηστο χώρο διευθύνσεων I + II
8 5/4 Προγραμματισμός με κοινόχρηστο χώρο διευθύνσεων ΙI: OpenMP Διαφάνειες 4ο σετ ασκήσεων.
(Έως: 19/4/2016)
9 12/4 Οργάνωση κατανεμημένης μνήμης Ι: το δίκτυο διασύνδεσης Διαφάνειες
10 19/4 Οργάνωση κατανεμημένης μνήμης ΙI: μεταγωγή, NUMA, clusters, DSM Διαφάνειες Ανάθεση θεμάτων παρουσιάσεων
11 10/5 Προγραμματισμός με μεταβίβαση μηνυμάτων Διαφάνειες 5ο σετ ασκήσεων.
(Έως: 24/5/2016)
12 17/5 Μετρικές και επιδόσεις Διαφάνειες Ανάθεση projects
13 24/5 Παρουσιάσεις θεμάτων » GPUs + CUDA/OpenCL
» ΟpenACC + OpenMP 4.0
14 31/5 Project time

Παρουσιάσεις θεμάτων

Πιθανά θέματα για παρουσίαση:
  • GPUs και CUDA / OpenCL
  • Γλώσσες προγραμματισμού Partitioned Global Address Space (PGAS)
  • Map-Reduce και Pregel
  • OpenMP 4.0 και OpenACC

Projects

Πιθανά θέματα για τελικό project:
  • Υλοποίηση κλειδαριών με τις ατομικές εντολές που περέχει ο GCC, σε διάφορες μηχανές
  • Παράλληλο sorting
  • Λαβύρινθοι και OpenMP με cancellations
  • Η βιβλιοθήκη hwloc και OMP_PLACES στο OpenMP
  • Εφαρμογές OpenMP στην Parallella