Please ensure Javascript is enabled for purposes of website accessibility

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

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

Παράλληλα Συστήματα και Προγραμματισμός

(ECE_INF920) -  ΠΑΝΑΓΙΩΤΗΣ ΑΛΕΦΡΑΓΚΗΣ

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

Το μάθημα ασχολείται με τις τεχνικές προγραμματισμού παράλληλων συστημάτων, συστημάτων που ολοκληρώνουν πολλαπλούς υπολογιστικούς πυρήνες στο πλαίσιο μιας επεξεργαστικής μονάδας (multicores και manycores) και κατανεμημένων παράλληλων συστημάτων. Αφορά τον προγραμματισμό συμβατικών και μη συμβατικών, ομογενών και ετερογενών παράλληλων αρχιτεκτονικών. Οι φοιτητές εισάγονται στις τεχνικές μέτρησης της επίδοσης, profiling, πειραματικής αξιολόγησης της αλληλεπίδρασης του λογισμικού με το υποκείμενο υλικό και βελτιστοποίησης.

This course deals with the programming techniques of parallel systems, systems that integrate multiple computational cores within a single processing unit (multicores and manycores) distributed parallel systems. It covers the programming of conventional and non-conventional, homogeneous and heterogeneous parallel architectures. Students are introduced to performance measurement techniques, profiling, experimental evaluation of software interaction with the underlying hardware and optimization.

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

