enhancing real-time behaviour of parallel applications ...mcouceiro/eurotm/dmtm2014/fhaas.pdf ·...
TRANSCRIPT
Enhancing Real-Time Behaviour ofParallel Applications using Intel TSX
Florian Haas, Stefan Metzlaff, Sebastian Weis,and Theo Ungerer
Department of Computer Science,University of Augsburg,Germany
January 22, 2014
Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 1
Outline
Motivation
Approach
Evaluation
Conclusion & Outlook
Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 2
MotivationSafety-Critical Real-Time Systems
I Increasing parallelism in safety-criticalsystems
I Interferences at shared resourcesI Interferences at shared data structures
↪→ Indeterministic execution behaviour:I Accesses have to be serializedI Mutual detention may result
↪→ Real-Time capable synchronization modelneeded
A380, [1]
Google Driverless Car, [2]
Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 3
MotivationHardware Transactional Memory
I Hardware Transactional MemoryI Simplifies parallel programmingI Optimistic lock-free parallel access can improve performance
I Transactional Synchronization Extension (TSX) implementedin current Intel Haswell micro architecture
I No congestion in conflict-free caseI Does not guarantee transaction commitI Transaction aborts and conflicts can happen at any timeI Conflicting transactions must be scheduled to meet real-time
requirements
↪→ Congestion controller for fair transaction execution isneeded
Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 4
ExampleWithout congestion control
I Thread 2 starts its transaction after thread 1
I Transaction 2 leads to a conflict and abort of transaction 1
XBEGIN
ABORT
RETRY
ABORT
RETRY
XBEGIN
XEND
XBEGIN
XEND
XBEGIN
thread 1
thread 2
I Transaction 2 always aborts transaction 1 subsequently
↪→ Starvation of thread 1
Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 5
Approach
I RT-TX library wraps TSX instructions
I Global congestion controller monitorstransaction execution
I Schedule of transactions depends onstatistics:
I TX with less commits are preferredI TX with more commits are delayed
↪→ Conflicts between TXs are resolved
↪→ Progress of transactions is moredeterministic
Transaction
RT-TX
Congestion Controller
Operating System
begin
notifyscheduler schedule
execute
Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 6
ApproachTransaction Wrapper
TSX instructions are wrapped:I RTTX begin
I registers transaction at congestion controllerI waits for execution allowanceI update TX status and begin counter
I RTTX endI update TX status and commit counterI removes TX from congestion controller
I Abort handlerI part of RTTX beginI in case of abort, TX is restartedI because TX can always fail, a global lock is used for fallbackI update TX status and abort counter (→ commit ratio
decreases)
Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 7
ApproachScheduler Integration
I Pausing transactions with high commit rate before executing:I Either: sleep for a specific amount of timeI Or: wait for other transactions to commit
I Prioritising transactions is difficult:I Scheduler must be aware of threads with transactionsI Transaction commit rate is required for scheduling decisionI Dependencies between transactions must be known
↪→ A new syscall is needed to notify the scheduler
Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 8
ExampleWith congestion control
b: nr. of begins c: nr. of commits a: nr. of aborts
XBEGIN
ABORT
RETRY
XEND
delay
XBEGIN
XEND
XBEGIN
XEND
thread 1
thread 2
b=0c=0a=0
b=1c=0a=0
b=1c=0a=1
b=2c=0a=1
b=2c=1a=1
b=0c=0a=0
b=1c=0a=0
b=1c=1a=0
b=2c=1a=0
b=2c=2a=0
wait forthread 1
↪→ Suspending thread 2 ensures progress of thread 1
Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 9
EvaluationMethodology
I 4 threads:I 1 transaction per threadI All threads read from shared arrayI 1 thread also writes occasionally shared array
I Conflicts occur due to read and write operations
I Congestion controller ensures a fair execution
I Thread with highest completion rate is delayed
I Each threads is executed until TX has 10,000 commitsI Transaction aborts are measured:
I Without RT-TX: congestion controller does not delay TXsI With RT-TX: congestion controller activated
Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 10
EvaluationResults
Total aborts:
thread 1 thread 2 thread 3 thread 40
50,000
100,000
without RT-TX RT-TX
Max. subsequent aborts:
thread 1 thread 2 thread 3 thread 4
500
1,000
without RT-TX RT-TX
↪→ RT-TX congestion controller leads toless total aborts and less subsequent aborts
Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 11
Conclusion & Outlook
I TSX eases parallel programming, but congestion still possible
I RT-TX provides congestion manager and scheduler integration
↪→ RT-TX is real-time capable:I Fair transaction schedulingI Ensures transaction progress
I Future work:I Integration in Linux schedulerI Evaluate with MARSSX86 simulatorI Consider different measures for scheduling decisions
Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 12
Images
[1] http://www.flickr.com/photos/8313254@N08/496320750/[2] http://www.flickr.com/photos/jurvetson/5499949739/
Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 14