Εφαρµογές µε ανάγκες για υψηλές επιδόσεις Αξιολόγηση επίδοσης Παραλληλοποίηση εφαρµογών



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

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

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

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

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

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

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

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

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

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

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

Network Algorithms and Complexity Παραλληλοποίηση του αλγορίθμου του Prim. Αικατερίνη Κούκιου

Επιστηµονικός Υπολογισµός Ι Ενότητα 1 - Εισαγωγή. Ευστράτιος Γαλλόπουλος

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

προβλήµατα ανάλυσης ροής

Αριθµητικές Μέθοδοι Collocation. Απεικόνιση σε Σύγχρονες Υπολογιστικές Αρχιτεκτονικές

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

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

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

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

Minimum Spanning Tree: Prim's Algorithm

Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός;

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Διάλεξη 3: Περιγραφή αριθμητικών μεθόδων (συνέχεια)

ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ

Παρουσίαση 3ης Άσκησης

Εισαγωγή. Λογισµικό & Προγραµµατισµός Συστηµάτων Υψηλής Επίδοσης

Επιστημονικοί Υπολογισμοί (ή Υπολογιστική Επιστήμη)

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

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

παραλληλοποίηση σε περιβάλλον κατανεµηµένης µνήµης έγινε µε χρήση του πακέτου MPI (Message Passing Interface), η οποία δίνει στον κώδικα την δυνατότητ

Παραλληλοποίηση Αλγόριθµων Γραµµικής Άλγεβρας για Αρχιτεκτονικές Υψηλής Επίδοσης ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Βασιλική Α. Καλαβρή

Προσομοιώσεις Monte Carlo σε GPU

ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ

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

Τεχνική Έκθεση Μέθοδοι χαλάρωσης στη διεπαφή για ελλειπτικά και παραβολικά προβλήματα Παράλληλοι Αλγόριθμοι ΜΧΔ...

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

Ενότητα 6. Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού. Σιέττος Κωνσταντίνος

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

Εφαρμογή σε υπολογισμούς αραιών πινάκων. Αντώνιος - Κορνήλιος Κούρτης 1 / 43. Εργαστήριο Υπολογιστικών Συστημάτων ΕΜΠ

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

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

All Pairs Shortest Path

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

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

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

12/3/2012. Εργαστήριο Αλγόριθμοι Γραμμικής Βελτιστοποίησης. Lab03 1. Διανυσματοποίηση Βρόχων. Αρχικοποίηση μητρών (preallocating)

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Αρχιτεκτονική Υπολογιστών

Κεφάλαιο 4. Επίλυση ελλειπτικών διαφορικών εξισώσεων µε πεπερασµένες διαφορές

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Διάλεξη 2: Περιγραφή αριθμητικών μεθόδων

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Περίληψη. Υπερυπολογιστές. Υπολογιστικά προβλήµατα. TOP 500 (Ιούνιος 2007) TOP 500 (Ιούνιος 2009) Ε-85: Ειδικά Θέµατα Λογισµικού

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

Αριθµητική Ανάλυση. Τµήµα Α ( Αρτιοι) : Καθηγητής Ν.Μισυρλής,Τµήµα Β (Περιττοί) : Επίκ. Αριθµητική Καθηγητής Ανάλυση Φ.Τζαφέρης

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

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

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

Αρχιτεκτονική Υπολογιστών

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

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

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

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ


Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

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

Cilk: Φιλοσοφία και Χρήση

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

Παραλληλισμός δεδομένων ή Φυσικός παραλληλισμός

Κατανεμημένος και Παράλληλος Προγραμματισμός. Ύλη μαθήματος. Βιβλιογραφία Μαθήματος 2/27/2016

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

Βασική Εφικτή Λύση. Βασική Εφικτή Λύση

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 1. Αφηρηµένες έννοιες και τεχνολογία υπολογιστών

Πολυπύρηνοι επεξεργαστές Multicore processors

Παράλληλη Επεξεργασία Κεφάλαιο 2 Παραλληλισμός Δεδομένων

Αλγόριθμοι και Πολυπλοκότητα

Συστήµατα και Αλγόριθµοι Πολυµέσων

Επίλυση ελλειπτικών διαφορικών εξισώσεων με πεπερασμένες διαφορές

