Παράλληλοι Αλγόριθμοι και Συστήματα (MAE840)
Από Wiki Τμήματος Μαθηματικών
Αναθεώρηση ως προς 22:48, 29 Σεπτεμβρίου 2022 από τον Mathwikiadmin (συζήτηση | συνεισφορές) (→Γενικά)
Περιγράμματα Προπτυχιακών Μαθημάτων - Τμήμα Μαθηματικών
Γενικά
Σχολή | Σχολή Θετικών Επιστημών |
---|---|
Τμήμα | Τμήμα Μαθηματικών |
Επίπεδο Σπουδών | Προπτυχιακό |
Κωδικός Μαθήματος | MAE840 |
Εξάμηνο | 8 |
Τίτλος Μαθήματος | ΠΑΡΑΛΛΗΛΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΣΥΣΤΗΜΑΤΑ |
Αυτοτελείς Διδακτικές Δραστηριότητες | Διαλέξεις και Εργαστηριακές Ασκήσεις (Εβδομαδιαίες Ώρες Διδασκαλίας: 3, Πιστωτικές Μονάδες: 6) |
Τύπος Μαθήματος | Ειδικού Υποβάθρου |
Προαπαιτούμενα Μαθήματα | |
Γλώσσα Διδασκαλίας και Εξετάσεων | Ελληνική |
Το Μάθημα Προσφέρεται σε Φοιτητές Erasmus | |
Ηλεκτρονική Σελίδα Μαθήματος (URL) | Δείτε το eCourse, την Πλατφόρμα Ασύγχρονης Εκπαίδευσης του Πανεπιστημίου Ιωαννίνων. |
Μαθησιακά Αποτελέσματα
Μαθησιακά Αποτελέσματα | Με την επιτυχή ολοκλήρωση του μαθήματος, ο φοιτητής:
|
---|---|
Γενικές Ικανότητες |
|
Περιεχόμενο Μαθήματος
ΘΕΩΡΙΑ:
- Εισαγωγικά στοιχεία. Ιστορική ανασκόπηση της παράλληλης και κατανεμημένης επεξεργασίας.
- Πρότυπο von Neumann. Κατηγοριοποίηση κατά Flynn. Διασωλήνωση. Πολύ-επεξεργαστές, Πολύ-υπολογιστές.
- Συστήματα κατανεμημένης και κοινόχρηστης μνήμης.
- Αρχιτεκτονικές μνήμης ενιαίου και μη-ενιαίου χρόνου πρόσβασης.
- Υπολογισμός απόδοσης. Κλιμάκωση. Δίκτυα διασύνδεσης παράλληλων υπολογιστών.
- Νόμος του Grosch, του Amdahl, των Gustafson Barsis. Σχεδιασμός παράλληλων εφαρμογών.
- Παραλληλοποίηση προγραμμάτων - MPI. Συγχρονισμός. Γράφοι εξάρτησης.
- Χρονοδρομολόγηση. Συνάφεια διαμοιραζόμενης μνήμη. MESI. Παράλληλη Επεξεργασία σε GPU.
- Μοντέλα και μηχανισμοί επικοινωνίας διεργασιών.
- Διανυσματική Επεξεργασία. Συστοιχίες και υπολογιστική πλέγματος. Παραδείγματα παραλληλοποίησης εφαρμογών. Θέματα συγχρονισμού.
ΕΡΓΑΣΤΗΡΙΟ:
- Εισαγωγικές έννοιες προγραμματισμού με το gcc. Δείκτες, κλάσεις, δυναμικές δομές. Δημιουργία διεργασιών σε Linux, διαχωρισμός των εννοιών user-space και kernel-space, γονικές διεργασίες και σχέσεις γονέα-παιδιού, Διαχείριση διεργασιών.
- Containers, Templates, STL (c++ standard templates library).
- Εισαγωγή στο Boost και σε προχωρημένα θέματα της C++.
- Εισαγωγή στο C++ Armadilo
- Ενδοεπικοινωνία διεργασιών. Στατικές περιοχές μνήμης, σωληνώσεις, περιοχές κοινής μνήμης, σηματοδοσία διεργασιών.
- Δημιουργία νημάτων και διαχείριση νημάτων. Χρήση κοινών περιοχών μνήμης νημάτων, κρίσιμες περιοχές, μοντέλο παραγωγού καταναλωτή, σηματοδοσία νημάτων.
- Διαχείριση και συγχρονισμός νημάτων, προστασία κρίσιμης περιοχής με χρήση mutex locks και semaphores. Παρουσίαση νημάτων εκτέλεσης υπό συνθήκη και φράγματα συγχρονισμού.
- Εισαγωγή στο MPI, ρυθμίσεις του MPI, παρουσίαση βασικών συναρτήσεων του MPI, τα πρώτα προγράμματα σε MPI.
- Παρουσίαση βασικών σύγχρονων μεθόδων αποστολής-λήψης μηνυμάτων σε MPI.
- Παρουσίαση ασύγχρονων μεθόδων αποστολής λήψης. Παραδείγματα.
- Χρήση συλλογικών μεθόδων του MPI (Gather-Scatter-Reduce-Broadcast) και παραδείγματα.
- Βασικές δομές οργάνωσης κατανεμημένων προγραμμάτων. Παραδείγματα κατανεμημένων υπολογισμών. Σύνθετοι τύποι δεδομένων με χρήση του MPI.
- Δημιουργία σύνθετων δομών δεδομένων με το MPI Και αποστολή μηνυμάτων δομών δεδομένων.
- Παράλληλος προγραμματισμός OpenMP και Epiphany-SDK, BSP.
Διδακτικές και Μαθησιακές Μέθοδοι - Αξιολόγηση
Τρόπος Παράδοσης | Στην τάξη | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Χρήση Τεχνολογιών Πληροφορίας και Επικοινωνιών | Χρήση Εργαστηρίου Μικροϋπολογιστών | ||||||||||
Οργάνωση Διδασκαλίας |
| ||||||||||
Αξιολόγηση Φοιτητών |
|
Συνιστώμενη Βιβλιογραφία
Δείτε την υπηρεσία Εύδοξος ή το τοπικό αποθετήριο του Τμήματος Μαθηματικών για τα παρεχόμενα συγγράμματα ανά ακαδημαϊκό έτος. Συγγράμματα και άλλες πηγές εκτός της υπηρεσίας Εύδοξος:
- Parallel Scientific Computing in C++ and MPI: A Seamless Approach to Parallel Algorithms and their Implementation, G.M. Karniadakis and R.M. Kirby, 2003, Cambridge University press, ISBN: 0-521-81754-4
- Using OpenMP, Portable Shared Memory Parallel Programming., B. Chapman, G. Jost and R. Pas, 2008, MIT press, ISBN: 9780262533027
- Learning Boost C++ libraries, A. Mukherjee, 2015, PACKT, ISBN:978-1-78355-121-7
- Boost C++ Application Development Cookbook - Second Edition: Recipes to simplify your application development, 2 Edition, A. Polukhin, 2017, PACKT, ISBN:978-1-78728-224-7
- C++17 STL Cookbook, J. Galowicz, PACKT,978-1-78712-049-5, 2017