Transactional Memory (TM)

Werbung
M. Thaler, TG208, [email protected]
www.zhaw.ch/~tham
MPC
ZHAW, MPC FS15, M. Thaler
Transactional Memory
Mai 16
1
• Siehe [Herlihy]
1
Um was geht es?
• Locks sind schwierig zu handhaben
- serialisierte Ausfürung
- Deadlocks
• atomare Promitiven wie CAS
- arbeiten mit nur einem (zwei) Datenwerten
komplexe Algorithmen
• Shared Objects / gemeinsame Repositorien
- müssen für alle Zugriffe und Updates konsistent gehalten
werden
- aufwendiger Design
MPC
ZHAW, MPC FS15, M. Thaler
Probleme mit Synchronisation
Mai 16
2
2
Transactional Memory (TM)
Einfach für den Programmierer
• definiert eine atomare Region
atomic {
Daten lesen/schreiben
}
• zusammensetzbar (composable)
MPC
ZHAW, MPC FS15, M. Thaler
atomic {
...
}
atomic {
Daten lesen/schreiben
}
• TM kümmer sich um
- Performance und Progress/Korrektheit (keine Deadlocks)
Mai 16
3
3
... Transactional Memory
Was ist eine Transaktion?
• Atomicity
- Transaktion wird entweder ganz oder gar nicht ausgeführt
- bei Abbruch keine Seiteneffekte
• Consistency
- alle Objekte vor und nach Transaktion in gültigem Zustand
• Isolation
- eine Transaktion kann nicht auf einen Zwischenzustand einer
anderen parallel ausgeführten Transaktion zugreifen
MPC
ZHAW, MPC FS15, M. Thaler
3 Eigenschaften: ACI
Mai 16
4
• Achtung Datenbanken: ACID
- D: Durability
4
... Transactional Memory
Serialisierbar
• Transaktionen erscheinen für alle beteiligten Threads sequentiell
und in der gleichen Reihenfolge
• ähnlich wie Linearisierung, aber "coarse-grain"
- Kode-Blöcke mit Zugriffen auf verschiedene Objekte möglich
- Linearisierung: nur Methode
• mehrere Transaktionen können parallel ausgeführt werden,
wenn das Speicherzugriffsmuster das zulässt
(keine gleichzeitigen Zugriffe auf die gleichen Datenwerte)
MPC
ZHAW, MPC FS15, M. Thaler
Parallele Ausführung
Mai 16
5
5
Programmieren mit TM
Deklarative Synchronisation
• der Programmierer sagt was, aber nicht wie
• keine explizite Deklaration oder Verwaltung von Locks
Das System implementiert die Synchronisation
MPC
ZHAW, MPC FS15, M. Thaler
• typischerweise optimistisch bzw. spekulativ
- atomare Region wird mit Hoffung ausgeführt, dass kein
Konflikt auftritt
• Vezögerungen nur bei echten Konflikten: R-W und W-W
deposit(accnt, amnt) {
lock(accnt);
accnt += amnt;
unlock(accnt);
}
deposit(accnt, amnt) {
atomic {
accnt += amnt;
}
}
Mai 16
6
6
TM und Synchronized
Java "synchronized"
Java arbeitet mit Locks
Lock auf Code Block oder Methode
serialisiert u.U. Ausführung
atomar nur zu anderen Methoden/Code Blöcken,
die gleiches Lock verwenden
• Deadlock möglich bei verschachtelten "synchronized"
Transactional Memory
• atomar zu allen anderen atomaren Regionen
• kein Deadlock bei verschachtelten "atomics"
MPC
ZHAW, MPC FS15, M. Thaler
•
•
•
•
Mai 16
7
7
Implementationen
Software Transactional Memory STM
• reine Softwarelösungen
• eher langsam
Hardware Transactional Memory HTM
• Hardwarelösung
Aktives Forschungsgebiet
MPC
ZHAW, MPC FS15, M. Thaler
Kombination STM/HTM
Mai 16
8
8
Vorteile von TM
Einfach zu nutzender Synch.-Mechanismus
• so einfach wie coarse-grain Locks
• Programmier deklariert, das System implementiert
Oft so schnell wie fine-grain Locks
Failure recovery
MPC
ZHAW, MPC FS15, M. Thaler
• keine verlorenen Locks, wenn Thread fehlschlägt
• Recovery: Transaktionsabbruch und Neustart
Composability
• Software-Module mit Transaktionen können kombiniert werden
Produktivität
• sehr viel einfacher als fine-grain Locks
• Pareto Prinzip: 10% Aufwand für 90% Nutzen von f-g Locks
Mai 16
9
9
Nachteile von TM
Performance
MPC
ZHAW, MPC FS15, M. Thaler
• Hardware Support notwendig
- in Bearbeitung
• abhängig von
- Zugriffshäufigkeit
- grösse des atomaren Bereichs
- etc.
Mai 16
10
10
Herunterladen