Κεφάλαιο 6. Εισαγωγή στη µέθοδο πεπερασµένων όγκων επίλυση ελλειπτικών και παραβολικών διαφορικών εξισώσεων

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

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

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

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

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

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

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ, 5 Ο ΕΞΑΜΗΝΟ, ΠΕΡΙΕΧΟΜΕΝΑ ΠΑΡΑΔΟΣΕΩΝ. Κεφ. 1: Εισαγωγή (διάρκεια: 0.5 εβδομάδες)

Επιστηµονικοί Υπολογισµοί (Αρ. Γρ. Αλγεβρα)Επαναληπτικές µέθοδοι και 31 Μαρτίου Ηµι-Επαναληπτικές Μέθοδο / 17

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

Αρχιτεκτονική Υπολογιστών

Εφαρμοσμένα Μαθηματικά

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

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

Για τις λύσεις των προβλημάτων υπάρχει τρόπος εκτίμησης της επίδοσης (performance) και της αποδοτικότητας (efficiency). Ερωτήματα για την επίδοση

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

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

Ζητήµατα Απόδοσης. Ιεραρχία Μνήµης. Αναγκαιότητα για Ιεραρχία Μνήµης. Processor-DRAM Gap (latency) Ε-85: Ειδικά Θέµατα Λογισµικού

Transcript:

Parallelizing applications for the GRID Γιώργος Γκούµας goumas@cslab.ece.ntua.gr

Σύνοψη Παρουσίασηςασης Εφαρµογές µε ανάγκες για υψηλές επιδόσεις Αξιολόγηση επίδοσης Παραλληλοποίηση εφαρµογών Γενικές αρχές Παραδείγµατα Embarassingly parallel Μερικές ιαφορικές Εξισώσεις Εύρεση ελάχιστου µονοπατιού Πράξεις µε αραιούς πίνακες Αποτελέσµατα

Απαιτητικές παιτητικές εφαρµογές Εξοµοιώσεις φυσικών διεργασίων Γραµµική άλγεβρα Αλγόριθµοι γράφων Επεξεργασία σήµατος Βελτιστοποίηση Ταξινόµηση Μέθοδοι Monte Carlo Data search

Οι 7 νάνοι The Landscape of Parallel Computing Research: A View from Berkeley K. Asanovic, R. Bodik, B. C. Catanzaro, J. J. Gebis, P. Husbands, K. Keutzer, D. A. Patterson, W. L. Plishker, J. Shalf, S. W. Williams and K. A. Yelick http://www.eecs.berkeley.edu/pubs/techrpts/2006/eecs- 2006-183.pdf 1. Dense linear algebra 2. Sparse linear algebra 3. Spectral methods (frequency domain, FFT) 4. N-body methods 5. Structured grids (e.g. Red-black) 6. Unstructured grids 7. Monte Carlo

Εξοµοιώσεις φυσικών διεργασιών Ρευστοδυναµική (Computational Fluid Dynamics - CFD) Φυσική της ατµόσφαιρας - Μετεωρολογία ιάχυση (θερµότητας, υλικών, κλπ) Μετάδοση Η/Μ ακτινοβολίας οµική µηχανική Φυσική υψηλών ενεργειών Αστρονοµία Βιολογία (αναδίπλωση πρωτεϊνών protein folding)

Αριθµητική επίλυση Μ Ε ιακριτοποίηση του υπό εξέταση χωρίου (δηµιουργία πλέγµατος) u t = 2 2 u x + ιακριτοποίηση του συνεχούς µοντέλου περιγραφής του προβλήµατος, π.χ.: u t = 2 2 u y u n+1 xy dt u n xy 2 n n n u u x 1y 2u xy+ u x+ 1y = 2 2 Υλοποίηση επαναληπτικής µεθόδου επίλυσης dt dx dt dx x dx n n n n ( u + u + u + u ) n+ 1 n u xy = 1 4 u 2 xy+ 2 x 1y x+ 1y xy 1 xy+ 1

