ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP (2 ο Μέρος)

Σχετικά έγγραφα
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP

OpenMP. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων

Παράλληλη Επεξεργασία

OpenMP. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών. OpenMP. Συστήματα Παράλληλης Επεξεργασίας 9 ο Εξάμηνο

OpenMP. Προγραµµατισµός Αρχιτεκτονικών Μοιραζόµενης Μνήµης. Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων ΕΜΠ. OpenMP p.

Συστήµατα Παράλληλης Επεξεργασίας. OpenMP

OpenMP. Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων. Αθήνα, Νοέµβριος /11/2004 Εισαγωγή στο OpenMP 1

Κατανεμημένος και Παράλληλος Προγραμματισμός

Παράλληλη Επεξεργασία

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Προγραμματισμός με το OpenMP Β. Δημακόπουλος

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί

EM 361: Παράλληλοι Υπολογισμοί

QuakeTM: Parallelizing a Complex Sequential Application Using Transactional Memory (Gajinov et al., 2009)

2/4/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (ΙΙ) OpenMP Β. Δημακόπουλος

Μέρος IΙ: OpenMP Κεφάλαιο 4 (νέο βιβλίο)

Υλοποίηση cancellation στον παραλληλοποιητικό μεταφραστή OMPi. Εμμανουήλ Φελουτζή. με Α.Μ: 1579 ΔΙΠΛΩΜΑΤΟΣ

Παράλληλος προγραμματισμός: Υλοποίηση παράλληλων προγραμμάτων

Ορολογία. Παράδειγµα 3. Εξισορρόπηση Εργασίας. Ε-85: Ειδικά Θέµατα Λογισµικού. E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 6

Ε-85: Ειδικά Θέµατα Λογισµικού

Συστήµατα Παράλληλης Επεξεργασίας. Παράλληλοςπρογραµµατισµός: Υλοποίηση παράλληλων προγραµµάτων

ΥΛΟΠΟΙΗΣΗ ΣΥΝΤΑΚΤΙΚΟΥ ΑΝΑΛΥΤΗ ΓΙΑ ΤΟΝ ΠΑΡΑΛΛΗΛΟΠΟΙΗΤΙΚΟ ΜΕΤΑΦΡΑΣΤΗ OMPI Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙ ΙΚΕΥΣΗΣ. Υποβάλλεται στην

Ατομική Διπλωματική Εργασία. Dataflow Υλοποίηση της εφαρμογής OCEAN με την χρήση πλατφόρμας TFlux. Έλση Πραιτωρίτη ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Κατανεμημένος και Παράλληλος Προγραμματισμός

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Εισαγωγικά & Βασικές Έννοιες

Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με openmp

Εισαγωγικά & Βασικές Έννοιες

Αποδοτική εκτέλεση προγραμμάτων OpenMP σε συστάδες Η/Υ

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

2. Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών... 45

Εισαγωγή στην πληροφορική

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΟ ΚΙΤ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS EV3

Ε-85: Ειδικά Θέµατα Λογισµικού

Ανάλυση ροής δεδομένων και autoscoping στον παραλληλοποιητικό μεταφραστή OMPi

Διάλεξη 04: Παραδείγματα Ανάλυσης

Παράλληλη Επεξεργασία

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

Θέματα Μεταγλωττιστών

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Προγραμματισμός ΙI (Θ)

Διδάσκων: Παναγιώτης Ανδρέου

Η πολυνηματική γλώσσα προγραμματισμού Cilk

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1

Παρουσίαση 1 ης Άσκησης:

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

Δομημένος Προγραμματισμός

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Εισαγωγή στην πληροφορική

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσμία: Τετάρτη 9/11/2016, 21:00

ΔΗΜΟΤΙΚΕΣ ΕΚΛΟΓΕΣ 18/5/2014 ΑΚΥΡΑ

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008

Υπολογιστικά Συστήματα

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Parallel Implementation of John Conway s Game of Life

Ψευδοκώδικας. November 7, 2011

