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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή Θέματα H/W. Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης. Κατανεμημένα Συστήματα (Ε) Εισαγωγή: Θέματα H/W 1

Η ΤΑΞΙΝΟΜΗΣΗ ΤΟΥ FLYNN!!! 1 ο ΕΠΑΛ ΡΟΔΟΥ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ!!!! Χατζηνικόλας Κώστας

Chapter 4 ( ή 1 στο βιβλίο σας)

Οργάνωση Υπολογιστών (ΙI)

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

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

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

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

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

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές

Τεχνολογίες Κύριας Μνήμης

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

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

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

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

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

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

Ατομική Διπλωματική Εργασία ΠΡΟΣΟΜΟΙΩΣΗ ΚΑΙ ΠΕΙΡΑΜΑΤΙΚΗ ΑΞΙΟΛΟΓΗΣΗ ΕΥΡΩΣΤΩΝ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ ΣΤΗΝ ΠΛΑΤΦΟΡΜΑ XMT.

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

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

Ατομική Διπλωματική Εργασία ΠΡΟΣΟΜΟΙΩΣΗ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ ΣΤΟ ΠΕΡΙΒΑΛΛΟΝ XMT. Ελένη Παντελή ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Ατομική Διπλωματική Εργασία ΠΡΟΣΟΜΙΩΣΗ ΚΑΙ ΠΕΙΡΑΜΑΤΙΚΗ ΑΞΙΟΛΟΓΗΣΗ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ ΣΥΝΕΚΤΙΚΩΝ ΣΥΝΙΣΤΩΣΩΝ ΣΤΗΝ ΠΛΑΤΦΟΡΜΑ ΧΜΤ. Χαρίκλεια Ζαχαριάδη

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ << ΜΕΛΕΤΗ ΤΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ CUDA ΚΑΙ ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΡΤΩΝ GPU ΤΗΣ NVIDIA >> Αρ. Μητρώου: 04/2519

Παράλληλοι Αλγόριθµοι

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

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Ατομική Διπλωματική Εργασία ΠΡΟΣOΜΟΙΩΣΗ ΚΑΙ ΠΕΙΡΑΜΑΤΙΚΗ ΑΞΙΟΛΟΓΗΣΗ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ ΣΤΗΝ ΠΛΑΤΦΟΡΜΑ XMT. Άντρια Αναστασίου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Μετρικές και Επιδόσεις 6

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και

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

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

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

Minimum Spanning Tree: Prim's Algorithm

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

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

Κεντρική Μονάδα Επεξεργασίας

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

Προγραμματισμός συστημάτων UNIX/POSIX. Θέμα επιλεγμένο από τους φοιτητές: Προγραμματιστικές τεχνικές που στοχεύουν σε επιδόσεις

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Με τον όρο μνήμη αναφερόμαστε στα μέσα που χρησιμοποιούνται για την αποθήκευση προγραμμάτων και δεδομένων σε έναν υπολογιστή ή άλλη ψηφιακή

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 6 : Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Δρ.

Τελική Εξέταση, Απαντήσεις/Λύσεις

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

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

Maximal Independent Set

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

Παράλληλοι υπολογιστές

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

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

Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts)

Υ- 07 Παράλληλα Συστήματα Συνοχή κρυφής μνήμης με σύστημα καταλόγων

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

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

Οργάνωση Υπολογιστών (IΙI)

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα

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

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

Συνάφεια Κρυφής Μνήµης σε Επεκτάσιµα Μηχανήµατα

Search and Replication in Unstructured Peer-to-Peer Networks

Ιεραρχίες µνήµης. Μιχάλης ρακόπουλος. Υπολογιστική Επιστήµη & Τεχνολογία, #02

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

Ηρώων Πολυτεχνείου 9, Ζωγράφου, Αθήνα, Τηλ: , Fax: URL

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 5 ο Οργάνωση Υπολογιστών. Δρ.

Transcript:

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