Αριθµητική επίλυση Μ Ε (2) Μέθοδοι διακριτοποίησης Μ Ε: Πεπερασµένες διαφορές (finite differences) Πεπερασµένα στοιχεία (finite elements) Πεπερασµένοι όγκοι (finite volumes) Εν γένει οι παραπάνω διακριτοποιήσεις οδηγούν στην κατασκευή ενός µεγάλου αραιού γραµµικού συστήµατος της γνωστής µορφής Αu=b όπου: Α NxN αραιός πίνακας που εξαρτάται από τη διακριτοποίηση του χώρου u N-διάστατο διάνυσµα µε τις προς υπολογισµό τιµές τις συνάρτησης u στα Ν σηµεία του πλέγµατος b N-διάστατο διάνυσµα που προκύπτει από τις αρχικές/συνοριακές τιµές του προβλήµατος

Αριθµητική επίλυση Μ Ε (3) Μέθοδοι επίλυσης συστήµατος Αu=b: Direct µέθοδοι, π.χ. LU Decomposition (A=LU). Επαναληπτικές µέθοδοι: Conjugate Gradient (CG), Generalized Minimal Residual Method (GMRES). Μultigrid µέθοδοι (γεωµετρικές, αλγεβρικές)

Αξιολόγηση επίδοσης (παράλληλου) προγράµµατος: Μετρικές Χρόνος εκτέλεσης σειριακού (T S ), χρόνος εκτέλεσης παράλληλου (T P ) Αριθµός πράξεων κινητής υποδιαστολής / δευτερόλεπτο (MFLOP/s) Επιτάχυνση (speedup) Αποδοτικότητα (parallel efficiency)

MFLOP/s Ο αριθµός των πράξεων κινητής υποδιαστολής είναι γενικά χαρακτηριστικό του αλγόριθµου, π.χ.: Πολλαπλασιασµός διανυσµάτων: 2Ν-1 Πολλαπλασιασµός πίνακα-διάνυσµα: 2Ν 2 -Ν LU decomposition: N 3 Επίδoση (MFLOP/s) =MFLOP/T Χαρακτηρίζει την επίδοση του αλγόριθµου σε µία πλατφόρµα

Επιτάχυνση (Speedup) 300 250 Speedup (S)=T S /T P 0 Speedup 200 150 100 Linear speedup Actual speedup 50 0 50 100 150 200 250 300 # of Processors Χαρακτηρίζει την επιτυχία παραλληλοποίησης ενός αλγόριθµου σε P επεξεργαστές Ο νόµος του Amdahl: Speedup ( overall) T = T S P = ft P T S + (1 T P f ) P

Efficiency 1,2 1 Efficiency Efficiency 0,8 0,6 0,4 Actual Ideal (E)=S/P 0 0,2 0 50 100 150 200 250 300 # of Processors Εκφράζει το ποσοστό του χρόνου που κάθε επεξεργαστής καταναλώνει σε χρήσιµη εργασία

Παραλληλοποίηση εφαρµογών Στόχοι: Μείωση χρόνου εκτέλεσης Βελτίωση ποιότητας των αποτελεσµάτων (π.χ. ακρίβεια) Επίλυση «µεγαλύτερου» προβλήµατος Απαιτήσεις: Καλή γνώση του προς επίλυση προβλήµατος Γνώση της υφιστάµενης αρχιτεκτονικής (?) Φαντασία!

ος (και 2 ος ) κανόνας για τη 1 ος βελτιστοποίηση του λογισµικού Μην το κάνεις!!!! premature optimization is the root of all evil Donald Knuth

Γενική µεθοδολογία παραλληλοποίησηςησης Βήµα 1: Κατανοµή υπολογισµών Βήµα 2: Κατανοµή δεδοµένων Βήµα 3: Σχεδιασµός επικοινωνίας/συγχρονισµού Βήµα 4: Βελτιστοποιήσεις (επιστροφή στο Βήµα 1?) Βήµα 5: Ανάπτυξη παράλληλου κώδικα Βήµα 6: Ανάθεση διεργασιών σε επεξεργαστές

Γενική µεθοδολογία παραλληλοποίησηςησης Ιδιαίτερη προσοχή σε: Ανάδειξη όλου του εγγενούς παραλληλισµού Επιλογή µεταξύ coarse-grain και fine-grain παραλληλισµού Οµοιόµορφη κατανοµή του φορτίου (load balancing) Ελαχιστοποίηση του κόστους επικοινωνίας/συγχρονισµού Αριθµός δεδοµένων επικοινωνίας Αριθµός µηνυµάτων Συχνότητα συγχρονισµού Bottlenecks και ιδιοµορφίες της πλατφόρµας εκτέλεσης

