Computer systems, parallel and high performance computing
Description
Το μάθημα έχει σκοπό την κατανόηση τρόπων που προσφέρονται από διάφορες γλώσσες και συστήματα για την έκφραση παραλληλισμού και τις κατηγορίες προβλημάτων για τα οποία κάθε ένα σύστημα είναι καλύτερο. Επίσης, έχει σκοπό την τριβή με συνήθη προβλήματα και λάθη σε παράλληλα προγράμματα καθώς και κάποια εργαλεία ή μεθόδους αποφυγής τους. Τέλος, έχει σκοπό την ανάπτυξη της παράλληλης σκέψης στο σχεδιασμό και την αρχιτεκτονική λογισμικού.
Ύλη μαθήματος (οργάνωση διδασκαλίας ανά εβδομάδα):
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 ανάλυσης.
Αξιολόγηση:
Λεπτομέρειες για την βαθμολόγηση του μαθήματος περιέχονται στην ιστοσελίδα του μαθήματος
The courses of the Computer Science Department are designated with the letters "CS" followed by three decimal digits. The first digit denotes the year of study during which students are expected to enroll in the course.
First Digit
Advised Year of Enrollment
1,2,3,4
First, Second, Third and Fourth year
5,6
Graduate courses
7,8,9
Specialized topics
Code
Computer Science Area
A1
Computer architecture and microelectronics
A2
Computer systems, parallel and high performance computing
A3
Computer security and distributed systems
A4
Computer networks, mobile computing, and telecommunications
B1
Algorithms and systems analysis
B2
Databases, information and knowledge management
B3
Software engineering and programming languages
B4
Artificial Intelligence and machine learning
C1
Signal processing and analysis
C2
Computer vision and robotics
C3
Computer graphics and human-computer interaction
C4
Βioinformatics, medical informatics, and computational neuroscience
The following pages contain tables (one for each course category) summarizing courses offered by the undergraduate studies program of the Computer Science Department at the University of Crete. Courses with code-names beginning with "MATH" or "PHYS" are taught by the Mathematics Department and Physics Department respectively at the University of Crete.