Παρουσίαση/Προβολή

Εικόνα επιλογής

942 - Παράλληλη Επεξεργασία & Βελτιστοποίηση

(942) -  Δρ. Κωνσταντάρας Αντώνιος

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

Στόχος του μαθήματος είναι η εκμάθηση και εξοικείωση του φοιτητή με γλώσσες, βιβλιοθήκες και τεχνικές παράλληλου
προγραμματισμού σε συστήματα βασισμένα σε ετερογενείς πολυπύρηνους επεξεργαστές και στις τεχνικές βελτιστοποίησης στην
αξιοποίηση πόρων και απαιτήσεων του λογισμικού. Το μάθημα δίνει έμφαση σε νέες μεθόδους παράλληλου προγραμματισμού που
αποσκοπούν στη βελτίωση της επίδοσης του συστήματος, καθώς και στη βελτίωση της παραγωγικότητας του προγραμματιστή, εστιάζοντας
στα χαρακτηριστικά της οργάνωσης πολυπύρηνων επεξεργαστών με ετερογενείς πυρήνες που συνεργάζονται αλλά διαφέρουν ουσιαστικά
από τα αντίστοιχα χαρακτηριστικά συμβατικών πολυπύρηνων επεξεργαστών με ομοιογενείς πυρήνες. Οι φοιτητές εκπαιδεύονται στη
διάκριση μεταξύ σειριακών και παράλληλων διεργασιών και κατανοούν τις έννοιες του καταμερισμού και δρομολόγησης εργασιών μεταξύ
ομοιογενών και ετερογενών πυρήνων, της υποκρυπτόμενης και ρητής επικοινωνίας μεταξύ πυρήνων, της τοπικότητας της πρόσβασης στα
δεδομένα, καθώς και του συγχρονισμού των εργασιών πολυπύρηνων επεξεργαστών της κεντρικής μονάδας επεξεργασίας (CPUs) και αυτών
των ετερογενών πυρήνων των μονάδων επεξεργασίας γραφικών (GPUs). Πέραν από την επισκόπηση των σύγχρονων πολυπύρηνων
αρχιτεκτονικών και κατηγοριοποίησή τους με βάση την αρχιτεκτονική και ομοιογένεια των πυρήνων, την ιεραρχία μνήμης και τους
μηχανισμούς επικοινωνίας και συγχρονισμού που διαθέτουν, το μάθημα εστιάζει στη μελέτη και εφαρμογή μοντέλων προγραμματισμού για
ετερογενείς αρχιτεκτονικές (CUDA). Οι φοιτητές εξοικειώνονται στη χρήση της γλώσσας «CUDA C» και αναπτύσσουν κώδικες παράλληλου
προγραμματισμού με ταυτόχρονη εκτέλεση της εργασίας αυτών από πολλαπλούς πυρήνες μονάδων επεξεργασίας γραφικών (GPUs). Για το
σκοπό αυτό οι φοιτητές εξοικειώνονται επίσης στη συνεργία κεντρικών μονάδων επεξεργασίας (CPUs) και μονάδων επεξεργασίας γραφικών
(GPUs) και τον έλεγχο με ανάπτυξη κώδικα «CUDA C» της βέλτιστης κατανομής μνήμης και βέλτιστης διακίνησης δεδομένων μεταξύ CPU και
GPU.
Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές θα είναι σε θέση να:
● διακρίνουν διεργασίες που μπορούν να εκτελεστούν παράλληλα από τις σειριακές διεργασίες.
● κατανέμουν μνήμη σε CPUs και GPUs.
● μεταφέρουν δεδομένα από τα CPUs στα GPUs και αντίστροφα.
● αναπτύσσουν κώδικα CUDA C για τα παραπάνω.
● υπολογίζουν τον βέλτιστο δυνατό αριθμό πυρήνων, νημάτων και ψηφίδων για την εκτέλεση μιας παράλληλης εργασίας.
● αναπτύσσουν Kernels - κώδικες σε CUDA C για την εκτέλεση της παράλληλης εργασίας από του πυρήνες του GPU.
● απελευθερώνουν τις δεσμευμένες μνήμες μετά το τέλος της παράλληλης εργασίας.
● εκμεταλλεύονται στο βέλτιστο το σύνολο των δυνατοτήτων που παρέχονται από υπερυπολογιστικές διατάξεις.
● αξιοποιούν την χρήση πινάκων στη σχεδίαση βελτιστοποιημένων παράλληλων αλγορίθμων τεχνικού προγραμματισμού.
● εναρμονιστούν με τη σύγχρονη μετάβαση της φιλοσοφίας των υπολογιστών από την ελαχιστοποίηση του χρόνου εκτέλεσης μίας
διεργασίας από ένα πυρήνα (latency) στην εκτέλεση πολλαπλών ταυτόχρονων διεργασιών από πολλαπλούς πυρήνες (throughput).

Ημερομηνία δημιουργίας

Τετάρτη 1 Ιουνίου 2022