Μετάβαση στο περιεχόμενο

Λογισμικό & Προγραμματισμός Συστημάτων Υψηλής Επίδοσης

Επίσημο περίγραμμα μαθήματος του ΤΜΗΥΠ (Πανεπιστήμιο Πατρών), όπως δημοσιεύεται στη σελίδα του μαθήματος και στο συνημμένο αρχείο «Περίγραμμα Μαθήματος». Το κείμενο παρατίθεται αυτούσιο, χωρίς τα πρότυπα οδηγιών του εντύπου.

Στόχοι

  • Ο φοιτητής που ολοκληρώνει επιτυχώς το μάθημα μπορεί να :
  • κατανοήσει τη μετάβαση από σειριακό σε παράλληλο υπολογισμό και την σύνδεση με τις διαφορετικές κατηγορίες Παράλληλων Συστημάτων με σκοπό την ταχύτερη εκτέλεση εφαρμογών και επεξεργασία δεδομένων.
  • εφαρμόσει τεχνικές βελτιστοποίησης του κώδικα σε συνδυασμό με την καλύτερη εκμετάλλευση του υποκείμενου υλικού και την αξιοποίηση μετρικών απόδοσης για αντικειμενική αξιολόγηση και βαθύτερη κατανόηση της απόδοσης των εφαρμογών.
  • διαθέτει εξοικείωση με την αξιοποίηση παραλληλισμού σε εφαρμογές και περιβάλλοντα προγραμματισμού του πεδίου μηχανικής μάθησης.
  • γνωρίζει τρόπους αξιοποίησης παραλληλισμού εργασιών σε βασικές γλώσσες προγραμματισμού (C, Python) και τεχνικές αποδοτικής επεξεργασίας δεδομένων και περιβάλλοντα βελτιστοποίησης παραμέτρων για μοντέλα μηχανικής μάθησης.

Επιπλέον ο φοιτητής θα μπορεί να:

  • αξιοποιήσει τις βασικές υποδομές που διαθέτει σε επίπεδο συστημάτων, λογισμικού και αλγορίθμων για την υλοποίηση εργαλείων στην ευρύτερη περιοχή της Υπολογιστικής Επιστήμης.
  • προγραμματίσει υπολογιστικά συστήματα κοινής και κατανεμημένης μνήμης χρησιμοποιώντας μοντέλα προγραμματισμού όπως το OpenMP και το MPI.
  • προγραμματίσει υπολογιστικά συστήματα με κάρτες γραφικών χρησιμοποιώντας μοντέλα προγραμματισμού όπως το CUDA και το OpenACC.

Περιεχόμενο (ύλη)

Κατηγορίες παράλληλων συστημάτων. Παραλληλοποίηση κώδικα σε συστήματα κοινής και κατανεμημένης μνήμης. Τα μοντέλα παράλληλου προγραμματισμού OpenMP και MPI. Διαχείριση μεγάλου όγκου δεδομένων με τεχνικές παράλληλου Ι/Ο. Τεχνικές βελτιστοποίησης κώδικα και αξιοποίηση μετρικών απόδοσης. Βασικά χαρακτηριστικά επιταχυντών γραφικών και αξιοποίηση τους με τα μοντέλα παράλληλου προγραμματισμού CUDA και OpenACC Αξιοποίηση παραλληλισμού σε εφαρμογές με έμφαση σε στοχαστικούς αλγόριθμους βελτιστοποίησης, προβλήματα μηχανικής μάθησης, εκπαίδευση νευρωνικών δικτύων μεγάλης κλίμακας. Αξιοποίηση παραλληλισμού εργασιών στη γλώσσα προγραμματισμού Python. Τεχνικές αποδοτικής επεξεργασίας δεδομένων και περιβάλλοντα βελτιστοποίησης παραμέτρων για μοντέλα μηχανικής μάθησης.

Αξιολόγηση

  • Γλώσσα Αξιολόγησης: Ελληνική (Αγγλική αν χρειαστεί)
  • Γραπτή Εξέταση (30% του συνολικού βαθμού)
  • Εργαστηριακές Ασκήσεις (70% του συνολικού βαθμού).

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

  • Διαφάνειες του μαθήματος (αναρτώνται στο e-class).
  • Εισαγωγή στον Παράλληλο Προγραμματισμό. Peter S. Pacheco, Εκδόσεις Κλειδάριθμος, 2015.
  • Προγραμματισμός Μαζικά Παράλληλων Επεξεργαστών. David B. Kirk, Wen-mei W. Hu, Εκδόσεις Κλειδάριθμος, 2010.
  • Δίνονται επίσης πηγές από το διαδίκτυο για κάθε θεματική ενότητα. Συναφή επιστημονικά περιοδικά:
  • IEEE Transactions on Parallel and Distributed Systems
  • ACM Transactions on Parallel Computing
  • International Journal of Parallel Programming
  • Journal of Parallel and Distributed Computing
  • Parallel Computing