hardware read-write lock elision - inesc-idsalaa/slides/eurosys2016.pdf · hardware read-write lock...

Post on 29-May-2020

17 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

HardwareRead-WriteLockElision

PascalFelberShadyIssa

PaoloRomanoAlexanderMatveev

Multicoresareeverywhere

HardwareRead-WriteLockElision- Eurosys201621/4/16 2

Parallelprogramming

Mainmemory

Core1 Core2 Core3 Core4

HardwareRead-WriteLockElision- Eurosys201621/4/16 3

Parallelprogramming

Mainmemory

Core1 Core2 Core3 Core4

HardwareRead-WriteLockElision- Eurosys201621/4/16 4

Parallelprogramming

Mainmemory

Core1 Core2 Core3 Core4

complexity- deadlocks- livelocks- priorityinversions- convoyeffects

HardwareRead-WriteLockElision- Eurosys201621/4/16 5

Parallelprogramming

Mainmemory

Core1 Core2 Core3 Core4

Transactionalmemory

atomic{if(bal>amount)

withdraw(amount)}

HardwareRead-WriteLockElision- Eurosys201621/4/16 6

HardwareTransactionalMemory

HardwareRead-WriteLockElision- Eurosys201621/4/16 7

Hardwarelockelision

Thread1lock

r(A)

unlock

w(B)

lock

w(X) w(Y)

unlockThread2

lock

HardwareRead-WriteLockElision- Eurosys201621/4/16 8

Hardwarelockelision

Thread1lock

r(A)

unlock

w(B)

lock

w(X) w(Y)

unlockThread2

BeginH/WTx

CommitH/WTx

BeginH/WTx

CommitH/WTx

HardwareRead-WriteLockElision- Eurosys201621/4/16 9

Hardwarelockelision

Thread1lock

r(A) r(X)

lock

w(X)Thread2

BeginH/WTx

BeginH/WTx

abortacquirelock

normally

HardwareRead-WriteLockElision- Eurosys201621/4/16 10

Hardwarelockelision

Thread1lock

r(A) r(X)

lock

w(X)Thread2

BeginH/WTx

BeginH/WTx

abortacquirelock

normally

capacityprohibited instructions

pagefaultsTLBmiss

HardwareRead-WriteLockElision- Eurosys201621/4/16 11

Read-writeLocks

readmode writemode

concurrentreaders

✔ sequentialwriters✘

readdominatedworkloads

blocksreaders✘

HardwareRead-WriteLockElision- Eurosys201621/4/16 12

Hardwareread-writelockelision

readersrunwithoutinstrumentation:• noH/WTxs• noS/Wtrackingof

readlocations• nolockacquisition

writersruninH/WTxs:• nolockacquisition• H/Wtrackingof

read/writelocations

HardwareRead-WriteLockElision- Eurosys201621/4/16 13

Hardwareread-writelockelision

Reader

Writer

r-lock

r(X)

r-unlock

r(?)

w-lock

w(X) w(Y)

w-unlockBeginHWTx

CommitHW Tx

HardwareRead-WriteLockElision- Eurosys201621/4/16 14

Hardwareread-writelockelision

Reader

Writer

r-lock

r(X)

r-unlock

r(?)

w-lock

w(X) w(Y)

w-unlock

?=Y

BeginH/WTx

CommitH/WTx

HardwareRead-WriteLockElision- Eurosys201621/4/16 15

Hardwareread-writelockelision

Reader

Writer

r-lock

r(X)

r-unlock

r(?)

w-lock

w(X) w(Y)

w-unlock

?=Y

w-unlockBeginH/WTx

CommitH/WTx

HardwareRead-WriteLockElision- Eurosys201621/4/16 16

Hardwareread-writelockelision

Reader

Writer

r-lock

r(X)

r-unlock

r(Y)

w-lock

w(X) w(Y)

w-unlockabort

BeginH/WTx

CommitH/WTx

HardwareRead-WriteLockElision- Eurosys201621/4/16 17

Hardwareread-writelockelision

Reader

Writer

r-lock

r(X)

r-unlock

r(?)

w-lock

w(X) w(Y)

w-unlock w-unlock

waitforconcurrentreadersactivehere

BeginH/WTx

CommitH/WTx

HardwareRead-WriteLockElision- Eurosys201621/4/16 18

Hardwareread-writelockelisionR1

Writer

r-unlock

r-unlock

