Παράλληλα και Κατανεμημένα Συστήματα

Σκοπός μαθήματος

Η μελέτη βασικών αρχιτεκτονικών συστημάτων παράλληλου και κατανεμημένου υπολογισμού, καθώς και τεχνικών και εργαλείων παράλληλου υπολογισμού/προγραμματισμού σε περιβάλλοντα κοινής και κατανεμημένης μνήμης.

Στόχοι μαθήματος

  • H κατανόηση της προόδου της τεχνολογίας (αρχιτεκτονική συστήματος και δίκτυα διασύνδεσης υψηλών ταχυτήτων) μέσω της ανάπτυξης των παράλληλων και κατανεμημένων υπολογιστικών συστημάτων.
  • Η εκτίμηση/κατανόηση των προκλήσεων και των ευκαιριών που αντιμετωπίζουν οι χρήστες παράλληλων και κατανεμημένων συστημάτων.
  • Η κατανόηση των βασικές αρχών και τεχνικών παραλληλισμού σε περιβάλλοντα κοινής και κατανεμημένης μνήμης.
  • Η εξοικείωση με μία από τις πιο διαδεδομένες πλατφόρμες παραλληλισμού κατανεμημένης μνήμης μέσω ανταλλαγής μηνυμάτων (MPI).
  • Η εξοικείωση με την πλέον διαδεδομένη πλατφόρμα παραλληλισμού κοινής μνήμης (OpenMP).

Περιγραφή μαθήματος

Βασικά στοιχεία αρχιτεκτονικής συστημάτων παράλληλου και κατανεμημένου υπολογισμού κοινής και κατανεμημένης μνήμης. Τεχνικές μεταγωγής υψηλών επιδόσεων. Πολυπύρηνες αρχιτεκτονικές και επιταχυντές GPUs. Bασικές αρχές παραλληλισμού. Επιτάχυνση και αποδοτικότητα παράλληλων αλγορίθμων. Εισαγωγή στον προγραμματισμό κοινής μεταβλητής. Κρίσιμα τμήματα, αμοιβαίος αποκλεισμός, συγχρονισμός φράγματος (barrier synchronization), σημαφόροι , παρακολουθητές (monitors). Προγραμματισμός σε κοινό χώρο διευθύνσεων (Pthreads, OpenMP). Τεχνικές παραλληλισμού κατανεμημένης μνήμης. Αλγόριθμοι Παράλληλης Ταξινόμησης. Παράλληλοι αλγόριθμοι αριθμητικής ανάλυσης και επιστημονικού υπολογισμού (numerical algorithms). Προγραμματισμός κατανεμημένης μνήμης μέσω ανταλλαγής μηνυμάτων (MPI). Cluster computing, αρχιτεκτονικές διαμόρφωσης ενός cluster (clusters of PCs, Workstations, SMPs κ.λπ.), τεχνολογίες και εργαλεία προγραμματισμού (thread libraries and OpenMP, MPI, DSM platforms, debuggers, profilers, analysis tools), τεχνολογίες δικτυακής επικοινωνίας (SCI, Myrinet, Gigabit ethernet κ.λπ.). Επεξεργασία σε υπολογιστικά πλέγματα (grid computing), τεχνικές δρομολόγησης εργασιών και πολιτικές εκχώρησης πόρων σε περιβάλλοντα grid. Κατανεμημένη Επεξεργασία, ενδιάμεσο λογισμικό, υπηρεσίες ενδιάμεσου λογισμικού, οργάνωση κατανεμημένων συστημάτων, μοντέλο πελάτη-διακομιστή (client-server), ομότιμα συστήματα (P2P systems), δίκτυα αισθητήρων (sensor networks), location-based εφαρμογές, πρωτόκολλα δρομολόγησης καθώς και αποτελεσματικής διαχείρησης πόρων.

Βιβλιογραφία

  1. David Culler, J.P. Singh, and Anoop Gupta. Parallel Computer Architecture: AHardware/Software Approach. Morgan Kaufmann. ISBN-10: 1558603433, 1998.
  2. David Kirk, Wen-mei Hwu, Προγραμματισμός Μαζικά Παράλληλων Επεξεργαστών, 2010, εκδόσεις Κλειδάριθμος, 2010.
  3. Thomas Rauber ,Gudula Rünger, Parallel Programming: for Multicore and Cluster Systems, Springer, 2010.
  4. Calvin Lin, Larry Snyder ,Principles of Parallel Programming, Addison Wesley, 2009.
  5. Γ. Πάντζιου, Β. Μάμαλης, Αλ. Τομαράς, «Εισαγωγή στον Παράλληλο Υπολογισμό: Πρότυπα, Αλγόριθμοι, Προγραμματισμός” Εκδόσεις Νέων Τεχνολογιών, 2013.
  6. Peter Pacheco, An Introduction to Parallel Programming , Morgan Kaufmann, 2011.
  7. Στ. Παπαδάκης-Κ. Διαμαντάρας, Προγραμματισμός και Αρχιτεκτονική Συστημάτων Παράλληλης Επεξεργασίας, Εκδόσεις Κλειδάριθμος, 2012.
  8. Tanenbaum A.S., Van Steen M., Κατανεμημένα Συστήματα: Αρχές και Παραδείγματα, Εκδόσεις Κλειδάριθμος, 2005.
  9. Coulouris G., Dollimore J., Kindberg T., Distributed Systems, Concepts and Design, 4th ed., Addison-Wesley, 2005.
  10. Lynch N.A., Distributed Algorithms, Morgan Kaufmann, 1997.
  11. Tel G., Introduction to Distributed Algorithms, 2nd ed., Cambridge University Press, 2001.
  12. Attiya H., Welch J., Distributed Computing Fundamentals, Simulations, and Advanced Topics, 2nd ed., McGraw-Hill, 2004.
  13. Sotomayor B., Childers L., GLOBUS Toolkit 4: Programming Java Services, The Elsevier Series in Grid Computing, Morgan Kaufmann, 2005.