Παράλληλες υπολογιστικές πλατφόρμες PRAM: Η ιδανική παράλληλη πλατφόρμα Η ταξινόμηση του Flynn Συστήματα κοινής μνήμης Συστήματα κατανεμημένης μνήμης Ανάλυση παράλληλων προγραμμάτων Μετρικές αξιολόγησης επίδοσης Ο νόμος του Amdahl Μοντελοποίηση παράλληλων προγραμμάτων Σύνοψη παρουσίασης 2

PRAM: Η ιδανική παράλληλη μηχανή Η θεωρητική ανάλυση και αξιολόγηση σειριακών αλγορίθμων βασίζεται στη χρήση ενός υπολογιστικού μοντέλου: Random Access Machine (RAM) Turing machine Γιατί να μην κάνουμε το ίδιο και για τους παράλληλους αλγόριθμους; Ας ορίσουμε μια παράλληλη υπολογιστική μηχανή που θα μας βοηθάει να αναλύουμε και να συγκρίνουμε παράλληλους αλγορίθμους: PRAM: Parallel Random Access Machine n υπολογιστικές μονάδες (n όσο μεγάλο απαιτεί το προς επίλυση πρόβλημα) ) Κοινή μνήμη απεριόριστου μεγέθους Ομοιόμορφη πρόσβαση στη μνήμη από όλους τους επεξεργαστές 3

PRAM: Ταυτόχρονη πρόσβαση σε δεδομένα Τι συμβαίνει όταν δύο επεξεργαστές αποπειρώνται να προσπελάσουν την ίδια θέση μνήμης ταυτόχρονα; 4 διαφορετικές προσεγγίσεις (διαφορετικά μοντέλα): Exclusive Read Exclusive Write (EREW): Κάθε θέση μνήμης μπορείς να αναγνωστεί/εγγραφεί ί από μόνο έναν επεξεργαστή (σε μια δεδομένη χρονική στιγμή) Αν συμβεί ταυτόχρονη πρόσβαση το πρόγραμμα τερματίζει Πρόκειται για πολύ περιοριστικό μοντέλο Concurrent Read Exclusive Write (CREW): Επιτρέπεται ταυτόχρονη ανάγνωση αλλά όχι εγγραφή Exclusive Read Concurrent Write (ERCW): Δεν παρουσιάζει θεωρητικό ή πρακτικό ενδιαφέρον Concurrent Read Concurrent Write (CRCW) Ισχυρή μηχανή που επιτρέπει ταυτόχρονες αναγνώσεις / εγγραφές Ταυτόχρονες εγγραφές: (common, arbitrary, priority, reduction) 4

PRAM: Προβλήματα Η πλατφόρμα PRAM κάνει κάποιες σοβαρές υπεραπλουστεύσεις που την απομακρύνουν από τις πραγματικές μηχανές: Απεριόριστος αριθμός επεξεργαστών (όσους έχει ανάγκη το πρόγραμμα) Απεριόριστο μέγεθος μνήμης Ομοιόμορφος χρόνος πρόσβασης στη μνήμη Για να συνδυαστούν τα παραπάνω απαιτείται ένα τεράστιας πολυπλοκότητας και κόστους δίκτυο διασύνδεσης με διακόπτες Τέτοια δίκτυα διασύνδεσης με την παρούσα τεχνολογία είναι ρεαλιστικά για ~32 επεξεργαστές Η θεωρητική ανάλυση σε ένα μοντέλο PRAM δεν μας δίνει ασφαλή συμπεράσματα για την εκτέλεση σε ένα πραγματικό παράλληλο σύστημα (π.χ. κοινής μνήμης) Το μοντέλο PRAM έχει θεωρητικό ενδιαφέρον και δεν χρησιμοποιείται στην πράξη 5

Flynn s taxonomy SISD SIMD MISD Single Instruction Single Data Single Instruction Multiple Data Multiple Instruction Single Data MIMD Multiple Instruction Multiple Data 6