w-unlock w-unlock

reader state

R1 inactive

R2 active

. .

R2r-lock

reader state

R1 inactive

R2 inactive

. .

abortHardwareRead-WriteLockElision- Eurosys201621/4/16 19

Hardwareread-writelockelision

Reader

Writer

r-lock

r(X)

r-unlock

r(?)

w-lock

w(X) w(Y)

SuspendHWTx

ResumeHWTx

CommitHWTx

w-unlockBeginHWTx

waitforconcurrentreadersactivehere

HardwareRead-WriteLockElision- Eurosys201621/4/16 20

Hardwareread-writelockelisionWritesuseH/WTxs

concurrencyamongwriters

✔ Txs maynevercommit• fallbacklockisamust• Readersmustsynchronize

withlockholder

HardwareRead-WriteLockElision- Eurosys201621/4/16 21

Hardwareread-writelockelision

Reader

Writerinlockfallback

r-lock

r(X)

r-unlock

w-lock

w(X) w(Y)

waitforconcurrentreaders

Releaselock

w-unlockAcquirelock

r(Y)

r-lock

waitforlockchecklock

oldX

HardwareRead-WriteLockElision- Eurosys201621/4/16 22

RollbackOnlyTransactions

Thread1lock

r(X)

lock

w(X)Thread2

BeginH/WTx

BeginH/WTx

abortlock

r(X)

lock

w(X)

BeginROT

BeginROT

r(X)

unlockCommitROT

unlockCommitROT

HardwareRead-WriteLockElision- Eurosys201621/4/16 23

RollbackOnlyTransactions

Thread1lock

r(X)

lock

w(X)Thread2

BeginH/WTx

BeginH/WTx

abortlock

r(X)

lock

w(X)

BeginROT

BeginROT

r(X)

unlockCommitROT

unlockCommitROT

oldX

newX

HardwareRead-WriteLockElision- Eurosys201621/4/16 24

UsingRollbackOnlyTransactions(ROTs)

atomic✔ notrackingofreads✘

notserializable✘allowlargerTxs✔

noneedforSuspend/Resume✔ singlewriter✘

HardwareRead-WriteLockElision- Eurosys201621/4/16 25

Experiments

syntheticbenchmarks

degreeofcontention

lengthofTransactions

complexbenchmarks

andapplications

STMBench7

TPC-C

KyotoCabinet

10cores

80H/Wthreads

HardwareRead-WriteLockElision- Eurosys201621/4/16 26

0.1

1

16 32 64 80

Tim

e (

s)

Number of threads

10% write locks

RW-LEOPT

RW-LEPES

HLE

BRLock

RWL

SGL

HTM

ROT

GL

ROT

GL

Optimistic Pessimestic

HardwareRead-WriteLockElision- Eurosys201621/4/16 27

0.1

1

16 32 64 80

Tim

e (

s)

Number of threads

10% write locks

RW-LEOPT

RW-LEPES

HLE

BRLock

RWL

SGL

HTM

ROT

GL

ROT

GL

Optimistic Pessimestic

HardwareRead-WriteLockElision- Eurosys201621/4/16 28

Syntheticbenchmarks

Degreeofcontention

SizeofTxs

0.1

1

16 32 64 80

Tim

e (

s)

Number of threads

10% write locks

RW-LEOPT

RW-LEPES

HLE

BRLock

RWL

SGL

HardwareRead-WriteLockElision- Eurosys201621/4/16 29

Stresstest– performance

Lowcontention Highcontention

SmallTxs

LargeTxs

0.1

1

16 32 64 80

Tim

e (

s)

Number of threads

10% write locks

RW-LEOPT

RW-LEPES

HLE

BRLock

RWL

SGL

10%writers

0.01

0.1

1

16 32 64 80

Tim

e (

s)

Number of threads

0.1

1

16 32 64 80

Tim

e (

s)

Number of threads

RW-LEOPT

RW-LEPES

HLEBRLock

RWLSGL

0.1

1

16 32 64 80

Tim

e (

s)

Number of threads

0.1

1

10

16 32 64 80

Tim

e (

s)

Number of threads

8X

10X

7X

HardwareRead-WriteLockElision- Eurosys201621/4/16 30

Ab

ort

s (%

)

HLERW-LEPES

RW-LEOPT

Abort

s (%

)

HLERW-LEPES

RW-LEOPT

Stresstest– abortrate

