car-stm: scheduling-based collision avoidance and reduction for software transactional memory
DESCRIPTION
CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory. Shlomi Dolev, Danny Hendler and Adi Suissa PODC 2008. CAR-STM: rationale. “transaction ignorant” thread scheduling problematic TM scheduler handles transactional threads This permits: - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/1.jpg)
CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory
Shlomi Dolev, Danny Hendler and Adi SuissaPODC 2008
![Page 2: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/2.jpg)
CAR-STM: rationale
“transaction ignorant” thread scheduling problematic
TM scheduler handles transactional threads
This permits:
o Serializing contention management
o Proactive collision avoidance
![Page 3: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/3.jpg)
“Conventional” STM system high-level structure
OS-scheduler-controlledapplication threads
Contention
Manager
ContentionDetection
arbitrate
proceed
Abort/retry/Wait
TM System
![Page 4: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/4.jpg)
CAR-STM's distinctive features
Proactive Collision avoidance
Proactively assign transaction thread to core with “most conflicting’’ transactions based on application-provided information
Serializing contention management
Serialize the execution of colliding transactions
![Page 5: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/5.jpg)
Relying on (current) OS scheduling is problematic!
1) Introduces pseudo-parallelism
2) Hurts TM performance stability/predictability
3) Does not allow proactive collision avoidance and serializing CM.
OS scheduling of transaction threads:
![Page 6: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/6.jpg)
CAR-STM high-level architecture
Transaction queue #1
TQ thread
TQ thread
Transaction thread
T-Info
Core #1
Serializing
contention mgr.
Dispatcher
Collision
Avoider
Core #k
Transaction queue #k
![Page 7: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/7.jpg)
TQ-Entry Structure
Transaction queue #1
TQ thread
TQ thread
Transaction thread
T-Info
Core #1
Serializing
contention mgr.
Dispatcher
Collision
Avoider
Core #k
Transaction queue #k
wrapper method
Transaction data
T-Info
Trans. thread
Lock, condition var
![Page 8: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/8.jpg)
Transaction dispatching processEnque transaction in most-conflicting queue. Put thread to sleep, notify TQ thread.
4
4
![Page 9: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/9.jpg)
Transaction execution
TQ thread
Core #i
Transaction queue #i
wrapper method
Transaction data
T-Info
Trans. threadLock, condition var
![Page 10: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/10.jpg)
Dispatcher / TQ-thread synchronization
TQ thread
Core #i
Transaction queue #i
Dispatcher
![Page 11: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/11.jpg)
Serializing Contention Managers
When two transactions collide, fail the newer transaction and move it to the TQ of the older
Fast elimination of live-lock scenarios Two SCMs implemented
o Basic (BSCM) – move failed transaction to end of the other transactions' TQ
o Permanent (PSCM) – Make the failed transaction a subordinate-transaction of the other transaction
![Page 12: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/12.jpg)
PSCM
Ta
Transaction
queue #1
TQ thread
Core #1
PSCM
Tb
Transaction
queue #k
TQ thread
Core #k
Tc
Td Te
Transactions a and b collide, b is older
1
![Page 13: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/13.jpg)
PSCM
Transaction queue #1
TQ thread
Core #1
PSCM
Tb
Transaction queue #k
TQ thread
Core #k
TaTc
Td Te
Losing transaction and its subordinates are made subordinates of winning transaction
Ta Tc
![Page 14: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/14.jpg)
Experimental evaluation
Incorporated CAR-STM within RSTM
Tested on an 8-way 4 x XEON-7110M server
Serializing CM tests: Workloads generated by STMBEench7 [Guerraoui, Kapalka, Vitek, '07]
Proactive collision avoidance tested on synthetic app
![Page 15: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/15.jpg)
STMBench7
A benchmark for STM implementations
Generates realistic workloads representative of complex, object-oriented applications
Workloads composed of 45 operation types on a shared data structure
Operation categorieso Long / short traversalso Short operations o Structure modification operations
![Page 16: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/16.jpg)
Metrics and workload types
Workload typeReadsWrites
Read dominated
90%10%
Read/Write60%40%
Write dominated
10%90%
MetricsOperation typesComments
Execution timeAll5 min + quiescence
Quiescence timeAll
ThroughputAll except long traversals
![Page 17: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/17.jpg)
Execution time: R/W dominated workloads
Speed-up of between
1.7 and 36
Reduction of standard deviation
by factor of up to 40
![Page 18: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/18.jpg)
Execution time: read dominated workloads
![Page 19: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/19.jpg)
Execution time: Write dominated workloads
![Page 20: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/20.jpg)
Quiescence time:a measure of live-lock
Speed-up of between
11 and 118
![Page 21: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/21.jpg)
Throughput: write dominated workloads
Throughput increase of up to 15.7
![Page 22: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/22.jpg)
Experimental evaluation: proactive collision avoidance
RegionedArray (RA) synthetic app (read, write, delete)
Each thread runs for 20 secondso Randomly select regiono Randomly select transaction lengtho Randomly select operationo Transaction repeatedly applies operation to randomly-
selected region item
Transactional memory Dagstuhl, June 08
![Page 23: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/23.jpg)
Experimental results
Transactional memory Dagstuhl, June 08
![Page 24: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/24.jpg)
Most relevant prior art
[Yoo, Lee, 2008]: Adaptive transaction scheduling for TM systems
[Bai, Shen, Zhang, Scherer, Ding, Scott]: A key-based adaptive TM executor
![Page 25: CAR-STM: Scheduling-based Collision Avoidance and Reduction for Software Transactional Memory](https://reader036.vdocuments.us/reader036/viewer/2022062408/56814446550346895db0e533/html5/thumbnails/25.jpg)
Conclusions
Transactions-ignorant scheduling is problematic
Serializing contention management eliminates live-lock STM behavior
Proactive Collision avoidance contribution application-dependentSome future work directions
Robust scheduling Transaction-aware OS scheduling Better handling of page faults, local data access,…