Flynn s taxonomy 7

Κοινής μνήμης (shared memory) Παράλληλες αρχιτεκτονικές: Οργάνωση μνήμης UMA (Uniform memory access): Χρόνος προσπέλασης ανεξάρτητος του επεξεργαστή και της θέσης μνήμης NUMA (Non uniform memory access): Χρόνος προσπέλασης εξαρτάται από τον επεξεργαστή και τη θέση μνήμης cc NUMA (cache coherent NUMA): NUMA με συνάφεια κρυφής μνήμης Κατανεμημένης μνήμης (distributed memory) Υβριδική 8

Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν κοινή μνήμη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών μνημών Συνήθως η διασύνδεση γίνεται μέσω διαδρόμου μνήμης (memory bus) Αλλά και πιο εξελιγμένα δίκτυα διασύνδεσης Ομοιόμορφη ή μη ομοιόμορφη προσπέλαση στη μνήμη (Uniform Memory Access UMA, Non uniform Memory Access NUMA) Η κοινή μνήμη διευκολύνει τον παράλληλο προγραμματισμό Δύσκολα κλιμακώσιμη αρχιτεκτονική τυπικά μέχρι λίγες δεκάδες κόμβους (δεν κλιμακώνει το δίκτυο διασύνδεσης) $ $ $ CPU CPU CPU Διάδρομος Μνήμης (memory bus) M 9

Αρχιτεκτονική κατανεμημένης μνήμης Κάθε επεξεργαστής έχει τη δική του τοπική μνήμη και ιεραρχία τοπικών μνημών Διασυνδέεται με τους υπόλοιπους επεξεργαστές μέσω δικτύου διασύνδεσης Η κατανεμημένη μνήμη δυσκολεύει τον προγραμματισμό Η αρχιτεκτονική κλιμακώνει σε χιλιάδες υπολογιστικούς κόμβους Κόμβος 1 Κόμβος 2 Κόμβος Ν $ $ $ CPU CPU CPU M M M Δίκτυο Διασύνδεσης (π.χ. Ethernet, Myrinet, SCI) 10

Υβριδική αρχιτεκτονική Συνδυάζει τις δύο παραπάνω αρχιτεκτονικές: κόμβοι με αρχιτεκτονική κοινής μνήμης διασυνδέονται με ένα δίκτυο διασύνδεσης σε αρχιτεκτονική κατανεμημένης μνήμης Τυπική αρχιτεκτονική των σύγχρονων συστοιχιών υπερυπολογιστών 11

Μετρικές αξιολόγησης επίδοσης: Επιτάχυνση (Speedup) Χρόνος καλύτερου σειριακού αλγορίθμου: T s Χρόνος παράλληλου αλγορίθμου: T p Επιτάχυνση (speedup) S = T s / T p Δείχνει πόσες φορές πιο γρήγορο είναι το παράλληλο πρόγραμμα από το σειριακό linear (perfect)speedup σε p επεξεργαστές: p Τυπικά: S p Αν S > p superlinear speedup (πρέπει να το ερμηνεύσουμε προσεκτικά αν προκύψει στις μετρήσεις μας) 12

Αποδοτικότητα (efficiency) και κλιμακωσιμότητα (scalability) Αποδοτικότητα (efficiency) E = S / p Δείχνει πόσο επιτυχημένη είναι η παραλληλοποίηση τι ποσοστό του χρόνου κάθε επεξεργαστής κάνει χρήσιμη δουλειά Τυπικά Ε 1 H κλιμακωσιμότητα (scalability) εκφράζει ποιοτικά την ικανότητα ενός προγράμματος (συστήματος) να βελτιώνει την επίδοσή του με την προσθήκη επιπλέον επεξεργαστών (πόρων) Strong scaling: Κρατάμε το συνολικό μέγεθος του προβλήματος σταθερό Weak scaling: Κρατάμε το μέγεθος ανά επεξεργαστή σταθερό 13