Lowcontention Highcontention

SmallTxs

LargeTxs

10%writers

HTM tx

HTM non-tx

HTM capacity

Lock aborts

ROT conflicts

ROT capacity

HLERW-LEPES

RW-LEOPT

Ab

ort

s (%

)

HLERW-LEPES

RW-LEOPT

Ab

ort

s (%

)

HLERW-LEPES

RW-LEOPT HardwareRead-WriteLockElision- Eurosys201621/4/16 31

Stresstest

Lowcontention Highcontention

SmallTxs

LargeTxs

0.1

1

16 32 64 80

Tim

e (

s)

Number of threads

10% write locks

RW-LEOPT

RW-LEPES

HLE

BRLock

RWL

SGL

90%writers

0.1

1

16 32 64 80

Tim

e (

s)

Number of threads

RW-LEOPT

RW-LEPES

HLEBRLock

RWLSGL

0.01

0.1

1

16 32 64 80

Tim

e (

s)

Number of threads

0.1

1

10

100

16 32 64 80

Tim

e (

s)

Number of threads

0.1

1

10

16 32 64 80

Tim

e (

s)

Number of threads

-10%-25%

HardwareRead-WriteLockElision- Eurosys201621/4/16 32

Syntheticbenchmarks

Lowcontention Highcontention

Lowcapacity

Highcapacity

0

20

40

60

80

1001% write locks

Com

mits

(%

)

HTM ROT SGL Uninstrumented

HLERW-LEPES

RW-LEOPT

10% write locks

Number of threads (2,4,8,16,32,64,80)

HLERW-LEPES

RW-LEOPT

90% write locks

HLERW-LEPES

RW-LEOPT

0

20

40

60

80

1001% write locks

Com

mits

(%

)

HTM ROT SGL Uninstrumented

HLERW-LEPES

RW-LEOPT

10% write locks

Number of threads (2,4,8,16,32,64,80)

HLERW-LEPES

RW-LEOPT

90% write locks

HLERW-LEPES

RW-LEOPT

0

20

40

60

80

1001% write locks

Com

mits

(%

)

HTM ROT SGL Uninstrumented

HLERW-LEPES

RW-LEOPT

10% write locks

Number of threads (2,4,8,16,32,64,80)

HLERW-LEPES

RW-LEOPT

90% write locks

HLERW-LEPES

RW-LEOPT

0

20

40

60

80

1001% write locks

Com

mits

(%

)

HTM ROT SGL Uninstrumented

HLERW-LEPES

RW-LEOPT

10% write locks

Number of threads (2,4,8,16,32,64,80)

HLERW-LEPES

RW-LEOPT

90% write locks

HLERW-LEPES

RW-LEOPT

HardwareRead-WriteLockElision- Eurosys201621/4/16 33

Syntheticbenchmarks

Lowcontention Highcontention

Lowcapacity

Highcapacity

0

20

40

60

80

1001% write locks

Abort

s (%

)

HTM txHTM non-txHTM capacityLock abortsROT conflictsROT capacity

HLERW-LEPES

RW-LEOPT

10% write locks

Number of threads (2,4,8,16,32,64,80)

HLERW-LEPES

RW-LEOPT

90% write locks

HLERW-LEPES

RW-LEOPT

0

20

40

60

80

1001% write locks

Abort

s (%

)

HTM txHTM non-txHTM capacityLock abortsROT conflictsROT capacity

HLERW-LEPES

RW-LEOPT

10% write locks

Number of threads (2,4,8,16,32,64,80)

HLERW-LEPES

RW-LEOPT

90% write locks

HLERW-LEPES

RW-LEOPT

0

20

40

60

80

1001% write locks

Ab

ort

s (%

)

HTM txHTM non-txHTM capacityLock abortsROT conflictsROT capacity

HLERW-LEPES

RW-LEOPT

10% write locks

Number of threads (2,4,8,16,32,64,80)

HLERW-LEPES

RW-LEOPT

90% write locks

HLERW-LEPES

RW-LEOPT

0

20

40

60

80

1001% write locks

Ab

ort

s (%

)

HTM txHTM non-txHTM capacityLock abortsROT conflictsROT capacity

HLERW-LEPES

RW-LEOPT

10% write locks

Number of threads (2,4,8,16,32,64,80)

HLERW-LEPES

RW-LEOPT

90% write locks

HLERW-LEPES

RW-LEOPT

