Συστήματα υπολογιστών και παράλληλα υπολογιστικά συστήματα υψηλών επιδόσεων
Περιγραφή
Το μάθημα έχει σκοπό την κατανόηση τρόπων που προσφέρονται από διάφορες γλώσσες και συστήματα για την έκφραση παραλληλισμού και τις κατηγορίες προβλημάτων για τα οποία κάθε ένα σύστημα είναι καλύτερο. Επίσης, έχει σκοπό την τριβή με συνήθη προβλήματα και λάθη σε παράλληλα προγράμματα καθώς και κάποια εργαλεία ή μεθόδους αποφυγής τους. Τέλος, έχει σκοπό την ανάπτυξη της παράλληλης σκέψης στο σχεδιασμό και την αρχιτεκτονική λογισμικού.
Ύλη μαθήματος (οργάνωση διδασκαλίας ανά εβδομάδα):
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
Βιοπληροφορική, ιατρική πληροφορική, και υπολογιστικές νευροεπιστήμες
Ακολουθούν συνοπτικοί κατάλογοι κατά κατηγορίες των μαθημάτων του προγράμματος βασικών σπουδών του Τμήματος Επιστήμης Υπολογιστών του Πανεπιστημίου Κρήτης. Μαθήματα των οποίων οι κωδικοί αρχίζουν με "ΜΕΜ" ή "ΦΥΣ" διδάσκονται από το Τμήμα Μαθηματικών Εφαρμοσμένων Μαθηματικών ή το Φυσικό αντιστοίχως και αναφέρονται με τους οικείους κωδικούς. Τα προαπαιτούμενα που αναφέρονται μέσα σε παρενθέσεις συνιστώνται έντονα, αλλά δεν είναι υποχρεωτικά.