Ο (αμείλικτος) νόμος του Amdahl Χρόνος καλύτερου σειριακού αλγορίθμου: T s f το κλάσμα του χρόνου ενός σειριακού προγράμματος που δεν παραλληλοποιείται Νόμος του Amdahl: T p S ft T T s T p s f 1- f T p Έστω ότι ένα πρόγραμμα μπορεί να μοιραστεί σε 5 παράλληλες εργασίες εκ των οποίων η μία απαιτεί διπλάσιο χρόνο από τις υπόλοιπες 4 f = 1/6 Αν p = 5 (αναθέτουμε κάθε μία από τις παράλληλες εργασίες σε έναν επεξεργαστή) S = 3, E=0,6 Συνέπεια του νόμου του Amdahl: παραλληλοποιούμε (και γενικά βελτιστοποιούμε) τμήματα του κώδικα που καταλαμβάνουν το μεγαλύτερο ποσοστό του χρόνου εκτέλεσης 1 1- f p s 14

1 st and 2 nd rule in code optimization Γενικοί κανόνες βελτιστοποίησης κώδικα DON T DO IT! Because premature optimization is the root of all evil D. Knuth 15

Μοντελοποίηση επίδοσης Η μοντελοποίηση της επίδοσης είναι ιδιαίτερα δύσκολη σε ένα πολύπλοκο σύστημα όπως είναι η εκτέλεση μιας εφαρμογής σε μία παράλληλη πλατφόρμα Θέλουμε το μοντέλο να είναι απλό και ακριβές ρβ Συχνά αρκεί να έχουμε άνω και κάτω όρια στην επίδοση Ο παράλληλος χρόνος εκτέλεσης καταναλώνεται σε: Χρόνο υπολογισμού (T comp ) Χρόνο επικοινωνίας (T comm ) Άεργο χρόνο (Τ idle ) Παράλληλος χρόνος εκτέλεσης: Τ = T comp + T comm + T idle 16

Χρόνος υπολογισμών Κλασικό μοντέλο πρόβλεψης: Τ comp = ops CPU speed Θεωρεί ότι η CPU μπορεί να τροφοδοτείται με δεδομένα από το υποσύστημα μνήμης Μοντέλο roofline Λαμβάνει υπόψη το υποσύστημα μνήμης Operational intensity (OI σε ops/byte) Τ comp = ops max (CPU speed, 1/(ΟΙ memory bandwidth)) Συσχετίζει την εφαρμογή με την αρχιτεκτονική 17

Χρόνος υπολογισμών Παράδειγμα: LU decomposition for(k=0; k<n-1; k++) for(i=k+1; i<n; i++){ } L[i] = A[i][k] / A[k][k]; for(j=k+1; j<n; j++) A[i][j]=A[i][j]-L[i]*A[j][i]; A[j][i]; Operations = N 3 / 3 πολλαπλασιασμοί, Ν 3 /3 προσθέσεις Μπορούμε να αγνοήσουμε τις προσθέσεις Operational intensity (ops/byte): Μας αφορούν δεδομένα δ που έρχονται από την κύρια μνήμη (όχι από την cache) h) Μπορούμε να αγνοήσουμε το διάνυσμα L Μέγεθος Α = 8 Ν 2 (θεωρούμε διπλή ακρίβεια, 8 bytes για κάθε στοιχείο του Α) Αν ο A χωράει στην cache: ΟΙ = (N 3 / 3) / (8 Ν 2 ) = Ν/24 / muls/byte l/b Αν ο Α >> cache size: Ας θεωρήσουμε ότι σε κάθε βήμα k ο Α φορτώνεται από τη μνήμη (γιατί δεν είναι τυπικά σωστό αυτό?). ΟΙ = 1/24 muls/byte 18