Εκτελέστε τις παρακάτω ενέργειες και απαντήστε στις ερωτήσεις που ακολουθούν

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Παρουσίαση 2 ης Άσκησης:

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

ΘΕ16: Αναζήτηση δυαδική αναζήτηση

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 4

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Εισαγωγή στους Υπολογιστές

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Σύνοψη παρουσίασης. Παράλληλες υπολογιστικές πλατφόρμες. Ανάλυση παράλληλων προγραμμάτων. Σχεδίαση παράλληλων προγραμμάτων

Παράλληλος προγραμματισμός: Σχεδίαση παράλληλων προγραμμάτων

ΘΕ16: Αναζήτηση Αναζήτηση σε ταξινομημένο πίνακα. Όνομα(τα): Όνομα Η/Υ: Τμήμα: Ημερομηνία:

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Κατανεμημένα Συστήματα

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης

Οδηγός OpenMp. Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

7. Επαναλήψεις (Loops) Προγραμματισμός EV3 Ακαδημία Ρομποτικής 58

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Ατομική Διπλωματική Εργασία ΣΥΓKΡΙΣΗ ΕΠΙΔΟΣΗΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΤΗΝ ΧΡΗΣΗ ΤΗΣ OPENACC ΚΑΙ ΤΗΣ CUDA. Ανδρέας Κωνσταντίνου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Προγραμματισμός Ταυτόχρονος Προγραμματισμός

i 1 Όσο i <> 100 επανάλαβε i i + 2 Γράψε A[i] Τέλος_επανάληψης

Ειδικά Θέματα Προγραμματισμού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

Μετρικές & Επιδόσεις. Κεφάλαιο V

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Συστήµατα Παράλληλης Επεξεργασίας. Παράλληλος προγραµµατισµός: Σχεδιασµός παράλληλων προγραµµάτων

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Διδάσκων: Παναγιώτης Ανδρέου

Transcript:

ΕΡΓΑΛΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP (2 ο Μέρος) Νίκος Τρυφωνίδης

Εφαρμογή 7: Ανισορροπία Το πρόγραμμα imbalance.c περιέχει ένα loop το οποίο έχει μεγαλύτερη εργασία σε ορισμένα iterations. 1. Τρέξτε το πρόγραμμα σειριακά και σημειώστε το χρόνο εκτέλεσης και το αποτέλεσμα. 2. Δοκιμάστε να παραλληλοποιήσετε το πρόγραμμα με απλό διαχωρισμό του loop (static schedule). Τί παρατηρείτε;

Εφαρμογή 7: Ανισορροπία 3. Δοκιμάστε το dynamic schedule, με διάφορα chunk sizes. 4. Αφού δείτε τον κώδικα, δοκιμάστε αν μπορείτε να έχετε καλή απόδοση με static schedule, χρησιμοποιώντας διάφορα chunk sizes.

Μέρος 7 ο : ΕΠΙΠΛΕΟΝ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ

Επιπλέον; Όσα αναφέρθηκαν εώς τώρα είναι η βάση του παράλληλου προγραμματισμού με OpenMP. Μπορούν όμως να εφαρμοστούν σε μεγάλη ποικιλία υπολογιστικών προγραμμάτων. Στη συνέχεια θα αναφέρουμε ορισμένα επιπλέον χαρακτηριστικά που μπορεί να φανούν χρήσιμα σε κάποιες περιπτώσεις.

Single Single Directive: Ο κώδικας που εσωκλείεται εκτελείται μόνο από ένα thread. #pragma omp parallel { (parallel code) #pragma omp single { ( serial code) } (parallel code) }

Master Master Directive: Ο κώδικας που εσωκλείεται εκτελείται μόνο από το Master thread (0). #pragma omp parallel { (parallel code) #pragma omp master { ( serial code) } (parallel code) }

