Κατανεμημένος και Πολυπύρηνος Προγραμματισμός

(Distributed and Multicore Programing / DMP)

Υπεύθυνος Μαθήματος: Η. Σάββας,   Μονάδες ECTS: 7.5,   Εξάμηνο: Α’

Περιεχόμενο

Εισαγωγή στον παράλληλο και κατανεμημένο προγραμματισμό. Τοπολογίες δικτύων. Σχεδίαση παράλληλων αλγορίθμων. Κατευθυνόμενοι Μη-Κυκλικοί Γράφοι (DAGs) και Gantt charts. Ανάλυση, σχεδίαση και υλοποίηση παράλληλων προγραμμάτων.   Κατανεμημένος προγραμματισμός με χρήση του Message Passing Interface – MPI. Παράλληλος προγραμματισμός σε επίπεδο CPU με χρήση της OpenMP. Πολυπύρηνος προγραμματισμός σε κάρτες γραφικών με χρήση των CUDA και OpenACC. Υβριδικός προγραμματισμός με χρήση όλων ταυτόχρονα των προαναφερθέντων τεχνικών/εργαλείων. Προγραμματισμός σε μεγάλο όγκο δεδομένων.

Προτεινόμενη Βιβλιογραφία

  • Gropp, W. Lunsk, A. Skjellum, “Using MPI. Portable Parallel Programming with the Message-Passing Interface”, MIT Press, second edition, 1999
  • A. Berman, and J. L. Paul, Algorithms: Sequential, Parallel, and Distributed, Thomson, 2005
  • Michael J. Quinn, Parallel Programming in C with MPI and OpenMP, McGraw Hill Higher Education, 2003
  • Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar, Introduction to Parallel Computing, Pearson/Addison Wesley, 2003
  • Andrew Tanenbaum, “Distributed Operating Systems”, Prentice Hall International Editions
  • Chow, and T. Johnson, “Distributed Operating Systems and Algorithms”, Addison Wesley
  • Jason Sanders, and Edward Kandrot, “CUDA by Example: An Introduction to General-Purpose GPU Programming”, Addison-Wesley
  • John Cheng, and Max Grossman, “Professional CUDA C Programming”, John Viky and Sons, Inc.