Σκοπός

Στόχος του μαθήματος είναι οι μεταπτυχιακοί φοιτητές, μετά την επιτυχή παρακολούθησή τους, να είναι σε θέση: (α) να γνωρίζουν τις διαφορές μεταξύ του κλασικού σειριακού προγραμματισμού σε σχέση με τον Παράλληλο Προγραμματισμό, (β) να γνωρίζουν τον τρόπο με τον οποίο μπορούν να μετατρέψουν σειριακούς αλγορίθμους σε παράλληλους, χρησιμοποιώντας την κατάλληλη αρχιτεκτονική καθώς και το κατάλληλο μοντέλο προγραμματισμού, (γ) να έχουν τη δυνατότητα να δημιουργούν και να εκτελούν παράλληλα προγράμματα είτε σε υπερυπολογιστή (grid computer) είτε σε συστοιχία Η/Υ με το λογισμικό MATLAB.

Περίγραμμα

  • Εισαγωγή: γενικά περί παράλληλου προγραμματισμού, παράλληλες αρχιτεκτονικές, μέτρα απόδοσης, κατηγοριοποίηση κατά Φλυν (Flynn) και νόμος του Άμνταλ (Amdahl), κατευθυνόμενοι μη-Κυκλικοί Γράφοι (DAGs) και διαγράμματα Gantt.

  • Παράλληλες αρχιτεκτονικές: γενική επισκόπηση και εμβάθυνση στις κλάσεις SIMD, MIMD κοινής και κατανεμημένης μνήμης.

  • Παράλληλος προγραμματισμός-εργαλεία: αρχές παράλληλου προγραμματισμού κοινής μνήμης και SIMD, προγραμματισμός στο μοντέλο κοινής μνήμης, προγραμματισμός με μεταβίβαση μηνυμάτων, προγραμματισμός πελάτη-εξυπηρετητή.

  • Παράλληλοι αλγόριθμοι επεξεργασίας πινάκων, ταξινόμησης, αναζήτησης κ.α. για διάφορες αρχιτεκτονικές. Υπολογισμός παράλληλης πολυπλοκότητας (επεξεργασία, επικοινωνία).