Το μάθημα καλύπτει την αρχιτεκτονική παράλληλων συστημάτων καθώς επίσης και τον προγραμματισμό τους, μέσω της σχεδίασης, της ανάπτυξης και της αξιολόγησης παράλληλων εφαρμογών. Εισαγωγή στην παράλληλη υπολογιστική (ανάγκη και προκλήσεις). Παράλληλο υλικό (συστήματα SIMD, MIMD, GPUs, δίκτυα διασύνδεσης, συνοχή και συνέπεια κρυφής μνήμης, συστήματα κοινόχρηστης και κατανεμημένης μνήμης). Παράλληλο λογισμικό (διεργασίες, πολυεργασίες, νήματα, συγχρονισμός και επικοινωνία σε κοινό χώρο διευθύνσεων και μέσω ανταλλαγής μηνυμάτων). Μέτρα επιτάχυνσης, επίδοσης, κλιμάκωσης. Ανάπτυξη παράλληλων προγραμμάτων (μεθοδολογία σχεδιασμού και αξιολόγησης παράλληλων εφαρμογών.) Παραλληλία δεδομένων (data parallelism) και εργασιών (task parallelism). Προγραμματισμός συστημάτων κοινόχρηστης μνήμης με Pthreads και OpenMP, προγραμματισμός συστημάτων κατανεμημένης μνήμης με MPI, προγραμματισμός για κάρτες γραφικών (CUDA), και υβριδικός συνδυασμός τους.
Η διδασκαλία του μαθήματος βασίζεται στο βιβλίο "Εισαγωγή στον Παράλληλο Προγραμματισμό", του Peter S. Pacheco, (μετάφραση και επιστημονική επιμέλεια στα ελληνικά: Δ.Γκιζόπουλος), Εκδόσεις Κλειδάριθμος, 2015. (τίτλος πρωτότυπου: "An introduction to Parallel Programming", 1st Edition, Elsevier/Morgan Kaufmann).
Επίσης, θα χρησιμοποιηθεί υλικό από το βιβλίο "Παράλληλα συστήματα και προγραμματισμός", του Βασιλείου Δημακόπουλου, Εκδόσεις Κάλλιπος (http://hdl.handle.net/11419/3209), καθώς επίσης και από το βιβλίο "Προγραμματισμός Μαζικά Παράλληλων Επεξεργαστών", των David B. Kirk και Wen-mei W. Hwu, Εκδόσεις Κλειδάριθμος, 2010.
Σημειώσεις και διαφάνειες για παράλληλο προγραμματισμό στα περιβάλλοντα Pthreads, OpenMP, MPI, CUDA