Έστω επεξεργαστής με: CPU speed 5 10 8 muls/sec ή 2 10 9 sec/mul (500MFlops) Bandwidth διαδρόμου μνήμης: 4GB/sec = 4 10 9 bytes /sec 4MB L2 cache N = 100 (ο Α χωράει στην cache, OI = 4,16 muls/byte) Παραδοσιακό μοντέλο: Χρόνος υπολογισμών Παράδειγμα: LU decomposition Τ comp = ops CPU speed = 0.33 10 6 muls 2 10 9 sec/mul = 0.66msec Μοντέλο roofline: T comp = ops min (CPU speed, 1/(ΟΙ memory bandwidth)) = 0.33 10 6 muls max (2 10 9 sec/mul, (4,16 muls/byte 4 10 9 bytes/sec) 1 )= 0.33 10 6 muls max (2 10 9 sec/mul, 6 10 11 sec/mul) = 0.66msec N = 2000 (ο Α δεν χωράει στην cache, OI = 0,042 muls/byte) Παραδοσιακό μοντέλο: Τ comp = ops CPU speed = 2.66 10 9 muls 2 10 9 sec/mul = 5.33sec Μοντέλο roofline: T comp = ops max (CPU speed, 1/(ΟΙ memory bandwidth)) = 2.66 10 9 muls max (2 10 9 sec/mul, (0,042 muls/byte 4 10 9 bytes /sec) 1 ) = 266 10 2.66 10 9 muls max (2 10 9 sec/mul, 5,95 10 595 10 9 ) = 15.9sec 19

Χρόνος επικοινωνίας (point to point): Startup time (t s ) Per hop time (t h ) Per word transfer time (t w ) Χρόνος επικοινωνίας T comm = t s + lt h + mt w (l = number of hops, m = message size) Το lt h είναι συνήθως μικρό και μπορεί να ενσωματωθεί στο t s, άρα: T comm = t s + mt w Χρόνος επικοινωνίας (broadcast σε P κόμβους) P διαφορετικά μηνύματαμ T comm = P(t s + mt w ) Δενδρική υλοποίηση: T comm = log 2 P(t s + mt w ) 20

Παράδειγμα: Nearest neighbor communication 2 διάστατο υπολογιστικό χωρίο L 1 L 2 Κάθε επεξεργαστής επικοινωνεί με τους γειτονικούς του Ποια τοπολογία επεξεργαστών ελαχιστοποιεί το κόστος επικοινωνίας; 1D 2D 21

Αριθμός επεξεργαστών: P = 100 1D = 100 1 2D = 10 10 διπλή ακρίβεια (8 bytes) L 4 3 1 =10, L 2 = 10 t s = 6 10 6 sec bandwidth = 500MB/sec t w =1.9 10 9 sec/byte 1D 2 γείτονες, 1 μήνυμα ανά γείτονα, 2 μηνύματα ανά διεργασία Μέγεθος μηνύματος:m=8l 2 = 8 10 3 bytes Παράδειγμα: Nearest neighbor communication T comm = t s + mt w = 2 (6 10 6 sec + 8 10 3 bytes 1.9 10 9 sec/byte) = 42.4usec 2D 4 μηνύματα ανά διεργασία m 1 =8L 1 /10= 8 10 3 bytes, m 2 =8L 2 /10= 8 10 2 bytes T comm = t s + mt w = 4(6 10 6 sec) + 2(8 10 3 bytes 1.9 10 9 sec/byte) + 2(8 10 2 bytes 1.9 10 9 sec/byte) = 24us + 30,4us + 3,04us = 57,4us 22

Ο άεργος χρόνος μπορεί να μοντελοποιηθεί δύσκολα Άεργος χρόνος Προκύπτει συνήθως από ανισοκατανομή του φόρτου εργασίας (load imbalance) Μπορεί να οφείλεται σε αναμονή για δεδομένα Σε αυτή την περίπτωση μπορεί να μοντελοποιηθεί σας μέρος του t s στο χρόνο επικοινωνίας 23