HardwareRead-WriteLockElision- Eurosys201621/4/16 34

TPC-C

0.1

1

10

100

16 32 64 80

1% write locks

Speedup (

vs. S

GL 1

thr.

)

16 32 64 80

10% write locks

Number of threads

RW-LEOPT

RW-LEPES

16 32 64 80

50% write locks

HLE BRLock

RWL SGL

6X

HardwareRead-WriteLockElision- Eurosys201621/4/16 35

TPC-C

0

20

40

60

80

1001% write locks

Co

mm

its (

%)

HTM ROT SGL Uninstrumented

HLERW-LEPES

RW-LEOPT

10% write locks

Number of threads (1,4,8,16,32,64,80)

HLERW-LEPES

RW-LEOPT

90% write locks

HLERW-LEPES

RW-LEOPT

HardwareRead-WriteLockElision- Eurosys201621/4/16 36

TPC-C

0

20

40

60

80

1001% write locks

Abort

s (%

)

HTM txHTM non-txHTM capacityLock abortsROT conflictsROT capacity

HLERW-LEPES

RW-LEOPT

10% write locks

Number of threads (1,4,8,16,32,64,80)

HLERW-LEPES

RW-LEOPT

50% write locks

HLERW-LEPES

RW-LEOPT

HardwareRead-WriteLockElision- Eurosys201621/4/16 37

STMbench7

0

2

4

6

8

10

16 32 64 80

10% write locks

Thro

ughput (1

03 T

x/s)

16 32 64 80

50% write locks

Number of threads

RW-LEOPT

RW-LEPES

16 32 64 80

90% write locks

HLE BRLock

RWL SGL

4X

HardwareRead-WriteLockElision- Eurosys201621/4/16 38

STMbench7

0

20

40

60

80

10010% write locks

Com

mits

(%

)

HTM ROT SGL Uninstrumented

HLERW-LEPES

RW-LEOPT

50% write locks

Number of threads (2,4,8,16,32,64,80)

HLERW-LEPES

RW-LEOPT

90% write locks

HLERW-LEPES

RW-LEOPT

HardwareRead-WriteLockElision- Eurosys201621/4/16 39

STMbench7

0

20

40

60

80

10010% write locks

Abort

s (%

)

HTM txHTM non-txHTM capacityLock abortsROT conflictsROT capacity

HLERW-LEPES

RW-LEOPT

50% write locks

Number of threads (2,4,8,16,32,64,80)

HLERW-LEPES

RW-LEOPT

90% write locks

HLERW-LEPES

RW-LEOPT

HardwareRead-WriteLockElision- Eurosys201621/4/16 40

KyotoCabinet

0

2

4

6

8

16 32 64

<1% write locks

Thro

ughput (1

06 T

x/s)

16 32 64

5% write locks

Number of threads

RW-LEOPT

RW-LEPES

16 32 64

10% write locks

HLEBRLock

OrigSGL

2X

HardwareRead-WriteLockElision- Eurosys201621/4/16 41

KyotoCabinet

0

20

40

60

80

100<1% write locks

Com

mits

(%

)

HTM ROT SGL Uninstrumented

HLERW-LEPES

RW-LEOPT

5% write locks

Number of threads (1,4,8,16,32,64)

HLERW-LEPES

RW-LEOPT

10% write locks

HLERW-LEPES

RW-LEOPT

HardwareRead-WriteLockElision- Eurosys201621/4/16 42

KyotoCabinet

0

10

20

30

40

50<1% write locks

Abort

s (%

)

HTM txHTM non-txHTM capacityLock abortsROT conflictsROT capacity

HLERW-LEPES

RW-LEOPT

5% write locks

Number of threads (1,4,8,16,32,64)

HLERW-LEPES

RW-LEOPT

10% write locks

HLERW-LEPES

RW-LEOPT

HardwareRead-WriteLockElision- Eurosys201621/4/16 43

Conclusions

readerswithoutinstrumentation

writersusingH/WTx

HardwareRead-WriteLockElision- Eurosys201621/4/16 44

Conclusions

readerswithoutinstrumentation

writersusingH/WTx 10X

HardwareRead-WriteLockElision- Eurosys201621/4/16 45

Conclusions

readerswithoutinstrumentation

writersusingH/WTx

suspend/resume ROTs

10xHardwareRead-WriteLockElision- Eurosys201621/4/16 46

top related