Barrier Τα barriers είναι ο βασικός τρόπος συγχρονισμού. Όταν ένα thread συναντήσει ένα barrier, περιμένει σε εκείνο το σημείο μέχρι να φτάσουν όλα τα threads εκεί. Μόλις γίνει αυτό, τα threads συνεχίζουν την εκτέλεση.

Barrier #pragma omp parallel { (parallel code)... #pragma omp barrier (parallel code)... }

Barrier Υπενθύμιση: Υπάρχει νοητό (implicit) barrier στο τέλος των parallel regions, των worksharing constructs, των single regions κτλ. Όταν δε γνωρίζουμε αν ένα construct που χρησιμοποιούμε περιλαμβάνει νοητό barrier, πρέπει να το ελέγχουμε.

Barrier Σε γενικές γραμμές, τα νοητά barriers είναι τοποθετημένα ώστε να καλύπτουν τις ανάγκες του προγράμματος. Αν δούμε ότι χρησιμοποιούμε πολλά barriers, είναι πιθανό να είναι περιττά.

Άχρηστα Νοητά Barriers Σε ορισμένες περιπτώσεις, τα νοητά barriers μπορεί να είναι περιττά, και απλά να επιβαρύνουν το πρόγραμμα με άχρηστες αναμονές. Τότε, μπορούμε να χρησιμοποιούμε το nowait clause.

Άχρηστα Νοητά Barriers #pragma omp parallel (clauses etc) { #pragma omp for nowait for (i=0; i<n; i++) { (1 st loop code) } } #pragma omp for for (i=0; i<n; i++) { (2 nd loop code) }

Μέρος 8 ο : OPENMP TASKS

OpenMP Tasks Τα Tasks είναι σχετικά νέα προσθήκη στο OpenMP (έκδοση 3.0-2008). Task: Κομμάτι κώδικα και αντίστοιχης μνήμης εντός μιας parallel region. Πακετάρεται και περιμένει εκτέλεση από κάποιο thread. Κάποιο thread το εκτελεί, κάποια στιγμή (!!).

OpenMP Tasks Τα tasks ουσιαστικά επιτρέπουν την παραλληλοποίηση μιας ευρύτερης ποικιλίας μορφών επανάληψης Χαρακτηριστικό παράδειγμα: while loops χωρίς γνωστό αριθμό επαναλήψεων κατά την εκκίνηση

OpenMP Tasks: Δομή #pragma omp parallel (scope clauses) { #pragma omp single { while (condition) { #pragma omp task (task scope clauses) (work) } } }

OpenMP Tasks: Χρήση Μια περίπτωση για την οποία τα tasks είναι χρήσιμα είναι η παραλληλοποίηση δομών linked-list. Γενικά είναι καλό να αποφεύγεται η χρήση τους όταν υπάρχει εναλλακτική λύση, καθώς η δημιουργία και η διανομή τους έχει μεγάλο κόστος.

OpenMP Tasks: Χρήση Είναι προτιμότερο να έχουμε λίγα και βαριά tasks, παρά πολλά ελαφριά. Περαιτέρω διερεύνηση των tasks ξεφεύγει από το πλαίσιο μιας εισαγωγής στο OpenMP, αλλά είναι διαθέσιμη στο επιπλέον υλικό που προτείνεται στο τέλος.

Εφαρμογή 8: Poisson Γράψτε ένα πρόγραμμα που να επιλύει την μονοδιάστατη εξίσωση Poisson παράλληλα (σε μορφή προβλήματος συνοριακών τιμών), με χρήση OpenMP. Αν το πρόγραμμα σταματά με έλεγχο υπολοίπου (residual), δοκιμάστε να παραλληλοποιήσετε και αυτή τη διαδικασία.

Υλικό OpenMP http://openmp.org/wp/ https://computing.llnl.gov/tutorials/openmp/ Βιβλία: Using OpenMP (Barbara Chapman, Gabriele Jost and Ruud van der Pas) Parallel Programming In OpenMP (Chandra, Dagum et al)

Ευχαριστώ! Νίκος Τρυφωνίδης