enhancing real-time behaviour of parallel applications ...mcouceiro/eurotm/dmtm2014/fhaas.pdf ·...

14
Enhancing Real-Time Behaviour of Parallel 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

Upload: vuongquynh

Post on 08-Oct-2018

216 views

Category:

Documents


0 download

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

Questions?

Jan. 22, 2014 Haas, Metzlaff, Weis & Ungerer / Real Time Transactions 13

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