Αρχιτεκτονικές και Προγραµµατιστικά Μοντέλα από την οπτική του προγραµµατιστή Αρχιτεκτονική Κοινής µνήµης (shared memory) Κατανεµηµένης µνήµης (distributed memory) Προγραµµατιστικό µοντέλο Κοινός χώρος διευθύνσεων (shared address space) Ανταλλαγή µηνυµάτων (message-passing) + Ευκολία υλοποίησης + Προγραµµατιστική ευκολία + Υψηλή επίδοση + Ευκολία υλοποίησης + Υψηλή επίδοση - Προγραµµατιστική δυσκολία + Προγραµµατιστική ευκολία - υσκολία υλοποίησης - Χαµηλή επίδοση + Ευκολία υλοποίησης + Υψηλή επίδοση - Προγραµµατιστική δυσκολία

Εφαρµογές Embarassingly Parallel Μπορούν να χωριστούν σε τελείως ανεξάρτητα tasks Επεξεργάζονται διαφορετικά δεδοµένα Data-parallel εφαρµογές Παραδείγµατα: Mp3 encoding N αρχείων σε P επεξεργαστές µε N >> P Αναζήτηση Μέθοδοι Monte Carlo Monte carlo methods 1. Ορισµός χώρου από εισόδους 2. Επιλογή τυχαίας εισόδου 3. Εκτέλεση «πειράµατος» 4. Συλλογή αποτελεσµάτων Το βήµα 3 που καταναλώνει τον περισσότερο χρόνο είναι τελείως ανεξάρτητο Προσοχή όµως στη γεννήτρια τυχαίων αριθµών σε συστήµατα κοινής µνήµης!!!!

Εξίσωση διάχυσης στις 2 διαστάσεις 1. while (!converged){ 2. for x=1 to X-1 do 3. for y=1 to Y-1 do 4. A[t+1][x][y] = f(a[t][x][y], A[t][x-1][y], A[t][x+1][y], A[t][x][y-1], A[t][x][y]+1); 5. t++;} t+1 t Nearest neighbor update (stencil computation) dwarf#5

