Course details
Code
CS-529
Name
Multicore Architecture Programming
Program
Postgraduate
Areas
Parallel and Distributed Systems
Micro-electronic Systems Architecture
Description
Στόχος του μαθήματος είναι η εισαγωγή και εξοικείωση του φοιτητή με γλώσσες, βιβλιοθήκες, μεθόδους και τεχνικές παράλληλου προγραμματισμού σε συστήματα βασισμένα σε πολυπύρηνους επεξεργαστές. Μελετώνται τόσο η διεπαφή των προαναφερθέντων εργαλείων με τον προγραμματιστή, όσο και η υλοποίησή τους σε πραγματικά συστήματα.
Το μάθημα δίνει έμφαση σε νέες μεθόδους παράλληλου προγραμματισμού που αποσκοπούν στη βελτίωση της επίδοσης του συστήματος, καθώς και στη βελτίωση της παραγωγικότητας του προγραμματιστή, εστιάζει δε στα χαρακτηριστικά της οργάνωσης πολυπύρηνων αρχιτεκτονικών που διαφέρουν ουσιαστικά από τα αντίστοιχα χαρακτηριστικά συμβατικών παράλληλων αρχιτεκτονικών κοινής ή κατανεμημένης μνήμης.
Οι φοιτητές κατανοούν τις έννοιες του καταμερισμού και δρομολόγησης εργασιών μεταξύ πυρήνων, της υποκρυπτόμενης και ρητής επικοινωνίας μεταξύ πυρήνων, της τοπικότητας της πρόσβασης στα δεδομένα, καθώς και του συγχρονισμού, όπως αυτές αναθεωρούνται και προσαρμόζονται στους νέους πολυπύρηνους επεξεργαστές με ομοιογενείς και ετερογενείς πυρήνες (GPUs, Cell, κλπ.). Επιπλέον, οι φοιτητές εξοικειώνονται τόσο με το σύστημα διασύνδεσης όσο και με την υλοποίηση νέων μεθόδων παράλληλου προγραμματισμού, όπως για παράδειγμα ο προγραμματισμός με συναλλαγές (transactions), ο προγραμματισμός με ροές δεδομένων (streams) και ο προγραμματισμός με ρητή διαχείριση της ιεραρχίας μνήμης.
Το μάθημα κάνει επισκόπηση των σύγχρονων πολυπύρηνων αρχιτεκτονικών και κατηγοριοποίησή τους με βάση την αρχιτεκτονική και ομοιογένεια των πυρήνων, την ιεραρχία μνήμης και τους μηχανισμούς επικοινωνίας και συγχρονισμού που διαθέτουν. Ακολουθεί μελέτη μοντέλων προγραμματισμού για ομοιογενείς αρχιτεκτονικές κοινής (OpenMP, Intel STM, Intel TBB), ετερογενείς αρχιτεκτονικές (Sequoia, StarSs, RapidMind, CUDA) και μοντέλα ανεξάρτητα αρχιτεκτονικής (MapReduce, Merge). Τέλος, μελετώνται μέθοδοι μετάφρασης πηγαίου κώδικα και υλοποίησης των συστημάτων χρόνου εκτέλεσης των άνω μοντέλων προγραμματισμού.
Ύλη:
●Ανασκόπηση παράλληλων αρχιτεκτονικών
● Πολυπύρηνοι επεξεργαστές με ομοιογενείς πυρήνες
● Πολυπύρηνοι επεξεργαστές με ετερογενείς πυρήνες
● Μονάδες επεξεργασίας γραφικών
● Σύστημα μνήμης και ενδοεπεξεργαστικής επικοινωνίας
● Συγχρονισμός πυρήνων στο υλικό και το λογισμικό
● Συναρτησιακός παραλληλισμός
● Διανυσματικός παραλληλισμός
● Παραλληλισμός ροών και φίλτρων δεδομένων
● Παραλληλισμός με συναλλαγές
● Παράλληλος προγραμματισμός με διαχείριση μνήμης από το υλικό
● Παράλληλος προγραμματισμός με διαχείριση μνήμης από το λογισμικό
● Τεχνικές δρομολόγησης διεργασιών και ροών
● Τεχνικές βελτίωσης της τοπικότητας των προσβάσεων στη μνήμη, στοίχιση, αντιγραφή και δυναμική μετακίνηση δεδομένων
● Τεχνικές διαχείρισης καναλιών και δικτύων ενδοεπεξεργαστικής επικοινωνίας
● Θέματα μεταφραστών
● Θέματα συστημάτων χρόνου εκτέλεσης
● Θέματα ανάλυσης επίδοσης
● Παραδείγματα υλοποίησης εφαρμογών
ECTS
6
Prerequisites
CS-345, HY425
Course website
Course email
hy529 AT csd DOT uoc DOT grShow email