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

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

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

HY-486 Αρχές Κατανεμημένου Υπολογισμού

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

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

Λειτουργικά Συστήματα Η/Υ

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

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

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

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

Transactional Memory

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

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

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

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

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

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

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

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

Transactional Memory

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

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ονοματεπώνυμο: Βαθμός:

Υ- 07 Παράλληλα Συστήματα Transac9onal memory

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

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

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

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

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

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

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

Τα Φύλλα Εργασίας αφορά την εκμάθηση της εκτέλεσης της δομής επιλογής μέσα από το περιβάλλον του SCRATCH.

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

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

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

Επαναληπτικές Διαδικασίες

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

Εικονική Μνήμη (Virtual Μemory)

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

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

ΛΟΓΙΣΜΙΚΟ (software)

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Περιγραφή και Έλεγχος ιεργασιών

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

Academia Financials Γενική Λογιστική ΠΕΡΙΕΧΟΜΕΝΑ

All Pairs Shortest Path

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

Επεξεργασία Ερωτήσεων

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Διονύσιος Σαλονικίδης. Μεταπτυχιακός Φοιτητής. Διπλωματική Εργασία. Επιβλέπων: Κωνσταντίνος Μαργαρίτης, Καθηγητής. Τμήμα Εφαρμοσμένης Πληροφορικής

OSCAR NEDO PDA. 16 IBM pseries690 Regatta H 8 IBM RS6000 SP 604e High Node SUN Fire. Do-all Do-across. OpenMP 6) PROMIS 7)

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP

Τεχνικές Βελτιστοποίησης Κώδικα για Πολυεπεξεργαστικές Αρχιτεκτονικές. Υπευθυνος Διδάσκων: Νεκτάριος Κοζύρης. Transactional Memory

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

Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων Σωτήρης Γυφτόπουλος

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων

first block of queries p-th block of queries p

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

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

Μελέτη και Αξιολόγηση του Hardware Transactional Memory για Παραλληλοποίηση Skip Lists

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

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ;

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

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

Εικονική Μνήμη (Virtual Μemory)

Δίκτυα Η/Υ ςτην Επιχείρηςη

Σύγχρονες Προκλήσεις

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

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

Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών

Δρίμτζιας Βασίλειος MSc, Καθηγητής Πληροφορικής ΠΕ19, 1ο Γενικό Λύκειο Ηγουμενίτσας

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

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

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

Βασίλειος Κοντογιάννης ΠΕ19

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

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

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

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

Δίκτυα Η/Υ στην Επιχείρηση

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

Λειτουργικά Συστήµατα

ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων. Βιβλιογραφία Ενότητας

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

Transcript:

Quake I

QuakeTM: Parallelizing a Complex Sequential Application Using Transactional Memory (Gajinov et al., 2009) Είναι όντως χρήσιμη η transactional memory σε μεγάλες εφαρμογές; Παράλληλη υλοποίηση μιας περίπλοκης real life εφαρμογής όπως είναι το Quake. Σύγκριση δύο ειδών υλοποίησης coarse grained και fine grained Χρήσιμα συμπεράσματα και παρατηρήσεις

Περιγραφή του Quake Multi-player mode του Quake I Client -Server model O server υλοποιεί τον κόσμο του παιχνιδιού καθώς και συντονίζει την επικοινωνία μεταξύ των clients Οι clients προκαλούν συνεχή ανανέωση των γραφικών και είναι υπεύθυνοι για τις λειτουργίες διεπαφής (user-inteface)

Περιγραφή του Quake O server εκτελεί έναν ατέρμονο βρόχο

Περιγραφή του Quake Κατασκευή και ενημέρωση του BSP δέντρου

Παραλληλοποίηση του Quake Υπάρχει ήδη από το 2004 παράλληλη έκδοση του Quake (χρόνος υλοποιησ. 15 man months) H υλοποίηση αυτή είναι fined-grained lockbased Το Φεβρουάριο του 2009 η παραπάνω έκδοση ξαναγράφτηκε με την αντικατάσταση των locks με transactions (Atomic Quake) Αρκετά δύσκολη και χρονοβόρα εργασία

Παραλληλοποίηση του Quake Νέα στρατηγική παραλληλοποίησης Τώρα θα ξεκινήσουμε από την σειριακή έκδοση και θα προσπαθήσουμε να την παραλληλοποιήσουμε όσον το δυνατόν πιο εύκολα Επομένως έχουμε μια coarse-grained προσέγγιση Χρησιμοποιούμε OpenMP και transactional memory

