Transactional Memory. Τα προβλήματα του παράλληλου προγραμματισμού  Εντοπισμός παραλληλισμού – χειροκίνητα (επισκόπηση) – αυτόματα (compiler)  Έκφραση.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Comparative vs. Superlative
Advertisements

Windows Intune : Management through Cloud. Microsoft Commercial Cloud Services 9,000 business customers 40M paid Online seats More than 500 government.
Threading Building Blocks. Σύνοψη  Γενικά για TBBs  Tasks  Parallel for  Εσωτερική λειτουργία βιβλιοθήκης  Task graphs.
SAMSUNG PABX.  Σύγκλιση Voice &Data στηριζόμενη στην IP τεχνολογία - Δραματικά γρήγορη αλλαγή σε IP περιβάλλον - Αντικατάσταση των κλειστών συστημάτων.
ENO S PRESENTATIONS BY ENOGREECE • Eno Greece s schools work in Enoprogramme 7 years. Lately they became very active because we managed to connect eno.
Δίκτυα Η/Υ ΙΙ Έλεγχος Συμφόρησης Congestion Control.
Certificate of Excellence καλύτερη συνολική επίδοση πενταετίας ,13 FG% 46,13 FG%
Εισαγωγή στη Βιοπληροφορική
Αναλογική- Ψηφιακή Φωτογραφία (Φιλμ-Αισθητήρας)
1 Basic network tools Layers recap Basic Addressing ping traceroute ipconfig.
Internet protocol stack
Strings.
IT2000 vs IT2012 By Fotis Lavdas & Menelaos Makrigiannis.
NT Greek Grammar (Macnair Ch. 1-4)
PRESENT CONTINUOUS MARY P. 4TH GRADE.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 11: Χρήση δομών, εξωτερικών αρχείων και γραφικών στο Matlab Εαρινό εξάμηνο 2008.
ΣYMBOΛIKOΣ ΥΠΟΛΟΓΙΣΜΟΣ. ΣYMBOΛIKOΣ ΥΠΟΛΟΓΙΣΜΟΣ - Παράδειγμα %polynomial (Expression, Variable) polynomial (X, X). polynomial (Term, X) :- number (Term).
1 Green IT Μύθοι & Πραγματικότητα. 2 Η ΕΙΚΟΝΑ ΣΗΜΕΡΑ.
Προβλήματα Προσχεδιασμού. Ο κόσμος των κύβων Πρόβλημα προσχεδιασμού κατάλληλων πύργων Η Κατάσταση του κόσμου μπορεί να αναπαρασταθεί με μια λίστα από:
ΗΥ220 - Βασίλης Παπαευσταθίου1 ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο Δυναμικές Μνήμες - DRAM.
MOBILITY (MOBILE IP).
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Distributed Database Systems.
Hellenic Ministry for the Environment, Spatial Planning and Public Works Greek Experience on the Implementation of IPPC Directive Alexandros Karavanas.
TEMPLATES, STL ΠΡΟΓΡΑΜΜΑΤΑ ΜΕ ΠΟΛΛΑ ΑΡΧΕΙΑ. ΑΝΑΚΕΦΑΛΑΙΩΣΗ.
Examples in XSB Prolog Επεξεργασία και Αναπαράσταση Γνώσης Άνοιξη 2010 Τμήμα Επιστήμης Υπολογιστών Πανεπιστημίου Κρήτης.
Υποθετικός Πολυνηματισμός. Τα προβλήματα του παράλληλου προγραμματισμού  Εντοπισμός παραλληλισμού – χειροκίνητα (επισκόπηση) – αυτόματα (compiler) 
Ρυθμίσεις Android phones για MMS και Internet. 20/6/2013 Although every effort has been taken, this DRAFT technical paper has been prepared in good faith.
Ασκηση NextGen POS. Ι. Δεληγιάννης, Τμ. Πληροφορικής ΤΕΙ-Θ UNIFIED PROCESS - ΑΝΑΛΥΣΗ2.
Αντικειμενοστρεφής Προγραμματισμός Κλάσεις και άλλα θέματα Απόστολος Ζάρρας * βασισμένα και σε δουλειά του.
Η Σημερινή Εικόνα του Οδηγού Σπουδών Κ. Λαμπρινουδάκης Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων.
Τι θα φέρει το Σύννεφο στη Διαχείριση Δεδομένων: Προκλήσεις και Ευκαιρίες Ελληνικό Συμπόσιο Διαχείρισης Δεδομένων 2010 Ευαγγελία Πιτουρά Τμήμα Πληροφορικής,
Μεθοδολογίες Προγραμματισμού ΙΙ ΣΧΕΔΙΑΣΤΙΚΑ ΠΡΟΤΥΠΑ (2)
Πληροφοριακά Συστήματα και Βάσεις Δεδομένων
Online Optical Probes for Quality Control and Safety Assessment of Olive and Other Edible Oils G. Stavropoulos Demokritos, November 2013.
Εισαγωγικό Φροντηστήριο Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Eργαλεία.
A model for Context-aware Databases. 19/04/20052 What is Context? Ο καθένας ορίζει το context διαφορετικά... “location, identities of nearby people and.
Εισαγωγή στην Compute Unified Device Architecture (CUDA)
Εργαστήριο 2ο SQL - DDL Ιωάννα Συρίμη
ΠΕΡΙΒΑΛΛΟΝΤΙΚΗ ΑΝΑΠΤΥΞΙΑΚΗ ΔΥΤΙΚΗΣ ΘΕΣΣΑΛΙΑΣ Α.Ε. ENVIRONMENTAL DEVELOPMENT AGENCY OF WESTERN THESSALY S.A. Best practices of successful local-regional.
Lesson 14: Around the city JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
ΠΟΛΥΜΟΡΦΙΣΜΟΣ, ΠΡΟΤΥΠΑ, ΚΑΘΙΕΡΩΜΕΝΗ ΒΙΒΛΙΟΘΗΚΗ ΠΡΟΤΥΠΩΝ Polymorphism, Templates, Standard Template Library (STL)
GUI Components and Events JavaMethods An Introduction to Object-Oriented Programming TM.
Emission Inventory in Cyprus
Comenius E.R.G.O Equal Rights Great Opportunities Presentation by the Greek Delegation to Hungary.
1/6/2012 FASTER LOGO FASTER ICT – Financial and Accounting Seminars Targeting European Regions You are expected to prepare a ppt presentation for each.
Visual Studio 2010 Load Testing Γιώργος Καρκαλής Testing Specialist 12/5/2011.
Lesson 18c: At the University JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
Lesson 32a: Trasportation JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
Η Συμμετοχή των Μεταναστών στη Δημόσια Ζωή: Εμπειρίες από την Ελλάδα και την Ευρώπη Immigrant Participation in Public Life: European & Greek experiences.
Lesson 41c: Cooking I JSIS E 111: Elementary Modern Greek Sample of modern Greek alphabet, M. Adiputra,
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής EPL602 Foundations of Web Technologies jQuery Mobile News Site Presented by: Christodoulos Michael Dimitris Stokkos.
ΙΝΚΡΕΤΙΝΕΣ : Ο ρόλος του ενζύμου DPP-4 στον Σακχαρώδη Διαβήτη τύπου 2
OUR CITY ATHENS GODS IN THE MYTH ATHENA ( Latin- Minerva ): The goddess of wisdom and strategy! She helped many heroes in mythology in her own way. Athena.
1 Please include the following information on this slide: Παρακαλώ, συμπεριλάβετε τις παρακάτω πληροφoρίες στη διαφάνεια: Name Giannakodimou Aliki Kourkouta.
Σοφία Τζελέπη, App Inventor ΜΕΡΟΣ B’ Σοφία Τζελέπη,
Γλώσσα περιγραφής υλικού VHDL. Βασική δομή VHDL κώδικα Entity Entity (Δήλωση εισόδων – εξόδων του συστήματος) Architecture Architecture structural (περιγραφή.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Δείκτες και Συμβολοσειρές (Pointers.
© Θέματα Φεβρουαρίου © Θέμα 1ο (30%): Έστω η παρακάτω ακολουθία εντολών που χρησιμοποιείται για την αντιγραφή.
Σύγχρονες Προκλήσεις. Εισαγωγή Οι CMP είναι πια πραγματικότητα – Intel Core 2, Quad, Nehalem – IBM Power5, Power6 – Sun Niagara, Niagara2, Rock –
Transactional Memory.
Ο άνθρωπος.
Ἱστορία ἀρχαία καὶ μεσαιωνικὴ
JULIUS CAESAR Ἰούλιος Καῖσαρ.
Ἱστορία ἀρχαία καὶ μεσαιωνικὴ
Typology of activities and scenarios using SRS, PELE and
Caring for the Geriatric Oncology Patient: Essential Elements to Provide Safe and Effective Care 1.
Cipher Feedback Mode Network Security.
Baggy Bounds checking by Akritidis, Costa, Castro, and Hand
Complements White Box Testing Finds a different class of errors
Principles of Computers 19th Lecture
Μεταγράφημα παρουσίασης:

Transactional Memory

Τα προβλήματα του παράλληλου προγραμματισμού  Εντοπισμός παραλληλισμού – χειροκίνητα (επισκόπηση) – αυτόματα (compiler)  Έκφραση παραλληλισμού – low-level (π.χ. Pthreads, MPI) – high-level (π.χ. OpenMP, Cilk, Intel TBB, Galois, UPC κ.λπ.)  Απεικόνιση – scheduling, creation, termination, etc. – operating system, runtime system  Συγχρονισμός – εύκολος όπως ο coarse-grain – αποδοτικός όπως ο fine-grain – deadlock-free – composable  Απαιτήσεις – κλιμακωσιμότητα – ευκολία προγραμματισμού – υψηλή παραγωγικότητα – ορθότητα – architectural awareness

Transactional Memory (TM)  Memory transaction – μία ατομική και απομονωμένη ακολουθία λειτουργιών μνήμης – εμπνευσμένη από τις δοσοληψίες στις ΒΔ  Atomicity (all or nothing) – στο commit, όλες οι εγγραφές μνήμης αποκτούν επίδραση «με τη μία» – σε περίπτωση abort, καμία από τις εγγραφές δεν έχουν επίδραση  Isolation – κανένα άλλο τμήμα κώδικα δεν μπορεί να δει τις εγγραφές ενός transaction πριν το commit  Consistency (serializability) – τα αποτελέσματα των transactions είναι συνεπή (ίδια με αυτά της σειριακής/σειριοποιημένης εκτέλεσης) – τα transactions φαίνονται ότι κάνουν commit σειριακά – η συγκεκριμένη σειρά ωστόσο δεν είναι εγγυημένη

Προγραμματισμός με ΤΜ  Περιγραφή συγχρονισμού σε υψηλό επίπεδο – ο προγραμματιστής λέει τι, όχι πώς  Το υποκείμενο σύστημα υλοποιεί το συγχρονισμό – εξασφαλίζει atomicity, isolation & consistency

Αμοιβαίος αποκλεισμός vs. TM  Αναμενόμενο κέρδος σε περίπτωση μη-conflict  Επιβράδυνση σε conflicts (R-W ή W-W)

Πλεονεκτήματα ΤΜ  Ευκολία προγραμματισμού – παραπλήσια με αυτή των coarse-grain locks – ο προγραμματιστής δηλώνει, το σύστημα υλοποιεί  Επίδοση παραπλήσια με αυτή των fine-grain locks – εκμεταλλεύεται αυτόματα τον fine-grain ταυτοχρονισμό – δεν υπάρχει tradeoff ανάμεσα στην απόδοση & την ορθότητα  Failure atomicity & recovery – δεν «χάνονται» locks όταν ένα thread αποτυγχάνει – failure recovery = transaction abort + restart  Composability – σύνθεση επιμέρους ατομικών λειτουργιών / software modules σε μία ενιαία ατομική λειτουργία – ασφαλής & κλιμακώσιμη

Παράδειγμα: Java 1.4 HashMap  Map: key → value  not thread-safe

Synchronized HashMap  Η λύση της Java 1.4: synchronized layer – ρητό, coarse-grain locking από τον προγραμματιστή  Coarse-grain synchronized HashMap – Pros: thread-safe, εύκολο στον προγραμματισμό – Cons: περιορίζει τον (όποιον) ταυτοχρονισμό, χαμηλή κλιμακωσιμότητα μόνο ένα thread μπορεί να επεξεργάζεται το HashMap κάθε φορά

Concurrent HashMap (Java 5)  Fine-grain synchronized concurrent HashMap – Pros: fine-grain παραλληλισμός, ταυτόχρονες αναγνώσεις – Cons: περίπλοκο & επιρρεπές σε λάθη

Επίδοση: Locks

Transactional HashMap  Απλά εσωκλείουμε τη λειτουργία σε ένα atomic block – το σύστημα εξασφαλίζει την ατομικότητα  Transactional HashMap – Pros: thread-safe, εύκολο στον προγραμματισμό – Καλή επίδοση & κλιμακωσιμότητα? Εξαρτάται από την υλοποίηση και το σενάριο εκτέλεσης, αλλά τυπικά ναι

Επίδοση: Locks vs Transactions

Composability: Locks  Η σύνθεση lock-based κώδικα είναι δύσκολη – Σκοπός: απόκρυψη ενδιάμεσης κατάστασης κατά τη μεταφορά – Χρειαζόμαστε καθολική πολιτική για το κλείδωμα δεν μπορεί πάντα να αποφασιστεί a priori  Fine-grain locking: μπορεί να οδηγήσει σε deadlocks

Composability: Locks  Η σύνθεση lock-based κώδικα είναι δύσκολη – Σκοπός: απόκρυψη ενδιάμεσης κατάστασης κατά τη μεταφορά – Χρειαζόμαστε καθολική πολιτική για το κλείδωμα δεν μπορεί πάντα να αποφασιστεί a priori  Fine-grain locking: μπορεί να οδηγήσει σε deadlocks  Coarse-grain locking: μηδενικός ταυτοχρονισμός

Composability: Transactions  Οι ατομικές λειτουργίες συντίθενται ομαλά, χωρίς να περιορίζεται ο ταυτοχρονισμός – ο προγραμματιστής δηλώνει την καθολική πρόθεση (ατομική μεταφορά) χωρίς να χρειάζεται να ξέρει κάποια καθολική πολιτική κλειδώματος  Το σύστημα διαχειρίζεται τον ταυτοχρονισμό με τον καλύτερο δυνατό τρόπο – σειριοποίηση για transfer(A, B, $100) & transfer(B, A, $200) – ταυτοχρονισμός για transfer(A, B, $100) & transfer(C, D, $200)

Υλοποίηση ΤΜ  Τα ΤΜ συστήματα πρέπει να παρέχουν ατομικότητα και απομόνωση – χωρίς να θυσιάζεται ο ταυτοχρονισμός  Βασικές απαιτήσεις – Data versioning (ή version management) – Conflict detection – Conflict resolution  Επιλογές – Hardware transactional memory (HTM) – Software transactional memory (STM) – Hybrid transactional memory Hardware accelerated STMs Dual-mode systems

Data Versioning  Διαχείριση uncommitted (νέων) και committed (παλιών) εκδόσεων δεδομένων για ταυτόχρονα transactions  Eager versioning (undo-log based) – απευθείας ενημέρωση μνήμης – διατήρηση undo πληροφορίας σε log (+) Γρήγορο commit (-) Αργό abort, ζητήματα fault tolerance  Lazy versioning (write-buffer based) – buffering νέων δεδομένων σε write-buffer μέχρι το commit – πραγματική ενημέρωση μνήμης κατά το commit (+) Γρήγορο abort, fault tolerant (-) Αργά commits

Eager versioning

Lazy versioning

Conflict detection  Ανίχνευση και διαχείριση conflicts ανάμεσα σε transactions – Read-Write και (συχνά) Write-Write conflicts – Πρέπει να παρακολουθούνται το read-set & write-set ενός transaction Read-set: οι διευθύνσεις που διαβάζονται εντός του transaction Write-set: οι διευθύνσεις που γράφονται εντός του transaction  Pessimistic (eager) detection – Έλεγχος για conflicts σε κάθε load ή store SW: SW barriers με locks και/ή version numbers HW: έλεγχος μέσω του coherence protocol – Χρήση contention manager για να αποφασίσει να κάνει stall ή abort διαφορετικές πολιτικές ανάθεσης προτεραιότητας στόχος: to make the common case fast

Pessimistic detection 21 Case 1Case 2Case 3Case 4 X0X1 rd A wr B check wr C check commit Success X0X1 wr A rd A check commit Early Detect stall X0X1 rd A wr A check commit Abort restart rd A check X0X1 rd A check No progress wr A rd A wr A check restart rd A check wr A restart rd A wr A check restart TIME

Conflict detection  Optimistic (lazy) detection – Τα conflicts ανιχνεύονται όταν ένα transaction επιχειρήσει να κάνει commit SW: validate τα write/read-set με χρήση locks ή version numbers HW: validate το write-set χρησιμοποιώντας το coherence protocol – Σε περίπτωση conflict, προτεραιότητα στο committing transaction τα υπόλοιπα transactions μπορούν να κάνουν abort αργότερα σε περίπτωση conflict ανάμεσα σε committing transactions, την προτεραιότητα την αποφασίζει ο contention manager  Σημείωση: optimistic & pessimistic σχήματα ταυτόχρονα είναι εφικτά – Πολλά STMs είναι optimistic στα reads και pessimistic στα writes

Optimistic detection 23 Case 1Case 2Case 3Case 4 X0X1 rd A wr B wr C commit Success X0X1 wr A rd A commit Abort restart X0X1 rd A wr A commit Success X0X1 rd A Forward progress wr A rd A wr A check rd A check commit check commit check restart rd A wr A commit check TIME commit check

Conflict Detection Tradeoffs  Pessimistic CD (+) ανιχνεύει τα conflicts νωρίς αναιρεί λιγότερη δουλειά, μετατρέπει μερικά aborts σε stalls (-) δεν εγγυάται την πρόοδο προς τα εμπρός, πολλά aborts σε κάποιες περιπτώσεις (-) locking issues (SW), fine-grain communication (HW)  Optimistic CD (+) εγγυάται την πρόοδο προς τα εμπρός (+) λιγότερα εν δυνάμει conflicts, λιγότερο locking (SW), bulk communication (HW) (-) ανιχνεύει τα conflicts αργά, προβλήματα δικαιοσύνης

TM Implementation Space (παραδείγματα)  ΗΤΜ συστήματα – Lazy + optimistic: Stanford TCC – Lazy + pessimistic: MIT LTM, Intel VTM, Sun’s Rock – Eager + pessimistic: Wisconsin LogTM  STM συστήματα – Lazy + optimistic (rd/wr): Sun TL2 – Lazy + optimistic (rd) / pessimistic (wr): MS OSTM – Eager + optimistic (rd) / pessimistic (wr): Intel STM – Eager + pessimistic (rd/wr): Intel STM

Sun Rock’s HTM  «Best-effort» HTM – μικρές προσθήκες σε υλικό – η εκτέλεση των transactions περιορίζεται από δομές του υλικού – μη-εγγυημένη η πρόοδος προς τα εμπρός  2 εντολές – chkpt failPC – – commit  Είτε η κρίσιμη περιοχή εκτελείται ατομικά, είτε κάνει abort και μεταβαίνει στο failPC  Lazy VM  Eager CD

Παράδειγμα atomic { a++; c = a + b; } retry: chkpt retry// Naïve repeated retry r0 = a// Read a into register r0 = r0 + 1// Arithmetic a = r0// Write new value of a r1 = a// Read new value of a r2 = b// Read b r3 = r1 + r2// Arithmetic c = r3// Write c commit// Commit if appears atomic

Παράδειγμα retry: chkpt retry// Checkpoint registers r0 = a// Add a to read-set r0 = r0 + 1// a = r0// Add a to write-set // Buffer old/new values of a r1 = a// Read new value of a r2 = b// Add b to read-set r3 = r1 + r2// c = r3// Add c to write-set // Buffer old/new values of c commit// Commit if appears atomic Αναπαράσταση read/write sets?Cache bits & Writebuffer addresses Buffer old/new values?Register chkpt & Writebuffer values Conflict detection?Cache Coherence Protocol

Παράδειγμα Αναπαράσταση read/write sets Read: R-bit in (L1) cache Write: writebuffer addresses Buffer old/new values Checkpoint old register values Old memory values in L1 cache New memory values in writebuffer Conflict detection Cache Coherence Protocol Μικρές προσθήκες σε υλικό! r0-- r1-- r2-- r3-- r010 r120 r230 r chkptregisters writebuffer addrdata a42 ??? c12 ??? ? addr data -- read-set CACHE CORE 0

Παράδειγμα r0-- r1-- r2-- r3-- r010 r120 r230 r chkptregisters writebuffer addrdata a42 ??? c12 ??? ? addr data -- read-set CACHE CORE 0 retry: chkpt retry r0 = a r0 = r0 + 1 a = r0 r1 = a r2 = b r3 = r1 + r2 c = r3 commit ΜΩΒ: read/write sets KOKKINO: buffer old/new values ΠΡΑΣΙΝΟ: conflict detection

Παράδειγμα r010 r120 r230 r340 r010 r120 r230 r chkptregisters writebuffer addrdata a42 ??? c12 ??? ? addr data -- read-set CACHE CORE 0 retry: chkpt retry r0 = a r0 = r0 + 1 a = r0 r1 = a r2 = b r3 = r1 + r2 c = r3 commit ΜΩΒ: read/write sets KOKKINO: buffer old/new values ΠΡΑΣΙΝΟ: conflict detection

Παράδειγμα r010 r120 r230 r340 r042 r120 r230 r chkptregisters writebuffer addrdata a42 ??? c12 ??? ? addr data R -- read-set CACHE CORE 0 retry: chkpt retry r0 = a r0 = r0 + 1 a = r0 r1 = a r2 = b r3 = r1 + r2 c = r3 commit ΜΩΒ: read/write sets KOKKINO: buffer old/new values ΠΡΑΣΙΝΟ: conflict detection ---

Παράδειγμα r010 r120 r230 r340 r043 r120 r230 r chkptregisters writebuffer addrdata a42 ??? c12 ??? ? addr data R -- read-set CACHE CORE 0 retry: chkpt retry r0 = a r0 = r0 + 1 a = r0 r1 = a r2 = b r3 = r1 + r2 c = r3 commit ΜΩΒ: read/write sets KOKKINO: buffer old/new values ΠΡΑΣΙΝΟ: conflict detection ---

Παράδειγμα r010 r120 r230 r340 r043 r120 r230 r a chkptregisters writebuffer addrdata a42 ??? c12 ??? ? addr data R -- read-set CACHE CORE 0 retry: chkpt retry r0 = a r0 = r0 + 1 a = r0 r1 = a r2 = b r3 = r1 + r2 c = r3 commit ΜΩΒ: read/write sets KOKKINO: buffer old/new values ΠΡΑΣΙΝΟ: conflict detection old/new values of a

Παράδειγμα r010 r120 r230 r340 r043 r143 r230 r a chkptregisters writebuffer addrdata a42 ??? c12 ??? ? addr data R -- read-set CACHE CORE 0 retry: chkpt retry r0 = a r0 = r0 + 1 a = r0 r1 = a r2 = b r3 = r1 + r2 c = r3 commit ΜΩΒ: read/write sets KOKKINO: buffer old/new values ΠΡΑΣΙΝΟ: conflict detection get2read(core0,b)data(b,26)

Παράδειγμα r010 r120 r230 r340 r043 r143 r226 r a chkptregisters writebuffer addrdata a42 b26 c12 ??? ? addr data R R -- read-set CACHE CORE 0 retry: chkpt retry r0 = a r0 = r0 + 1 a = r0 r1 = a r2 = b r3 = r1 + r2 c = r3 commit ΜΩΒ: read/write sets KOKKINO: buffer old/new values ΠΡΑΣΙΝΟ: conflict detection

Παράδειγμα r010 r120 r230 r340 r043 r143 r226 r a chkptregisters writebuffer addrdata a42 b26 c12 ??? ? addr data R R -- read-set CACHE CORE 0 retry: chkpt retry r0 = a r0 = r0 + 1 a = r0 r1 = a r2 = b r3 = r1 + r2 c = r3 commit ΜΩΒ: read/write sets KOKKINO: buffer old/new values ΠΡΑΣΙΝΟ: conflict detection

Παράδειγμα r010 r120 r230 r340 r043 r143 r226 r c a chkptregisters writebuffer addrdata a42 b26 c12 ??? ? addr data R R -- read-set CACHE CORE 0 retry: chkpt retry r0 = a r0 = r0 + 1 a = r0 r1 = a r2 = b r3 = r1 + r2 c = r3 commit ΜΩΒ: read/write sets KOKKINO: buffer old/new values ΠΡΑΣΙΝΟ: conflict detection

Παράδειγμα r010 r120 r230 r340 r043 r143 r226 r chkptregisters writebuffer addrdata a43 b26 c69 ??? ? addr data -- read-set CACHE CORE 0 retry: chkpt retry r0 = a r0 = r0 + 1 a = r0 r1 = a r2 = b r3 = r1 + r2 c = r3 commit ΜΩΒ: read/write sets KOKKINO: buffer old/new values ΠΡΑΣΙΝΟ: conflict detection

Ανίχνευση διένεξης κατά την αίτηση συνάφειας του πρωτοκόλλου r010 r120 r230 r340 r043 r143 r226 r a chkptregisters writebuffer addrdata a42 b26 c12 ??? ? addr data R R -- read-set CACHE CORE 0 retry: chkpt retry r0 = a r0 = r0 + 1 a = r0 r1 = a r2 = b r3 = r1 + r2 get2write(other-core,a) c = r3 commit Η εξωτερική αίτηση για εγγραφή ελέγχει τον writebuffer & read- set bits Η εξωτερική αίτηση για ανάγνωση ελέγχει τον writebuffer Conflict! Abort!!

Ανίχνευση διένεξης κατά την αίτηση συνάφειας του πρωτοκόλλου r010 r120 r230 r340 r010 r120 r230 r chkptregisters writebuffer addrdata a42 b26 c12 ??? ? addr data -- read-set CACHE CORE 0 retry: chkpt retry r0 = a r0 = r0 + 1 a = r0 r1 = a r2 = b r3 = r1 + r2 c = r3 commit Abort done Resume at retry ---

credits for slides:  C. Kozyrakis (Stanford) – ACACES summer school 2008  D. Wood (Wisconsin) – ACACES summer school 2009

Βιβλιογραφία

HTM Systems  [Hammond04] L. Hammond, B. Carlstrom, V. Wong, M. Chen, C. Kozyrakis and K. Olukotun. “Transactional Coherence and Consistency: Simplifying Parallel Hardware and Software”. IEEE Micro, Special Issue on Top Picks from Architecture Conferences, vol. 24, no. 6, November/December  [Herlihy93] M. Herlihy and E. Moss. “Transactional memory: Architectural support for lock-free data structures”. International Symposium on Computer Architecture (ISCA ‘93).  [Moir08] M. Moir, K. Moore and D. Nussbaum. “The Adaptive Transactional Memory Test Platform: A Tool for Experimenting with Transactional Code for Rock”. 3rd ACM SIGPLAN Workshop on Transactional Computing (TRANSACT ’08).  [Yen07] L. Yen, J. Bobba, M. Marty, K. Moore, H. Volos, M. Hill, M. Swift and D. Wood. “LogTM-SE: Decoupling Hardware Transactional Memory from Caches”. 13th International Symposium on High Performance Computer Architecture (HPCA’07).  [ASF] AMD Corporation. “Advanced Synchronization Facility – Proposed Architectural Specification”. Mar Revision 2.1.  [Dice08] D. Dice, M. Herlihy, D. Lea, Y. Lev, V. Luchangco, W. Mesard, M. Moir, K. Moore and D. Nussbaum. “Applications of the Adaptive Transactional Memory Test Platform”. 3rd ACM SIGPLAN Workshop on Transactional Computing (TRANSACT ’08).  [Dice09] D. Dice, Y. Lev, M. Moir and D. Nussbaum. “Early experience with a commercial hardware transactional memory implementation”. 14th international conference on Architectural support for programming languages and operating systems (ASPLOS ’09).

STM systems  [Dice06] D. Dice, O. Shalev and N. Shavit. “Transactional locking II”. 20th International Symposium on Distributed Computing (DISC ‘06). Stockholm, Sweeden, Sept  [Herlihy06] M. Herlihy, V. Luchangco and M. Moir. “A flexible framework for implementing software transactional memory”. 21st Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA ’06). pp. 253–262. ACM Press,  [Marathe06] V. Marathe, M. Spear, C. Heriot, A. Acharya, D. Eisenstat, W. Scherer III and M. Scott. “Lowering the overhead of software transactional memory”. First ACM SIGPLAN Workshop on Transactional Computing (TRANSACT ’06). June  [Ni08] Y. Ni, A. Welc, A. Adl-Tabatabai, M. Bach, S. Berkowits, J. Cownie, R. Geva, S. Kozhukow, R. Narayanaswamy, J. Olivier, S. Preis, B. Saha, A. Tal and X. Tian. “Design and Implementation of Transactional Constructs for C/C++”. 23rd Annual Conference on Object-Oriented Programming Systems Languages and Applications (OOPSLA ’08). pp. 195–212, ACM Press,  [Riegel06] T. Riegel, P. Felber and C. Fetzer. “A lazy snapshot algorithm with eager validation”. LNCS, vol. 4167, pp. 284–298. Springer, Heidelberg (2006).  [Saha06a] B. Saha, A. Adl-Tabatabai, R. Hudson, C. Minh and B. Hertzberg. “McRT-STM: a high performance software transactional memory system for a multicore runtime”. 11th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP ’06). pp. 187–197. ACM Press, New York,  [Baek07] W. Baek, C. Cao Minh, M. Trautmann, C. Kozyrakis and K. Olukotun. “The OpenTM Transactional Application Programming Interface”. 16th International Conference on Parallel Architecture and Compilation Techniques (PACT ’07). pages 376–387, Washington, DC, USA, IEEE Computer Society.

