wtm’12, bern, april 10, 2012 in-place metainfo support in deucestm ricardo j. dias, tiago m. vale...
TRANSCRIPT
![Page 1: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/1.jpg)
WTM’12, Bern, April 10, 2012 1
In-Place Metainfo Support in DeuceSTM
Ricardo J. Dias, Tiago M. Vale and João M. LourençoCITI / Universidade Nova de Lisboa
![Page 2: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/2.jpg)
WTM’12, Bern, April 10, 2012 2
Motivation
• Fair comparison of different STM algorithms
• Require a flexible framework to support different STM implementations– Multi-version, lock-based, …
– Same transactional interface
– Same benchmarking applications
![Page 3: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/3.jpg)
WTM’12, Bern, April 10, 2012 3
The DeuceSTM
• Transactions defined by a single Java method annotation: @Atomic
• Well-defined API for implementing STM algorithms
• Efficient implementation of some STM algorithms, e.g., TL2, LSA, …
• Macro-benchmarks available
• Does not allow the efficient implementation of other STM algorithms, e.g., multi-version
• Fair comparison is not possible
![Page 4: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/4.jpg)
WTM’12, Bern, April 10, 2012 4
Transactional Information
Thread 1
Thread 2
Thread 3
…
1
2
3
4
TxRead
TxWrite
TxRead
Tx Desc.Clock = 3
Tx Desc.Clock = 2
Tx Desc.Clock = 3
Lock, version …
Lock, version …
Lock, version …
Lock, version …
Metainfo
MemoryThread-local
Data
Data
Data
Data
![Page 5: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/5.jpg)
WTM’12, Bern, April 10, 2012 5
Out-place: N-1
…
1
2
3
4
Lock
Lock
Lock
Memory• Efficient implementation
using an hash function
• False sharing
• Algorithms:
– TL2, SwissTM, LSA
…
ExternalMapping Table
Lock
Data
Data
Data
Data
![Page 6: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/6.jpg)
WTM’12, Bern, April 10, 2012 6
Out-place: 1-1
…
1
2
3
4
Version List
Version List
Version List
Memory
Version List
• Hash table with collision list
• Bad performance
• Algorithms:
– Multi-version algorithms
…
ExternalMapping Table
Data
Data
Data
Data
![Page 7: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/7.jpg)
WTM’12, Bern, April 10, 2012 7
In-place: 1-1
1
2
3
4
Version List
Version List
Version List
Version List
• Direct access to metainfo using memory reference
• Mostly used in managed runtimes (OO languages)
• Algorithms:
– TL2, SwissTM, LSA, Multi-version algorithms
…
Memory
Data
Data
Data
Data
Add support for In-place in DeuceSTM
![Page 8: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/8.jpg)
WTM’12, Bern, April 10, 2012 8
Transactional Interface
Out-place in DeuceSTM
(obj1,field)
(obj2,field)
(obj3,field)
[metainfo1
][metainfo2
][metainfo3
]
Metainfo table
TxRead(obj, field)TxWrite(obj, field, val)
Object instance
Field offset
Table Key
![Page 9: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/9.jpg)
WTM’12, Bern, April 10, 2012 9
class C { int x; static int x_off = Offset(x);
@Atomic foo() { int t = TxRead(this, x_off ); TxWrite(this, x_off , t+1); }}
Out-place Instrumentation
class C { int x;
@Atomic foo() { x = x+1; }}
![Page 10: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/10.jpg)
WTM’12, Bern, April 10, 2012 10
TxRead(obj, field)TxWrite(obj, field, val)
Object A
field1field1m
fields*methods()*
Our In-place Approach
Object A
field1fields*methods()*
Object B
fields*methods()*
Object M
[metainfo]
TxRead(metainfo)TxWrite(metainfo, val)
Transactional Interface
![Page 11: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/11.jpg)
WTM’12, Bern, April 10, 2012 11
Our In-place Approach
class C { int x;
@Atomic foo() { x = x+1; }}
class C { int x; TxField x_m = new TxField();
@Atomic foo() { int t = TxRead(x_m); TxWrite(x_m, t+1); }}
![Page 12: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/12.jpg)
WTM’12, Bern, April 10, 2012 12
Metainfo and arrays
5[0]
3[1]
8[2]
Original array: int[]
New array: TxArrField[][0]
[1]
[2]
TxArrField
arrayindex = 0[metainfo]
TxArrField
arrayindex = 1[metainfo]
TxArrField
arrayindex = 2[metainfo]
![Page 13: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/13.jpg)
WTM’12, Bern, April 10, 2012 13
Metainfo and arraysclass C { int[] a = new int[10];
@Atomic foo() { a[1] = a[2]+1; }
void bar() { a[2] = 3;
}}
class C { TxArrInt[] a = new TxArrInt[10]; { int[] t = new int[10]; for (int i=0; i < 10; i++) { a[i] = new TxArrInt(i, t); } } TxField a_m = new TxField();
@Atomic foo() { int t = TxRead(a[2]); TxWrite(a[1], t+1); }
void bar() { a[0].array[3] = 3;
}}
![Page 14: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/14.jpg)
WTM’12, Bern, April 10, 2012 14
Experimental EvaluationOverhead
• Benchmarking algorithm: TL2 using a lock table
• Base case:– Using out-place strategy (original DeuceSTM)
• Comparing case:– Using in-place strategy• Metainfo objects are created for each field• We use the metainfo object as the key for the external
lock table
![Page 15: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/15.jpg)
WTM’12, Bern, April 10, 2012 15
Experimental EvaluationOverhead
Write-Update: 0% Using Arrays
No arrays: overhead 3%
With arrays: overhead 20%
Not using Arrays
Overhead in %
![Page 16: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/16.jpg)
WTM’12, Bern, April 10, 2012 16
Experimental EvaluationOverhead
Write-Update: 10%
No arrays: overhead 7%
With arrays: overhead 25%
Overhead in %
Using ArraysNot using Arrays
![Page 17: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/17.jpg)
WTM’12, Bern, April 10, 2012 17
Experimental ResultsIn-place vs. Out-place for Multi-version
• Two implementations of JVSTM in DeuceSTM – Out-place strategy• Versions kept in external table with collision list
– In-place strategy• No external table• Versions kept in meta-info field
• How much faster is the in-place implementation?
![Page 18: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/18.jpg)
WTM’12, Bern, April 10, 2012 18
Experimental EvaluationMulti-version
Average 5 times faster
Speedup in X faster
Using ArraysNot using Arrays Write-Update: 10%
![Page 19: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/19.jpg)
WTM’12, Bern, April 10, 2012 19
Experimental ResultsMulti-version
• JVSTM algorithm has a performance bottleneck in garbage collection of unused versions– Is it limiting the speedup for in-place?
• JVSTM-noGC: an extension of JVSTM where– Version lists are fixed sized– No garbage collection of unused versions
![Page 20: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/20.jpg)
WTM’12, Bern, April 10, 2012 20
Experimental EvaluationMulti-version
Average 20—25 times faster
Speedup in X faster
Using ArraysNot using Arrays Write-Update: 10%
![Page 21: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/21.jpg)
WTM’12, Bern, April 10, 2012 21
Experimental EvaluationJVSTM vs TL2
Using ArraysNot using ArraysWrite-Update: 10%
![Page 22: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/22.jpg)
WTM’12, Bern, April 10, 2012 22
Concluding Remarks
• In-place strategy support allows:– Efficient support of primitive types• Avoids boxing and unboxing
– Efficient Implementation of multi-version algorithms
– Fair comparison of different kinds of STM algorithms
– Support for distributed STM algorithms• Ongoing work
![Page 23: WTM’12, Bern, April 10, 2012 In-Place Metainfo Support in DeuceSTM Ricardo J. Dias, Tiago M. Vale and João M. Lourenço CITI / Universidade Nova de Lisboa](https://reader035.vdocuments.mx/reader035/viewer/2022070412/5697bf7c1a28abf838c841ed/html5/thumbnails/23.jpg)
WTM’12, Bern, April 10, 2012 23
The End