QuakeTM Αναγνώριση κομματιών κώδικα που είναι κατάλληλα για παραλληλοποίηση (χρήση profiler και συστηματική εξέταση κώδικα) Μόλις τα κομμάτια αναγνωριστούν είναι εύκολη η διαδικασία του να προσθέσεις OpenMP pragmas και όρια transactional memory To δύσκολο είναι να αναγνωριστούν οι global data structures και ποιες μεταβλητές πρέπει να είναι τοπικές και ποιες διαμοιραζόμενες αναμέσα στα threads

QuakeTM parallization strategy Ανάλυση εκτέλεσης του σειριακού server

QuakeTM parallization strategy Επομένως όλη η προσπάθεια πηγαίνει στον παραλληλισμό του Request Processing

QuakeTM parallization strategy Συνολικά η coarse-grained προσέγγιση έχει 8 μεγάλα atomic blocks Τα 4 από αυτά τα πιο σημαντικά μιας και ευθύνονται για τον συγχρονισμό των εντολών κίνησης του client (η πιο συχνή ενέργεια που εκτελείται στο server) Κάθε μήνυμα από τον client αφαιρείται από τα πακέτα επικοινωνίας και μεταφράζεται σε μια ή περισσότερες εντολές Η εκτέλεση της εντολής κίνησης φαίνεται παρακάτω

QuakeTM parallization strategy

Θέματα παραλληλισμού και ReachPoints Σπαταλήθηκε πολύς χρόνος στο να αναγνωριστούν με το μάτι τα global από τα thread-specific δεδομένα Δεν είναι η ενδεδειγμένη λύση όταν έχεις να κάνεις με τόσο μεγάλα προγράμματα Υπάρχει ανάγκη για ανάπτυξη πιο αυτοματοποιημένων τρόπων αναγνώρισης τέτοιου είδους δεδομένων Η λύση που αναπτύχθηκε ονομάζεται ReachPoint

Θέματα παραλληλισμού και ReachPoints Η ιδέα προήλθε από την TM cache-line granularity conflict detection implementation H λύση των ReachPoints αποτελείται από έναν πίνακα με μετρητές για κάθε thread λαμβάνοντας υπόψην κάθε φορά την cache-line granularity (x*16 ακέραιοι για κάθε thread και μέγεθος cache-line 64 bytes) Παράδειγμα υλοποιησης φαίνεται παρακάτω

Θέματα παραλληλισμού και ReachPoints

Θέματα παραλληλισμού και ReachPoints Αν και απλοϊκή λύση βοήθησε πολύ στο ανακαλυφθούν κομμάτια κώδικα που είχαν διενέξεις Επιπλέον βρέθηκαν άλλα κομμάτια κώδικα που δεν θα έπρεπε να έχουν διενέξεις και παρόλα αυτά εμφάνιζαν aborts To πρόβλημα οφειλόταν στον μηχανισμό cashe-line granularity (πχ δύο εντελώς διαφορετικές μεταβητές βρίσκονταν στο ίδιο cache-line) H λύση ήταν να εφαρμόσουμε cache padding για αυτές τις περιπτώσεις Παρατηρήθηκε αύξηση της ταχύτητας μιας και ο αριθμός των aborts έπεσε αρκετά Ένας ΤΜ debugger θα βοηθούσε αρκετά

Μέθοδος αξιολόγησης Χρησιμοποιήθηκε ο υπάρχον κώδικας του Quake για την υλοποίηση ενός TraceBot του οποίου η συμπεριφορά ελεγχόταν από μια finite state machine Τροποποίηση του κώδικα του server για να γίνει δυνατός ο συχρονισμός με το Bot Χρήση της V3 έκδοσης του STM C/C++ compiler της Intel με Ο3 βελτιστοποιήσεις Η υλοποίηση της STM είναι μια βελτιωμένη έκδοση του McRT-STM

Αποτελέσματα Σύγκριση του QuakeTM με το σειριακό Quake (single-thread)

Αποτελέσματα Σύγκριση του QuakeTM με το global-lock version

Αποτελέσματα Σύγκριση του QuakeTM με το σειριακό Quake (parallel server running16 clients)

Αποτελέσματα Σύγκριση του QuakeTM με το global-lock version

Αποτελέσματα Σύγκριση του Atomic Quake (TM-fine) με το lock-fine

Αποτελέσματα Σύγκριση του Atomic Quake (TM-fine) με το lock-fine (parallel servers running16 clients)

Σύγκριση όλων των παράλληλων υλοποιήσεων

Συμπεράσματα - Ερωτήσεις