Exploiting the Commutativity Lattice
Milind Kulkarni Donald Nguyen, Dimitrios Prountzos, Xin Sui and Keshav Pingali
Wednesday, July 20, 2011
Exploiting the Commutativity Lattice Donald Nguyen, Dimitrios - - PowerPoint PPT Presentation
Exploiting the Commutativity Lattice Donald Nguyen, Dimitrios Milind Kulkarni Prountzos, Xin Sui and Keshav Pingali Wednesday, July 20, 2011 Exploiting semantics in transactional execution Set S: X Y Z 2 Wednesday, July 20, 2011
Wednesday, July 20, 2011
2
X Y Z
Wednesday, July 20, 2011
2
atomic { ... S.add(a) ... }
atomic { ... S.contains(b) ... }
X Y Z
Wednesday, July 20, 2011
2
atomic { ... S.add(a) ... }
atomic { ... S.contains(b) ... }
X Y Z X Y Z A
Wednesday, July 20, 2011
2
atomic { ... S.add(a) ... }
atomic { ... S.contains(b) ... }
X Y Z X Y Z A
X
Wednesday, July 20, 2011
2
atomic { ... S.add(a) ... }
atomic { ... S.contains(b) ... }
X Y Z X Y Z A
Wednesday, July 20, 2011
2
atomic { ... S.add(a) ... }
atomic { ... S.contains(b) ... }
X Y Z X Y Z A
Wednesday, July 20, 2011
X Y Z A
atomic { ... S.add(a) ... } atomic { ... S.contains(b) ... }
3
Wednesday, July 20, 2011
X Y Z A
atomic { ... S.add(a) ... } atomic { ... S.contains(b) ... }
3
Key insight: exploit commutativity properties to ensure transactional behavior
Wednesday, July 20, 2011
X Y Z A
atomic { ... S.add(a) ... } atomic { ... S.contains(b) ... }
3
Key insight: exploit commutativity properties to ensure transactional behavior
[Herlihy & Koskinen PPoPP 08] [Ni et al. PPoPP 07] [Kulkarni et al. PLDI 07] [Kulkarni et al. ASPLOS 08] [Koskinen et al. POPL 10] [Carlstrom et al. PPoPP 07] [Weihl et al. IEEE ToC 88]
Wednesday, July 20, 2011
4
add(a)/r commutes with contains(b)/r if
Wednesday, July 20, 2011
5
add(a)/r commutes with contains(b)/r if
Wednesday, July 20, 2011
5
add(a)/r commutes with contains(b)/r if
Wednesday, July 20, 2011
5
add(a)/r commutes with contains(b)/r if
Wednesday, July 20, 2011
about commutativity specifications
implementing commutativity checks
correctly construct lower-overhead checkers
6
Wednesday, July 20, 2011
7
Wednesday, July 20, 2011
7
m1
Wednesday, July 20, 2011
7
m1
Wednesday, July 20, 2011
7
m1 m2
Wednesday, July 20, 2011
7
m1 m2
Wednesday, July 20, 2011
7
m1 m2
Wednesday, July 20, 2011
8
m1 m2
Wednesday, July 20, 2011
9
m1 m2 m3 m4 m1 m2 m3 m4
Wednesday, July 20, 2011
10
m1 m2 m3 m4 m1 m2 m3 m4
Wednesday, July 20, 2011
10
m1 m2 m3 m4 m1 m2 m3 m4
Wednesday, July 20, 2011
11
m1 m2 m3 m4 m1 m2 m3 m4
Wednesday, July 20, 2011
12
m1 m2 m3 m4 m1 m2 m3 m4
Wednesday, July 20, 2011
13
m1 m2 m3 m4 m1 m2 m3 m4
Wednesday, July 20, 2011
14
Wednesday, July 20, 2011
15
Wednesday, July 20, 2011
15
true only if ma and mb commute
Wednesday, July 20, 2011
15
Wednesday, July 20, 2011
15
true if and only if ma and mb commute
Wednesday, July 20, 2011
15
Wednesday, July 20, 2011
16
Wednesday, July 20, 2011
16
Wednesday, July 20, 2011
16
Wednesday, July 20, 2011
Wednesday, July 20, 2011
18
Wednesday, July 20, 2011
19
Wednesday, July 20, 2011
20
Wednesday, July 20, 2011
21
Wednesday, July 20, 2011
22
Wednesday, July 20, 2011
can be passed as an argument to a method
argument in appropriate mode
23
Wednesday, July 20, 2011
24
add(a) → add:1 contains(b) → cont:1
Wednesday, July 20, 2011
24
add(a) → add:1 contains(b) → cont:1
Wednesday, July 20, 2011
25
Wednesday, July 20, 2011
25
Wednesday, July 20, 2011
26
Wednesday, July 20, 2011
26
Wednesday, July 20, 2011
27
Wednesday, July 20, 2011
27
Wednesday, July 20, 2011
28
Wednesday, July 20, 2011
Wednesday, July 20, 2011
Set spec
30
Wednesday, July 20, 2011
Set spec
30
Forward gatekeeper
Wednesday, July 20, 2011
Set spec
30
Forward gatekeeper Abstract locks
Wednesday, July 20, 2011
Set spec
30
Forward gatekeeper Abstract locks
Wednesday, July 20, 2011
Set spec’
31
Forward gatekeeper Abstract locks
Set spec
Wednesday, July 20, 2011
Set spec’
31
Forward gatekeeper Abstract locks
Set spec
Wednesday, July 20, 2011
Set spec’
31
Forward gatekeeper Abstract locks
Set spec
Wednesday, July 20, 2011
32
Forward gatekeeper
Wednesday, July 20, 2011
33
Forward gatekeeper R/W locks
Wednesday, July 20, 2011
34
Forward gatekeeper R/W locks Exclusive locks
Wednesday, July 20, 2011
0.0 1.0 2.0 3.0 Threads 1 2 4 8
ex rw
35
Preflow push
Wednesday, July 20, 2011
36
Wednesday, July 20, 2011
37
Wednesday, July 20, 2011