Περιεχόμενο Μαθήματος
Επισκόπηση των επεξεργαστικών συστημάτων σε επίπεδο συσκευών, Edge και Cloud (Edge, very-edge and Cloud Computing). Υπολογιστικές απαιτήσεις τυπικών αλγορίθμων και απαιτήσεις μνήμης (data analytics, machine learning, deep learning algorithms). Περιβάλλοντα ανάλυσης υπολογιστικών απαιτήσεων εφαρμογών (simulators, profiling techniques, cloud-based tools and methods). Σχεδιαστικοί στόχοι στο άκρο του δικτύου (edge computing).
Dependability και fault-tolerance: Εισαγωγή και απαιτήσεις. Ορολογία και διάκριση των εννοιών της αξιοπιστίας, της διαθεσιμότητας, της συντηρησιμότητας, της ασφάλειας και της αποδοσιμότητας. Σφάλματα, λάθη και βλάβες. Μοντέλα σφαλμάτων. Πλεονασμός σε χρόνο και χώρο. Τεχνικές πλεονασμού σε υλικό και λογισμικό, Graceful degradation. Εφαρμογές.
Χαμηλή κατανάλωση ισχύος (power aware computing): Εισαγωγή και απαιτήσεις (output quality, computing error rates, classification quality, lifetime, availability rate). Δυναμική και στατική κατανάλωση ισχύος. Νόμος του Moore και Νόμος του Dennard. Επεξεργαστές και συστήματα μνήμης χαμηλής κατανάλωσης. Δυναμική ρύθμιση της τάσης και της συχνότητας (DVFS) σε IoT και edge-level επεξεργαστές. Υπολογισμοί κατά προσέγγιση (approximate computing). Εργασία πάνω στην ανάλυση της κατανάλωσης ισχύος σε κινητές συσκευές (smartphones): μέτρηση της κατανάλωσης ισχύος με performance counters.
Απόκριση σε πραγματικό χρόνο (real-time responsiveness) και απόκριση με βάση την χειρότερη περίπτωση (worst-case execution time). Λειτουργικά συστήματα και διεργασίες σε συσκευές περιορισμένων πόρων. Εκτίμηση απόδοσης και διαχείριση μνήμης σε ΙοΤ και edge-level συσκευές. Εργασία πάνω στην χρήση του εργαλείου yocto για την δημιουργία Linux kernels.
Επεξεργασία στο άκρο του δικτύου (διαθέσιμες λύσεις από την εταιρία ARM). Ενσωματωμένοι επεξεργαστές. Υλικό ενσωματωμένων συστημάτων. Επισκόπηση βασικών εννοιών της παραλληλίας των επεξεργαστών (Superscalar, VLIW, επεξεργαστές, Μοντέλα εκτέλεσης SIMD, MIMD, δυναμική δρομολόγηση εντολών, ιεραρχίες αρχιτεκτονικών κρυφών μνημών ιεραρχίες μνήμης, υπερνηματισμός (hyperthreading), αρχιτεκτονικές SMT, πολλαπλών πυρήνων (multicoreCMP)).
Τεχνικές βελτιστοποίησης κώδικα για πολυεπεξεργαστικές αρχιτεκτονικές. Μελέτη αρχιτεκτονικών χαρακτηριστικών των σύγχρονων επεξεργαστών και η αποδοτική αξιοποίησή τους από τον κώδικα που εκτελείται σε αυτές. Τεχνικές Βελτιστοποίησης Κώδικα: Ανάλυση Εξαρτήσεων, Μετασχηματισμοί επαναληπτικών Βρόχων, πρόβλεψη διακλάδωσης, μετασχηματισμοί δεδομένων. Βελτιστοποίηση τοπικότητας αναφοράς σε κρυφές μνήμες για τη μείωση των αστοχιών (cache & TLB misses), Πολυνηματικός Προγραμματισμός για συστήματα πολλαπλών πυρήνων & πολλαπλών επεξεργαστών.
Παράλληλες αρχιτεκτονικές υπολογισμού για μηχανική μάθηση. Αρχιτεκτονικές παράλληλης επεξεργασίας. Πολυεπεξεργαστικά συστήματα, επιταχυντές και υλικό ειδικού σκοπού για εφαρμογές μηχανικής μάθησης. Σχεδιασμός και υλοποίηση παράλληλων προγραμμάτων. Παραλληλοποίηση υπολογιστικών πυρήνων μηχανικής μάθησης σε παράλληλες αρχιτεκτονικές γενικού σκοπού και επιταχυντές.
Λέξεις Κλειδιά
Επεξεργασίας στο Άκρο του Δικτύου, Υπολογιστικές απαιτήσεις, Ανάλυση υπολογιστικών απαιτήσεων, Αξιοπιστίας, Τεχνικές πλεονασμού, Χαμηλή κατανάλωση ισχύος, Δυναμική και στατική κατανάλωση ισχύος. Δυναμική ρύθμιση της τάσης και της συχνότητας, Απόκριση σε πραγματικό χρόνο, Απόκριση με βάση την χειρότερη περίπτωση, Ενσωματωμένοι επεξεργαστές, Τεχνικές βελτιστοποίησης κώδικα, Παράλληλες αρχιτεκτονικές υπολογισμού για μηχανική μάθηση
Επιπρόσθετη βιβλιογραφία για μελέτη
1) Parallel Computer Organization and Design, Michel Dubois, Murali Annavaram, Per Stenstrom, 2012.
2) Reconfigurable computing, Scott Hauck, André DeHon, Morgan Kauffman.
3) Parallel Computing for Data Science: With Examples in R, C++ and CUDA, Norman Matloff, Chapman and Hall/CRC The R Series, 2016.
4) Scaling up machine-learning: Parallel and Distributed Approaches, Ron Bekkerman, Mikhail Bilenko, John Langford, Cambridge University Press, 2018.