Hybrid Systems  [Damron06] P. Damron, A. Fedorova, Y. Lev, V. Luchangco, M. Moir and D. Nussbaum. “Hybrid transactional memory”. 12th International conference on Architectural Support for Programming Languages and Operating System (ASPLOS ’06).  [Diestelhorst08] S. Diestelhorst, M. Hohmuth. “Hardware acceleration for lock-free data structures and software transactional memory”. In the proceedings of the Workshop on Exploiting Parallelism with Transactional Memory and other Hardware Assisted Methods (EPHAM ‘08), April Boston, MA  [Minh07] C. Minh, M. Trautmann, J. Chung, A. McDonald, N. Bronson, J. Casper, C. Kozyrakis and K. Olukotun. “An Effective Hybrid Transactional Memory System with Strong Isolation Guarantees”. 34th Annual International Symposium on Computer Architecture (ISCA ’07). San Diego, California, 9-13 June  [Saha06b] B. Saha, A.-R. Adl-Tabatabai and Q. Jacobson. “Architectural Support for Software Transactional Memory”. In MICRO 2006.

Applications  [Kang09] S. Kang and David Bader. “An Efficient Transactional Memory Algorithm for Computing Minimum Spanning Forest of Sparse Graphs”. 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP ’09).  [Nikas09] K. Nikas, N. Anastopoulos, G. Goumas and N. Koziris. “Employing Transactional Memory and Helper Threads to Speedup Dijkstra's Algorithm.” International Conference on Parallel Processing (ICPP ‘09). Vienna, Austria.  [Scott07] M. Scott, M. Spear, L. Dalessandro and V. Marathe. “Delaunay Triangulation with Transactions and Barriers”. 10th International Symposium on Workload Characterization (IISWC ’07).  [Watson07] I. Watson, C. Kirkham and Mikel Lujan. “A Study of a Transactional Parallel Routing Algorithm”. 16th International Conference on Parallel Architecture and Compilation Techniques (PACT ’07).