software transactional memory - disco › courses › fs11 › seminar › slides › ... ·...
TRANSCRIPT
![Page 1: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/1.jpg)
Software transactional memory
Transactional locking II (Dice et. al, DISC'06)
Time-based STM (Felber et. al, TPDS'08)
Ioana Giurgiu
Mentor: Johannes Schneider
March 16th, 2011
Ioana Giurgiu Software transactional memory
![Page 2: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/2.jpg)
Motivation
I Multiprocessor systemsI Speed up time-sharing
applicationsI How to parallelize easily and
e�ciently?
I Concurrent access to sharedmemory
Ioana Giurgiu Software transactional memory
![Page 3: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/3.jpg)
Ioana Giurgiu Software transactional memory
![Page 4: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/4.jpg)
Locking
I Coarse-grained or �ne-grained
I Di�cult to program when # oflocks is large
I Problems: deadlocks, priorityinversions, convoying
I Race conditions
I Other solutions?
Ioana Giurgiu Software transactional memory
![Page 5: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/5.jpg)
Transactional memory (Herlihy et. al, ISCA'93)
I Architectural support for lock-free data structures
I Based on LL/SC
I Changes cachecoherence protocols
I InstructionsI LT, LTX, STI COMMIT,
ABORTI VALIDATE
I NOT HERE YET
Ioana Giurgiu Software transactional memory
![Page 6: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/6.jpg)
Software transactional memory (Shavit et. al, PODC'95)
Software method to support �exible transactionalprogramming of synchronization operations
I Transactional model
I Transaction = atomic sequence of stepsI Protect access to shared objects
I Only for static transactions
I Easier to program
I Higher performance than locks?
Ioana Giurgiu Software transactional memory
![Page 7: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/7.jpg)
Transactional locking II Dice et. al, DISC'06
"If we implemented �ne-grained locking with the samesimplicity of coarse-grained, we would never think of building atransactional memory"
I Fits any memory lifecycle (GC, malloc/free)
I Safe → consistent memory states
I PerformanceI 10x faster than single locks on RBTsI Better than all lock-based & non-blocking STMs
Ioana Giurgiu Software transactional memory
![Page 8: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/8.jpg)
Transactional locking II (cont.)
1. Use commit-time locking instead of encounter-time locking
I Encounter-time locking (Ennals, Saha): quick reads of freshlywritten values in memory by the read-only transaction
I Commit-time locking: memory locked only during the commitphase
I Under high loads, better performanceI Works with malloc/free
Ioana Giurgiu Software transactional memory
![Page 9: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/9.jpg)
Transactional locking II (cont.)
2. Use global version clock for validation
I Why a clock?I Lock STMs � inconsistent
statesI Need validation
periodically
I Shared global version clockI Incremented by write
transactionsI Read by all transactionsI State always consistent
Ioana Giurgiu Software transactional memory
![Page 10: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/10.jpg)
Transactional locking II (cont.)
3. Locks to shared data?
I PO (per object): lock per shared objectI Insertion of lock �elds
I PS (per stripe): array of locks per memory stripeI Each transactable location is mapped to a stripeI No changes to data structure
Ioana Giurgiu Software transactional memory
![Page 11: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/11.jpg)
Transactional locking II (cont.)
Read-only transactions
I RV ← Clock
I Speculative executionI Write lock is freeI If lock value ≤ RV → commitI If lock value > RV → abort
Ioana Giurgiu Software transactional memory
![Page 12: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/12.jpg)
Transactional locking II (cont.)
Write transactions
I RV ← Clock
I Speculative executionI Write lock is freeI Lock value ≤ RVI Maintain read/write set
I Lock write set
Ioana Giurgiu Software transactional memory
![Page 13: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/13.jpg)
Transactional locking II (cont.)
Write transactions
I RV ← Clock
I Speculative executionI Write lock is freeI Lock value ≤ RVI Maintain read/write set
I Lock write set
I WV ← increment(Clock)
I Validate each lock value ≤ RV
Ioana Giurgiu Software transactional memory
![Page 14: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/14.jpg)
Transactional locking II (cont.)
Write transactions
I RV ← Clock
I Speculative executionI Write lock is freeI Lock value ≤ RVI Maintain read/write set
I Lock write set
I WV ← increment(Clock)
I Validate each lock value ≤ RV
I Release locks with value ← WV
Ioana Giurgiu Software transactional memory
![Page 15: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/15.jpg)
Transactional locking II (cont.)
Small RBT: 30% put, 30% delete, 40% get/16-proc SunV890
Ioana Giurgiu Software transactional memory
![Page 16: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/16.jpg)
Transactional locking II (cont.)
Large RBT: 5% put, 5% delete, 90% get/16-proc SunV890
Ioana Giurgiu Software transactional memory
![Page 17: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/17.jpg)
Transactional locking II (cont.)
Speedup � Large RBT � 5% puts, 5% deletes, 90% gets
Ioana Giurgiu Software transactional memory
![Page 18: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/18.jpg)
Transactional locking II (cont.)
Conclusions
I STM scalability is comparable with hand-crafted, butoverheads are much higher
I Read set and validation cost a�ect performance
I No meltdown under contention
I Seamless operation with malloc/free
Ioana Giurgiu Software transactional memory
![Page 19: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/19.jpg)
LSA-STM Felber et. al, TPDS'08
Current trade-o� between consistency and performance
Ioana Giurgiu Software transactional memory
![Page 20: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/20.jpg)
LSA-STM (cont.)
Lazy snapshot algorithm speeds up transactions for large datasets, while reducing the overhead of incremental validation
How? Time-based algorithms allow to keep multiple versionsof objects for RO transactions
Ioana Giurgiu Software transactional memory
![Page 21: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/21.jpg)
LSA-STM (cont.)
I Global clock CT counts # of commits
I STM objects (A,B,C) have multiple versionsI Each version has a validity range Rv relative to CTI Most recent version has upper bound ∞
Ioana Giurgiu Software transactional memory
![Page 22: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/22.jpg)
LSA-STM (cont.)
I Every transaction maintains a snapshot with a validity rangeRT
I Snapshot =⋂
of the accessed versions' validity rangeI Initialized to [ST , ∞]I If snapshot == nonempty → commit
Ioana Giurgiu Software transactional memory
![Page 23: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/23.jpg)
LSA-STM (cont.)
I When a transaction T reads an objectI The version's validity range must
⋂T's snapshot
I Snapshot bounds are adjusted to the⋂
I Validity range ends at time of the read
Ioana Giurgiu Software transactional memory
![Page 24: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/24.jpg)
LSA-STM (cont.)
I If T's snapshot⋂
with the latest version's validity rangeI No need to update the snapshot
Ioana Giurgiu Software transactional memory
![Page 25: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/25.jpg)
LSA-STM (cont.)
I If T's snapshot does not⋂
with the latest version's validityrange
I Extend snapshot (may fail)
I Read-only transactions can use old versions
Ioana Giurgiu Software transactional memory
![Page 26: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/26.jpg)
LSA-STM (cont.)
I Extension tries to increase the upper bound of the snapshotI Check if all read versions are validI If yes, snapshot's upper bound = CT (now)
Ioana Giurgiu Software transactional memory
![Page 27: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/27.jpg)
LSA-STM (cont.)
I Extension may increase the lower bound of the snapshotI = largest lower bound among the validity ranges of accessed
versions
Ioana Giurgiu Software transactional memory
![Page 28: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/28.jpg)
LSA-STM (cont.)
I Read-only transactions can commit if snapshot is not ∅I No need to extend range to CT
Ioana Giurgiu Software transactional memory
![Page 29: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/29.jpg)
LSA-STM (cont.)
I Update transactions create new versions of modi�ed objectswhen commiting at CT
I Validity range of new objects starts at CT
Ioana Giurgiu Software transactional memory
![Page 30: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/30.jpg)
LSA-STM (cont.)
I Upon commit, an update transaction tries to acquire a new,unique commit timestamp at CT
I Transaction can commit i� the snapshot can be extended toCT - 1
Ioana Giurgiu Software transactional memory
![Page 31: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/31.jpg)
LSA-STM (cont.)
How to program?
Ioana Giurgiu Software transactional memory
![Page 32: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/32.jpg)
LSA-STM (cont.)
How to program?
Ioana Giurgiu Software transactional memory
![Page 33: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/33.jpg)
LSA-STM (cont.)
Performance evaluation
I Java implementation
I Sun Fire T2000 8 core UltraSparc T1 processor (8-coreNiagara)
I SXM: visible reads
I ASTM: invisible reads, incremental validation
I LSA: time-based invisible reads
Ioana Giurgiu Software transactional memory
![Page 34: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/34.jpg)
LSA-STM (cont.)
Linked list: 256 elements
Ioana Giurgiu Software transactional memory
![Page 35: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/35.jpg)
LSA-STM (cont.)
RBT: 65536 elements
Ioana Giurgiu Software transactional memory
![Page 36: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/36.jpg)
LSA-STM (cont.)
Conclusions
I High performance and consistency
I Obstruction-free implementation in JavaI Weakest guarantee for a systemI At least one thread makes progress
Ioana Giurgiu Software transactional memory
![Page 37: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/37.jpg)
Multiplayer gaming
Ioana Giurgiu Software transactional memory
![Page 38: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/38.jpg)
Multiplayer gaming (cont.)
Parallelization of SynQuake (Lupei et. al, Eurosys'10)
Why? Scale the game server
I SynQuakeI Extracts data structures and features of Q3I Driven with synthetic workload (game actions, hot-spot
scenarios)
I libTM (Lupei et al., Interact'09)
I C/C++ support
Ioana Giurgiu Software transactional memory
![Page 39: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/39.jpg)
Multiplayer gaming (cont.)
Areanode tree
I Binary space partitioning tree (each node = speci�c mapregion)
I E�cient searching for all entities that a player interacts withI By recursively dividing the map into submaps (median on X
and Y)
Ioana Giurgiu Software transactional memory
![Page 40: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/40.jpg)
Multiplayer gaming (cont.)
I 8 cores → 2 Xeon Quad-Core @ 3GHz
I 600 to 2000 players
I 1000 server frames on a 1024 x 1024 map
I areanode tree depth = 8
Ioana Giurgiu Software transactional memory
![Page 41: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/41.jpg)
Multiplayer gaming (cont.)
Default setting: 4 quests with low/medium/high contentionoverload
Ioana Giurgiu Software transactional memory
![Page 42: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/42.jpg)
Multiplayer gaming (cont.)
Scalability vs. processing time
Ioana Giurgiu Software transactional memory
![Page 43: Software transactional memory - DISCO › courses › fs11 › seminar › slides › ... · 2017-06-28 · Software transactional memory ransactionalT locking II (Dice et. al, DISC'06)](https://reader035.vdocuments.mx/reader035/viewer/2022081406/5f1225d69356b0600e582f28/html5/thumbnails/43.jpg)
Conclusions
I STMs are a viable alternative to locks
I Di�erent �avors: TL2, LSA
I SynQuake
I Easier to program than locks
I Better performance for higher degree of concurrency
I Higher overheads
I Integration with existing languages
I Support in hardware...?
Ioana Giurgiu Software transactional memory