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

Σχετικά έγγραφα
Παρουσίαση 2 ης Άσκησης:

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Σημειωματάριο Δευτέρας 4 Δεκ. 2017

Αναζήτηση Κατά Πλάτος

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Δομές Δεδομένων και Αλγόριθμοι

Αναζήτηση Κατά Πλάτος

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

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

Δυναμικός προγραμματισμός για δέντρα

Αναζήτηση Κατά Βάθος. Επιμέλεια διαφανειών: Δ. Φωτάκης Συμπληρώσεις: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Συντομότερες Διαδρομές

ΠΛΗ111. Ανοιξη Μάθηµα 10 ο. Γράφοι. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Πλάτος

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

Αναζήτηση Κατά Βάθος. Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

All Pairs Shortest Path

Συντομότερες ιαδρομές

Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Διάλεξη 29: Γράφοι. Διδάσκων: Παναγιώτης Ανδρέου

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

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

Αναζήτηση Κατά Βάθος. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

Συντομότερες Διαδρομές

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών

Βελτιστοποίηση και Παραλληλοποίηση Κώδικα για Αλγορίθμους Γράφων ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Συντομότερες ιαδρομές

u v 4 w G 2 G 1 u v w x y z 4

Αναζήτηση Κατά Βάθος. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

Σειρά Προβλημάτων 5 Λύσεις

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

Συντομότερα Μονοπάτια για Όλα τα Ζεύγη Κορυφών

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

3η Σειρά Γραπτών Ασκήσεων

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

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

Αλγόριθμοι Αναζήτησης

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων

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

Στοιχεία Θεωρίας Γράφων (Graph Theory)

ΣΥΣΤΗΜΑΤΑ ΠΑΡΑΛΛΗΛΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ 9o εξάμηνο ΗΜΜΥ, ακαδημαϊκό έτος

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).

Παράλληλος προγραμματισμός: παράλληλες λ υπολογιστικές πλατφόρμες και ανάλυση προγραμμάτων

Αλγόριθµοι Γραφηµάτων

Διάλεξη 18: Γράφοι I Εισαγωγή

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα

Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο. Γραφήµατα. (Graphs)

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Maximal Independent Set

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

Επαγωγή και αναδρομή για συνεκτικά γραφήματα

Ενότητα 10 Γράφοι (ή Γραφήµατα)

Συντομότερες ιαδρομές

Επιχειρησιακή Έρευνα I

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

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

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

3 η ΑΣΚΗΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΥΠΟΛΟΓΙΣΤΩΝ

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Μέγιστη Ροή Ελάχιστη Τομή

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

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

Κλάσεις Πολυπλοκότητας

3η Σειρά Γραπτών Ασκήσεων

Σχεδίαση & Ανάλυση Αλγορίθμων

Σχέσεις. Διμελής Σχέση. ΣτοΊδιοΣύνολο. Αναπαράσταση

Δομές Δεδομένων και Αλγόριθμοι

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

Ελαφρύτατες διαδρομές

Κατευθυνόμενα και μη κατευθυνόμενα γραφήματα

8. Παράλληλη εκτέλεση βρόχων

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 4 η : Παράλληλος Προγραμματισμός. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

Βασικές Έννοιες Δοµών Δεδοµένων

Εισαγωγή στους Αλγορίθμους

Γράφοι. κόµβοι) και ένα σύνολο από γραµµές (που λέγονται ακµές) οι οποίες

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 11-1

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

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

