Παράλληλος και Κατανεμημένος Υπολογισμός
Στόχοι:
Με την επιτυχή παρακολούθηση του μαθήματος ο φοιτητής μπορεί:
-
Να κατανοήσει και να εξηγήσει τις θεμελιώδεις έννοιες και τους περιορισμούς του παράλληλου και κατανεμημένου υπολογισμού, και να εφαρμόσει αυτές τις έννοιες σε συγκεκριμένα υπολογιστικά συστήματα και εφαρμογές.
-
Να προσαρμόσει και να αναπτύξει αλγόριθμους και εφαρμογές που να εκτελούνται σε παράλληλα και κατανεμημένα συστήματα, και να αναλύσει την ορθότητα, αξιοπιστία και απόδοσή τους.
Δεξιότητες:
Μελέτη, σχεδίαση, ανάλυση, προγραμματισμός, εκτέλεση παράλληλων και κατανεμημένων υπολογισμών.
Προαπαιτήσεις:
Προγραμματισμός υπολογιστών, αλγόριθμοι, δομές δεδομένων
Περιεχόμενο μαθήματος:
Παράλληλα και κατανεμημένα συστήματα: Συστήματα μοιραζόμενης και κατανεμημένης μνήμης, πολυπύρηνοι επεξεργαστές, επεξεργαστές γραφικών γενικού σκοπού, ιεραρχία μνήμης, δίκτυα διασύνδεσης και δικτυακή υποδομή, συστοιχίες, πλέγματα, νέφη.
Λειτουργικά συστήματα και διαδιεργασιακή επικοινωνίας: διεργασίες, νήματα, αμοιβαίος αποκλεισμός και συγχρονισμός, κλειδώματα, σηματοφόροι, μεταβλητές συνθήκης, επόπτες, μηνύματα και ουρές μηνυμάτων, πελάτης-διακομιστής και κλήση απομακρυσμένης διαδικασίας.
Μοντέλα, περιβάλλοντα, γλώσσες και τεχνικές παράλληλου και κατανεμημένου προγραμματισμού: πολυνηματικός μεταβίβαση μηνυμάτων, υποδοχές, κλήση απομακρυσμένης διαδικασίας, κατανεμημένα αντικείμενα, υπηρεσιοστρεφής, κανάλια και δράστες, προγραμματισμός επεξεργαστών γραφικών γενικού σκοπού, συναρτησιακός προγραμματισμός, μεγάλα δεδομένα.
Παράλληλοι και κατανεμημένοι αλγόριθμοι: παραλληλισμός δεδομένων και εργασιών, συντονιστής-εργαζόμενοι, γράφος εργασιών, διοχέτευση (ροή δεδομένων), δεξαμενή εργασιών, συναρτησιακά μοντέλα. Μετρικές και πειραματική εκτίμηση απόδοσης παράλληλων και κατανεμημένων εφαρμογών.
Προτεινόμενη βιβλιογραφία:
Introduction to Parallel Computing (2nd edition). Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar, 2003, ISBN 78-8131708071
Parallel and Distributed Computation D.Bertsekas and J.Tsitsiklis, 1989, ISBN 0-13-648700-9
Parallel Programming in C withMPI and OpenMP, Michael Quinn, 2004, ISBN 007-282256-2
Parallel Programming (2nd edition). B.Wilkinson, M.Allen, 2005, ISBN 0-13-140563-2
Progamming Massively Parallel Processors, Second Edition, D.Kirk, W.Hwu, 2013, ISBN 978-0-12-415992-1
Distributed Systems: Concepts and Design (5th edition). George Coulouris, Jean Dollimore, Tim Kindberg and Gordon Blair,2011, ISBN 0-13-214301-1
Distributed Systems (3rd edition). Maarten van Steen, Andrew S. Tanenbaum, 2017, ISBN 978-1543057386
Concurrency - State Models & Java Programs (2nd edition). J. Magee, J. Kramer, 2006, ISBN 978-0470093559
Distributed and Cloud Computing: From Parallel Processing to the Internet of Things Kai Hwang, Jack Dongarra and Geoffrey C. Fox, 2011, ISBN 9780123858801
Μέθοδοι αξιολόγησης:
50% Εργαστηριακές ασκήσεις
50% Τελική γραπτή εξέταση
Οι φοιτητές πρέπει να επιτύχουν τουλάχιστο τη βάση τόσο στις Εργαστηριακές Ασκήσεις όσο και στη Τελική γραπτή εξέταση.