Παραλληλοποίηση η σε κοινό χώρο διευθύνσεων 1. while (!converged){ //NOT PARALLEL 2. #pragma omp parallel for private (x,y) 3. for x=1 to X-1 do //PARALLEL AND PARALLELIZED 4. for y=1 to Y-1 do //PARALLEL BUT NOT PARALLELIZED 5. A[t+1][x][y] = f(a[t][x][y], A[t][x-1][y], A[t][x+1][y], A[t][x][y-1], A[t][x][y]+1); 6. t++;} P1 P2 t+1 t

ΑΠΟΤΕΛΕΣΜΑΤΑ 8 core Intel(R) Xeon(R) CPU E5335 @ 2.00GHz 4MB L2 cache (shared between 2 cores)

ΑΠΟΤΕΛΕΣΜΑΤΑ 3-D Parallel diffusion (300^4) Execution time (sec) 70 60 50 40 30 20 10 0 0 2 4 6 8 10 Cores Real scaling Perfect scaling

Παραλληλοποίηση η µε ανταλλαγή µηνυµάτων Κατανοµή υπολογιστικού πλέγµατος σε διεργασίες P2 P1 P2 P1 P3 P4 P3 t+1 t P4 communication data

Παραλληλοποίηση η µε ανταλλαγή µηνυµάτων (pseudocode) 1. while (!converged){ 2. Send_data_to_left( ); 3. Receive_data_from_left( ); 4. Send_data_to_right( ); 5. Receive_data_from_right( ); 6. Send_data_to_up( ); 7. Receive_data_from_up( ); 8. Send_data_to_down( ); 9. Receive_data_from_down( ); 10. Compute(); 11. }

ΑΠΟΤΕΛΕΣΜΑΤΑ MPI implementation 8-node cluster (total 64 cores) 3-D Parallel diffusion (400x400x400x200) 100 Execution time 80 60 40 20 Real scaling Computation Perfrect scaling 0 0 10 20 30 40 50 60 70 Cores

Αλγόριθµοι γράφων Παράδειγµα: All to All Shortest Path (Αλγόριθµος Floyd-Warshall) Σειριακός αλγόριθµος: 1. Procedure FLOYD_ALL_PAIRS_SP(A) 2. Begin 3. D (0) :=A; 4. for k=1 to n do 5. for i=1 to n do 6. for j=1 to n do 7. d (k) i,j = min(d (k-1) i,j, d (k-1) i,k + d (k-1) k,j ) 8. End FLOYD_ALL_PAIRS_SP

Αλγόριθµοι γράφων Παράδειγµα: All to All Shortest Path (Αλγόριθµος Floyd-Warshall) k=m m m

Floyd-Warshall: Παραλληλοποίηση σε κοινό χώρο διευθύνσεων Procedure FLOYD_ALL_PAIRS_SP(A) 1. Begin 2. D (0) :=A; 3. for k=1 to n do 4. #pragma omp parallel for (private i,j) shared D 5. for i=1 to n do 6. for j=1 to n do 7. d (k) i,j = min(d (k-1) i,j, d (k-1) i,k + d (k-1) k,j ) 8. End FLOYD_ALL_PAIRS_SP

ΑΠΟΤΕΛΕΣΜΑΤΑ FW parallel speedup Speedup 9 8 7 6 5 4 3 2 1 0 0 2 4 6 8 10 cores 2000 nodes 4000 nodes perfect

Υπολογιστικός Πυρήνας SpMV Αποθήκευσης Συµπιεσµένης Αραιής Γραµµής (CSR) Υπολογιστικός πυρήνας DMV (πυκνός πίνακας) SpMV (αραιός πίνακας)

Θέµατα επίδοσης SpMV Έµµεση αναφορά στην µνήµη Απουσία χρονικής τοπικότητα σε y, a Μικρά µήκη γραµµών Ακανόνιστη πρόσβαση στο x

Παραλληλοποίηση σε κοινό χώρο διευθύνσεων 1. #pragma omp parallel for private(i,j) shared (y,i,row_ptr,col_ind) 2. for (i=0; i<n; i++) 3. for (j=row_ptr[i]; j<row_ptr[i+1]; j++) 4. y[i] += a[j]*x[col_ind[j]]; y A x = *

ΑΠΟΤΕΛΕΣΜΑΤΑ Avg speedup over 40 sparse matrices speedup 9 8 7 6 5 4 3 2 1 0 0 2 4 6 8 10 cores perfect real

Ζητήµατα παραλληλοποίησης µε ανταλλαγή µηνυµάτων Συνήθως η πολ/µός καλείται επαναληπτικά µέσα από κάποια µέθοδο επίλυση γραµµικών συστηµάτων (CG, GMRES) y x Κατανοµή υπολογισµών και δεδοµένων όπως πριν: y A x = *

Ζητήµατα παραλληλοποίησης µε ανταλλαγή µηνυµάτων Απαιτείται επικοινωνία για το διάνυσµα χ 2 προσεγγίσεις: Ανταλλαγή ολόκληρου του διανύσµατος µετά από κάθε επανάληψη Ανταλλαγή µόνο των στοιχείων που χρειάζονται (ανάλογα µε τη δοµή του αραιού πίνακα) Πρόβληµα graph partitioning: «Κατανοµή των γραµµών του πίνακα Α σε επεξεργαστές µε στόχο την ισοκατανοµή του φορτίου και της επικοινωνίας» NP-complete Πληθώρα αλγορίθµων και εργαλείων για την επίλυση (π.χ. METIS)

ΣΥΜΠΕΡΑΣΜΑΤΑ Η βελτιστοποίηση / παραλληλοποίηση κώδικα είναι µία επίπονη διαδικασία Απαιτεί κατανόηση της συµπεριφοράς εκτέλεσης της εφαρµογής (profiling) Βοηθά ιδιαίτερα η κατανόηση των αρχιτεκτονικών χαρακτηριστικών της πλατφόρµας εκτέλεσης (π.χ. memory hierarchy, interconnection network) Οι πολυπύρηνοι κόµβοι παρουσιάζουν συχνά προβλήµατα στην κλιµάκωση των εφαρµογών κυρίως λόγω memory bottleneck