Δέντρα Απόφασης (Decision(

Η επικράτηση των ψηφιακών κυκλωμάτων 1o μέρος

HY118-Διακριτά Μαθηματικά

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

Transcript:

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 1 ης Άσκησης: Ανάπτυξη παράλληλου κώδικα σε πολυπύρηνες αρχιτεκτονικές κοινής μνήμης Ακ. Έτος 2018-2019 9 ο Εξάμηνο

Conway s Game Of Life l Το Conway s Game of Life είναι παράδειγμα ενός κυψελικού αυτόματου (cellular automaton) Σε ένα ορθογώνιο ταμπλώ, κάθε κελί έχει δύο πιθανές καταστάσεις: μπορεί να είναι ζωντανό ή νεκρό Σε κάθε χρονικό βήμα/γενιά κάθε κελί εξετάζει τους γείτονές του και ενημερώνει την κατάστασή του: l Ένα ζωντανό κελί πεθαίνει από μοναξιά αν έχει λιγότερους από 2 γείτονες l Ένα ζωντανό κελί επιβιώνει αν έχει 2 ή 3 γείτονες l Ένα ζωντανό κελί πεθαίνει από υπερπληθυσμό (ή αγοραφοβία J) αν έχει περισσότερους από 3 γείτονες l Ένα νεκρό κελί με ακριβώς 3 γείτονες γίνεται ζωντανό λόγω αναπαραγωγής 2

Conway s Game Of Life l Εξαρτήσεις από τις τιμές των 8 γειτονικών κελιών, κατά την προηγούμενη χρονική στιγμή l Ζητούμενα: Παραλληλοποίησηαλγορίθμου στο OpenMP Μέτρηση χρόνου εκτέλεσης σε 1, 2, 4, 6, 8 πυρήνες 3

Αλγόριθμος Floyd-Warshall (FW) l Εύρεση ελάχιστου μονοπατιού ανάμεσα σε οποιοδήποτε ζεύγος κόμβων ενός κατευθυνόμενου γράφου (τα βάρη των ακμών μπορούν να είναι και αρνητικά). for (k=0; k<n; k++) for (i=0; i<n; i++) for (j=0; j<n; j++) A[i][j] = min(a[i][j], A[i][k]+A[k][j]); l l l Για κάθε χρονικό βήμα k υπολογίζει για κάθε ζεύγος κόμβων i-j αν υπάρχει συντομότερο μονοπάτι από τον i προς τον j περνώντας από το κόμβο k N: αριθμός κόμβων του γράφου Α: πίνακας διπλανών κορυφών (αν i,j δεν συνδέονται τότε Α[i][j] = αρχικά) l Πολυπλοκότητα: Θ(n 3 ) 4

Ακ. Έτος 2010-2011 Παράδειγμα: γράφος 8 κόμβων

Ακ. Έτος 2010-2011 Παράδειγμα: γράφος 8 κόμβων

Ακ. Έτος 2010-2011 Παράδειγμα: γράφος 8 κόμβων

k=0 FW Task graph A 00 A 00 A 01 A 02 A 03 A 10 A 11 A 12 A 13 A 01 A 02 A 03 A 10 A 20 A 30 A 20 A 21 A 22 A 23 A 30 A 31 A 32 A 33 A 11 A 12 A 13 A 21 A 22 A 23 A 31 A 32 A 33 k=1 A 11 A 00 A 01 A 02 A 03 A 10 A 11 A 12 A 13 A 10 A 12 A 13 A 01 A 21 A 31 A 20 A 21 A 22 A 23 A 30 A 31 A 32 A 33 A 00 A 02 A 03 A 20 A 22 A 23 A 30 A 32 A 33 8

Σειριακή και παράλληλη εκτέλεση l Για μεγάλα Ν (ο Α δεν χωράει στην cache), ο FW είναι memory bound: Ο πίνακας Α πρέπει να μεταφέρεται από την κύρια μνήμη σε κάθε επανάληψη k Οι πράξεις που γίνονται είναι πολύ απλές (σύγκριση / πρόσθεση) σε ακέραιους ή πραγματικούς απλής ακρίβειας l Παράλληλη εκτέλεση: Τα loops i, j είναι παράλληλα Ο αλγόριθμος δεν κλιμακώνει καλά σε αρχιτεκτονικές κοινής μνήμης 9

Εναλλακτικές υλοποιήσεις: recursive l J.-S. Park, M. Penner, and V. K. Prasanna, Optimizing Graph Algorithms for Improved Cache Performance, IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 15, NO. 9, SEPTEMBER 2004. FWR (A, B, C) if (base case) FWI (A, B, C) else FWR (A 11, B 11, C 11 ); FWR (A 12, B 11, C 12 ); FWR (A 21, B 21, C 11 ); FWR (A 22, B 21, C 12 ); FWR (A 22, B 21, C 12 ); FWR (A 21, B 21, C 11 ); FWR (A 12, B 11, C 12 ); FWR (A 11, B 11, C 11 ); FWI (A, B, C) for (k=0; k<n; k++) for (i=0; i<n; i++) for (j=0; j<n; j++) A[i][j] = min(a[i][j], B[i][k]+C[k][j]); l Καλείται ως: FWR(A, A, A); 10

Εναλλακτικές υλοποιήσεις: recursive A 00 A 01 A 10 A 11 11

Εναλλακτικές υλοποιήσεις: recursive A 00 A 01 A 10 A 11 12

Εναλλακτικές υλοποιήσεις: recursive A 00 A 01 A 10 A 11 13

Εναλλακτικές υλοποιήσεις: recursive A 00 A 01 A 10 A 11 14

Εναλλακτικές υλοποιήσεις: recursive A 00 A 01 A 10 A 11 15

Εναλλακτικές υλοποιήσεις: recursive A 00 A 01 A 10 A 11 16

Εναλλακτικές υλοποιήσεις: recursive A 00 A 01 A 10 A 11 17

Εναλλακτικές υλοποιήσεις: recursive A 00 A 01 A 10 A 11 18

Εναλλακτικές υλοποιήσεις: recursive A 00 A 01 A 10 A 11 19

Εναλλακτικές υλοποιήσεις: recursive FWR (A, B, C) if (base case) FWI (A, B, C) else FWR (A 00, B 00, C 00 ); FWR (A 01, B 00, C 01 ); FWR (A 10, B 10, C 00 ); 1 2 Παραλληλία FWR (A 11, B 10, C 01 ); FWR (A 11, B 10, C 01 ); FWR (A 10, B 10, C 00 ); FWR (A 01, B 00, C 01 ); FWR (A 00, B 00, C 00 ); 3 4 5 6 20

Εναλλακτικές υλοποιήσεις: tiled 1 2 2 2 2 3 3 3 2 3 3 3 6 5 6 6 2 3 3 3 5 4 5 5 6 5 6 6 9 9 8 9 6 5 6 6 9 9 8 9 8 8 7 8 12 12 12 11 9 9 8 9 12 12 12 11 12 12 12 11 11 11 11 10 21

l sandman: 4 x Intel Xeon E5-4620 (Sandy Bridge) Συνολικά 32 πυρήνες (και 64 threads) Περιβάλλον εκτέλεσης Core 0 Core 1 Core 2 Core 3 Core 0 Core 1 Core 2 Core 3 (NUMA Node 0) 64GB RAM L3 16MiB L3 16MiB (NUMA Node 1) 64GB RAM Core 4 Core 5 Core 6 Core 7 Core 4 Core 5 Core 6 Core 7 Core 0 Core 1 Core 2 Core 3 Core 0 Core 1 Core 2 Core 3 (NUMA Node 2) 64GB RAM L3 16MiB L3 16MiB (NUMA Node 3) 64GB RAM Core 4 Core 5 Core 6 Core 7 Core 4 Core 5 Core 6 Core 7 22

Οδηγίες l Για χρήση του sandman: $ qsub q serial l nodes=sandman:ppn=64 <script> l ΠΡΟΣΟΧΗ: Χρησιμοποιείτε τα μηχανήματα της ουράς parlab για ανάπτυξη προγραμμάτων/έλεγχο ορθής λειτουργίας/εκσφαλμάτωση l Μπορείτε να χρησιμοποιήσετε OpenMP ή ΤΒΒs για την εκπόνηση της άσκησης l Μπορείτε να χρησιμοποιείτε τα μηχανήματα της ουράς parlab για την ανάπτυξη του παράλληλου κώδικα l Θα βρείτε τον κώδικα της άσκησης στον scirouter στο path: /home/parallel/pps/2018-2019/a1/fw-serial l Θα βρείτε παραδείγματα και οδηγίες μεταγλώττισης/εκτέλεσης για τα TBBs στον scirouter στο path: /home/parallel/pps/2018-2019/a1/tbb-workspace 23