Συστήματα υπολογιστών και παράλληλα υπολογιστικά συστήματα υψηλών επιδόσεων
Περιγραφή
Το μάθημα έχει σκοπό την κατανόηση τρόπων που προσφέρονται από διάφορες γλώσσες και συστήματα για την έκφραση παραλληλισμού και τις κατηγορίες προβλημάτων για τα οποία κάθε ένα σύστημα είναι καλύτερο. Επίσης, έχει σκοπό την τριβή με συνήθη προβλήματα και λάθη σε παράλληλα προγράμματα καθώς και κάποια εργαλεία ή μεθόδους αποφυγής τους. Τέλος, έχει σκοπό την ανάπτυξη της παράλληλης σκέψης στο σχεδιασμό και την αρχιτεκτονική λογισμικού.
Ύλη μαθήματος (οργάνωση διδασκαλίας ανά εβδομάδα):
1
Εισαγωγή στα POSIX threads.
2
Ανάπτυξη εφαρμογών με POSIX threads, parallel patterns.
3
Εισαγωγή στο OpenMP - fine grain parallelism.
4
Ανάπτυξη εφαρμογών σε OpenMP, πρότυπα συγχρονισμού, βελτιστοποίηση χρονοδρομολόγησης.
5
Εισαγωγή στη βιβλιοθήκη παραλληλισμού TBB - coarse grain patterns.
6
Αναδρομικός παραλληλισμός σε TBB, πρότυπα συγχρονισμού.
7
Παράλληλος προγραμματισμός με ροή δεδομένων – TBB flow graph.
Java Threads και αμετάβλητες δομές δεδομένων – Εισαγωγή στη γλώσσα Scala
12
Συναρτησιακός προγραμματισμός με τη γλώσσα Scala – Παραλληλισμός χωρίς memory updates.
13
Παραλληλισμός και κατανεμημένα συστήματα σε Scala.
Μαθησιακά Αποτελέσματα:
Οι φοιτητές, μετά την επιτυχή ολοκλήρωση του μαθήματος Γνώση:
θα κατανοούν τους τρόπους που προσφέρονται από διάφορες γλώσσες και συστήματα για την έκφραση παραλληλισμού
θα αναγνωρίζουν τις κατηγορίες προβλημάτων για τα οποία κάθε ένα σύστημα είναι καλύτερο
Κατανόηση:
θα μπορούν να να διακρίνουν συνήθη προβλήματα και λάθη σε παράλληλα προγράμματα καθώς και κάποια εργαλεία ή μεθόδους αποφυγής τους
Εφαρμογή:
θα είναι σε θέση να χρησιμοποιήσουν εργαλεία παραλληλοποίησης και γλώσσες όπως η OpenMP, Scala και Java threads, pthreads, και εργαλεία profiling και performance ανάλυσης
Ανάλυση:
θα χρησιμοποιούν βασικές αρχές της της παράλληλης σκέψης στο σχεδιασμό και την αρχιτεκτονική λογισμικού
Σύνθεση:
θα μπορούν να συνθέτουν παράλληλα προγράμματα προβλέποντας και αποφεύγοντας θέματα παρενεργειών, συγχρονισμού και λάθη παραλληλισμού
Αξιολόγηση:
θα μπορούν να μετρήσουν την απόδοση μη ντετερμινιστικών προγραμμάτων και να συγκρίνουν λύσεις
θα μπορούν να μετρήσουν καμπύλες απόδοσης και κλιμακωσιμότητας, και να συμπεράνουν την απόδοση ενός προγράμματος σε άλλες παράλληλες αρχιτεκτονικές.
Αξιολόγηση:
Λεπτομέρειες για την βαθμολόγηση του μαθήματος περιέχονται στην ιστοσελίδα του μαθήματος
Τα μαθήματα του Τμήματος Επιστήμης Υπολογιστών κωδικοποιούνται με τα γράμματα "ΗΥ" και με τρία ψηφία. Το πρώτο ψηφίο δηλώνει το έτος κατά το οποίο συνήθως παρακολουθείται το μάθημα:
Πρώτο Ψηφίο
Κανονικό Έτος Παρακολούθησης
1,2,3,4
Πρώτο, Δεύτερο, Τρίτο, Τέταρτο
5,6
Μεταπτυχιακά μαθήματα
7,8,9
Ειδικά θέματα
Περιοχές Μαθημάτων
Κωδικός
Επιστημονική Περιοχή
A1
Αρχιτεκτoνική υπολογιστών και μικρο-ηλεκτρονική
A2
Συστήματα υπολογιστών και παράλληλα υπολογιστικά συστήματα υψηλών επιδόσεων
A3
Ασφάλεια υπολογιστών και κατανεμημένα συστήματα
A4
Δίκτυα υπολογιστών, κινητοί υπολογισμοί και τηλεπικοινωνίες
B1
Αλγοριθμική και ανάλυση συστημάτων
B2
Βάσεις δεδομένων, διαχείριση πληροφορίας και γνώσης
B3
Τεχνολογία λογισμικού και γλώσσες προγραμματισμού
B4
Τεχνητή νοημοσύνη και μηχανική μάθηση
C1
Επεξεργασία και ανάλυση σημάτων
C2
Υπολογιστική όραση και ρομποτική
C3
Γραφική και αλληλεπίδραση ανθρώπου-υπολογιστή
C4
Βιοπληροφορική, ιατρική πληροφορική, και υπολογιστικές νευροεπιστήμες
Ακολουθούν συνοπτικοί κατάλογοι κατά κατηγορίες των μαθημάτων του προγράμματος βασικών σπουδών του Τμήματος Επιστήμης Υπολογιστών του Πανεπιστημίου Κρήτης. Μαθήματα των οποίων οι κωδικοί αρχίζουν με "ΜΕΜ" ή "ΦΥΣ" διδάσκονται από το Τμήμα Μαθηματικών Εφαρμοσμένων Μαθηματικών ή το Φυσικό αντιστοίχως και αναφέρονται με τους οικείους κωδικούς. Τα προαπαιτούμενα που αναφέρονται μέσα σε παρενθέσεις συνιστώνται έντονα, αλλά δεν είναι υποχρεωτικά.