Τετάρτη 14 Οκτωβρίου 2020

  • Περιεχόμενο μαθήματος

    Το μάθημα έχει σκοπό να δώσει στους φοιτητές γνώσεις στη χρήση ταυτόχρονης και παράλληλης επεξεργασίας, στη παρουσίασης βασικών παράλληλων αλγορίθμων, στην παρουσίαση προγραμματιστικών μοντέλων και στην εφαρμογή τους σε αρχιτεκτονικές διαμοιραζόμενης και κατανεμημένης μνήμης.

    Λέξεις κλειδιά: Ταυτοχρονισμός, Παράλληλη Επεξεργασία, Υπολογιστική Υψηλής Απόδοσης και Δικτύωση(HPCN), Διαμοιραζόμενη μνήμη, Κατανεμημένη μνήμη, Νήματα, OpenMP, MPI, Επιτάχυνση με χρήση GPU

     

    The course aims to provide students with knowledge in using concurrent and parallel processing, to present basic and advance parallel algorithms and to present parallel programming models and their applications on shared and distributed memory architectures.

    Keywords: Concurrency, Parallel Processing, High Performance Computing and Networking (HPCN), Shared memory, Distributed memory, Threads, OpenMP, MPI, GPU based acceleration

    ΠΕΡΙΕΧΟΜΕΝΟ ΜΑΘΗΜΑΤΟΣ - SYLLABUS

    Το μάθημα ασχολείται με τις τεχνικές προγραμματισμού παράλληλων συστημάτων, με συστήματα που ολοκληρώνουν πολλαπλούς υπολογιστικούς πυρήνες στο πλαίσιο μιας επεξεργαστικής μονάδας (multicores και manycores) καθώς και περιβάλλοντα κατανεμημένης μνήμης. Αφορά τον προγραμματισμό συμβατικών και μη συμβατικών, ομογενών και ετερογενών παράλληλων αρχιτεκτονικών. Οι φοιτητές εισάγονται στις τεχνικές μέτρησης της επίδοσης καθώς και πειραματικής αξιολόγησης της αλληλεπίδρασης του λογισμικού με το υποκείμενο υλικό και βελτιστοποίησης.

    1. Το μοντέλο της ταυτόχρονης εκτέλεσης. Το πρόβλημα του αμοιβαίου αποκλεισμού.
    2. Ταυτόχρονος προγραμματισμός και συγχρονισμός σε C/pthreads και Java.
    3. Βασικά στοιχεία αρχιτεκτονικής παράλληλων συστημάτων, ταξινόμηση παράλληλων συστημάτων, χαρακτηριστικές συμβατικές και μη συμβατικές πολυπύρηνες αρχιτεκτονικές. Βασικές μετρικές, νόμοι Amdahl & Gustafson, μέτρο Karp-Flatt.
    4. Προγραμματισμός με χρήση OpenMP.
    5. Εισαγωγή στους παράλληλους και δικτυακούς αλγορίθμους.
    6. Σχεδιασμός και προγραμματισμός παραλλήλων και δικτυακών κατανεμημένων αλγορίθμων.
    7. Προγραμματισμός με χρήση MPI Ι.
    8. Προβλήματα εξισορρόπησης υπολογιστικού έργου/φόρτου, συγχρονισμού, επικοινωνιακού κόστους και κλιμάκωσης.
    9. Προγραμματισμός με χρήση MPI ΙΙ.
    10. Ανάλυση, αξιολόγηση, και πρόβλεψη συμπεριφοράς παράλληλων αλγορίθμων και υπολογισμών.
    11. Παραδείγματα παράλληλων αλγορίθμων για προβλήματα αναζήτησης, ταξινόμησης, εύρεσης ελάχιστου μονοπατιού σε γραφήματα, βελτιστοποίησης
    12. Μοντέλα προγραμματισμού για πολυπύρηνα παράλληλα συστήματα
    13. Προγραμματισμός με χρήση OpenCL, CUDA.

    The course deals with the programming techniques of parallel systems and more specific systems that have multiple computing cores within a processing unit (multicores and many-cores). It focuses with the programming of conventional and non-conventional, homogeneous and heterogeneous parallel architectures. Students are introduced to performance measurement techniques, profiling, experimental evaluation, optimization and the interaction of software with the underlying hardware.

    1. The model of concurrent execution. The problem of mutual exclusion.
    2. Concurrent programming and synchronization in C/PThreads and Java.
    3. Basic elements of parallel system architectures, classification of parallel systems, characteristic conventional and non-conventional multi-core architectures. Basic metrics, Amdahl and Gustafson Laws, Karp-Flatt Metric .
    4. Programming using OpenMP.
    5. Introduction to parallel and network algorithms.
    6. Design and programming of parallel and network algorithms.
    7. Programming using MPI I.
    8. Load balancing problems, synchronization, communication costs and scaling.
    9. Programming using MPI II.
    10. Analysis, evaluation, and predicting behavior of parallel algorithms and calculations.
    11. Examples of parallel algorithms for search, sorting, finding shortest paths in graphs and optimization
    12. Programming models for many-core parallel systems
    13. Programming using OpenCL, CUDA.

    Μέθοδοι διδασκαλίας

    ΤΡΟΠΟΣ ΠΑΡΑΔΟΣΗΣ

    Πρόσωπο με πρόσωπο

    ΧΡΗΣΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ

    · Υποστήριξη μαθησιακής διαδικασίας μέσω της πλατφόρμας e-Class (για γνωστοποίηση του κανονισμού λειτουργίας μαθήματος, για διανομή διαφανειών, εργαστηριακών ασκήσεων, συμπληρωματικού υλικού, ανακοινώσεων, συνδέσμων και βιβλιογραφίας, για τη διεξαγωγή της ενδιάμεσης και της τελικής εξέτασης του εργαστηριακού μέρους, κλπ).

    · Κατά τη διάρκεια των διαλέξεων του θεωρητικού μέρους χρησιμοποιείται προβολέας και  παρουσιάσεις σε ηλεκτρονική μορφή.

    · Κατά τη διάρκεια των διαλέξεων και κυρίως του φροντιστηρίου, χρησιμοποιείται Η/Υ για την συγγραφή και εκτέλεση κώδικα.

    ΟΡΓΑΝΩΣΗ ΔΙΔΑΣΚΑΛΙΑΣ

    Δραστηριότητα

    Φόρτος Εργασίας Εξαμήνου

    Διαλέξεις

    3*13 = 39

    Σεμινάρια

    Επίλυση Ασκήσεων και επίδειξη χρήσης παράλληλων υπολογιστών

    1*13 = 13

     

     

    Συγγραφή εργασιών

    Εκπόνηση προγραμματιστικών ασκήσεων σε παράλληλο περιβάλλον

    6*5 = 30

    Μελέτη & ανάλυση βιβλιογραφίας

    33

    Προετοιμασία για τελικές εξετάσεις

    10

    Σύνολο Μαθήματος

    125 ώρες
    (5
    ECTS)

     

    DELIVERY
    Face-to-face, Distance learning, etc.

    Face-to-face

    USE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY
    Use of ICT in teaching, laboratory education, communication with students

    ·       The e-Class platform is used for asynchronous support of the learning process  (course operations regulation, distribution of slides, project related material, complementary material,announcements, links and bibliography,  etc.).

    ·       During lectures a projector and presentations in electronic form are used, which are also posted in the eclass platform.

    ·       During lectures and especially at seminars, a computer is used to write and execute example code.

    TEACHING METHODS

    Activity

    Semester workload

    Lectures

    13*3 = 39

    Seminars

    13*1 = 13

     

     

    Project

    6*5=30

    Study and analysis of bibliography

    43

    Course Total

    125 hours
    (5
    ECTS)

    Μέθοδοι αξιολόγησης

    Η αξιολόγηση γίνεται στην Ελληνική γλώσσα. Μπορεί να πραγματοποιηθεί και στην Αγγλική γλώσσα αν υπάρχουν αλλοδαποί φοιτητές.

    Εκπόνηση 5 προγραμματιστικών ασκήσεων σε παράλληλο περιβάλλον και παράδοση αναφορών (30%)

     

    Γραπτή τελική εξέταση (70%) που μπορεί να περιλαμβάνει:

    I.     Επίλυση ασκήσεων

    II.    Ερωτήσεις πολλαπλής επιλογής

    ΙΙΙ.   Ερωτήσεις σύντομης απάντησης

     

    Βαθμολογική κλίμακα: 1 έως 10

    Ελάχιστος βαθμός επιτυχίας: 5

    Βαθμοί < 5 αντιστοιχούν σε βαθμό ECTS F.

    Για τους υπόλοιπους βαθμούς η αντιστοίχιση έχει ως εξής:

    >= 9: ECTS A

    >= 8: ECTS B

    >= 7: ECTS C

    >= 6: ECTS D

    >= 5: ECTS E

     

    Παρατηρήσεις:

    ·       Τα κριτήρια αξιολόγησης μπορεί να τροποποιηθούν αλλά ορίζονται σαφώς στην πρώτη διάλεξη του εξαμήνου καθώς και τα επιμέρους ποσοστά και οι κανόνες που διέπουν τη βαθμολόγηση, τόσο των παραπάνω μεθόδων αξιολόγησης, όσο και πιθανής επιπλέον εργασίας.

     

     

    Language of evaluation: Greek (English if required)

    Preparation of 5 programming exercises using parallel environments and delivery of reports (30% of final mark).

    Final examination (70% of final mark): Written exam that might include multiple choice questionnaires, short-answer questions, problem solving.

    Grading scale: 1 to 10

    Minimum passing mark: 5

    Grades < 5 correspond to ECTS grade F.

    For the rest of the grades the correspondence is as follows:

    >= 9: ECTS A

    >= 8: ECTS B

    >= 7: ECTS C

    >= 6: ECTS D

    >= 5: ECTS E

     

    Note:

    The evaluation criteria are clearly announced during the first lecture of the semester as well as the individual percentages and the rules governing the grading, both of the above evaluation methods and of the individual percentages of the programming exercises.

     

    Βιβλιογραφία - Βibliography

    -Προτεινόμενη Βιβλιογραφία :

    • «ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ», PETER S. PACHECO, ISBN 978-960-461-666-4, Εκδόσεις Κλειδάριθμος ΕΠΕ, 2015, Αθήνα
    • "Εισαγωγή στην Παράλληλη Επεξεργασία",Μάργαρης Αθανάσιος,ΕΚΔΟΣΕΙΣ Α. ΤΖΙΟΛΑ & ΥΙΟΙ Α.Ε.,ISBN 9786182210949,2024 (Κωδικός Βιβλίου στον Εύδοξο: 133030593)
    • «Προγραμματισμός Μαζικά Παράλληλων Επεξεργαστών», D.B. Kirk – W.W. Hwu, Εκδόσεις Κλειδάριθμος ΕΠΕ, 2010, Αθήνα
    • «Παράλληλα Συστήματα & Προγραμματισμός», Βασίλειος Δημακόπουλος, , ISBN 978-960-603-369-8, 2015, http://hdl.handle.net/11419/3209

    -Συναφή επιστημονικά περιοδικά:

    • ΙΕΕΕ Transactions on Parallel Processing
    • Concurrency: Practice and Experience, Wiley
    • Parallel Computing, Elsevier
    • International Journal of Parallel Programming, Springer
    • IEEE Transactions on Parallel and Distributed Systems
    • ACM Transactions on Parallel Computing
    • Journal of Parallel and Distributed Computing

     

    - Suggested bibliography:

    • «Introduction to Parallel Programming», PETER S. PACHECO, ISBN 0-123-742-609, Morgan Kaufman, 2011
    • «Programming Massively Parallel Processors 2e», D.B. Kirk – W.W. Hwu, ISBN 9-789-351-070-443, ELSEVIER , 2013
    • «Parallel Systems & Programming», V. Dimakopoulos, , ISBN 978-960-603-369-8, 2015, http://hdl.handle.net/11419/3209 (In Greek)

    - Related academic journals:

    • ΙΕΕΕ Transactions on Parallel Processing
    • Concurrency: Practice and Experience, Wiley
    • Parallel Computing, Elsevier
    • International Journal of Parallel Programming, Springer
    • IEEE Transactions on Parallel and Distributed Systems
    • ACM Transactions on Parallel Computing
    • Journal of Parallel and Distributed Computing

    Προαπαιτούμενα - PREREQUISITE COURSES

    Όχι. Συνιστάται οι φοιτητές να έχουν παρακολουθήσει τα μαθήματα: Διαδικασιακού Προγραμματισμού (ECE_Κ260), Δομών Δεδομένων & Αλγορίθμων (ECE_Κ320), Αντικειμενοστρεφούς προγραμματισμού (ECE_Κ430) και Λειτουργικών Συστημάτων (ECE_Κ540)

     

    No. Students are advised to have already attended the courses: Procedural Programming (ECE_K260), Data Structures & Algorithms(ECE_K320),Object-Oriented Programming (ECE_K430) and Operating Systems (ECE_K540)

     

    Διδάσκοντες - Lecturers

    Παναγιώτης Αλεφραγκής, Αναπληρωτής Καθηγητής - Panayiotis Alefragis, Associate Professor