…and region serializability for all jessica ouyang, peter chen, jason flinn & satish...
TRANSCRIPT
…and region serializability for allJESSICA OUYANG, PETER CHEN, JASON FLINN & SATISH NARAYANASAMY
UNIVERSITY OF MICHIGAN
Language-level guarantees for programs with races
2
Fewer possible program
behaviors
More potential optimizations
No guarante
es
DRF0
Global, serial order
of all instruction
s
SC
Global, serial order of regions
RS
JESSICA OUYANG 3
a = 0 b = 0
lock(A)
a = 1
unlock(A)
lock(B)
...
lock(A)
a = a + 1
b = a
unlock(A)
...
unlock(B)
JESSICA OUYANG 4
a = 0 b = 0
lock(A)
a = 1
unlock(A)
lock(B)
...
lock(A)
a = a + 1
b = a
unlock(A)
...
unlock(B)
JESSICA OUYANG 5
a = 0 b = 0
lock(A)
a = 1
unlock(A)
lock(B)
...
lock(A)
a = a + 1
b = a
unlock(A)
...
unlock(B)
JESSICA OUYANG 6
a = 0 b = 0
lock(A)
a = 1
unlock(A)
lock(B)
...
lock(A)
a = a + 1
b = a
unlock(A)
...
unlock(B)
JESSICA OUYANG 7
a = 0 b = 0
lock(A)
a = 1
unlock(A)
lock(B)
...
lock(A)
a = a + 1
b = a
unlock(A)
...
unlock(B)
JESSICA OUYANG 8
a = 0 b = 0
lock(A)
a = 1
unlock(A)
lock(B)
...
a = a + 1
b = a
...
unlock(B)
JESSICA OUYANG 9
a = 0 b = 0
lock(A)
a = 1
unlock(A)
lock(B)
...
a = a + 1
b = a
...
unlock(B)
JESSICA OUYANG 10
a = 0 b = 0
lock(A)
a = 1
unlock(A)
lock(B)
...
a = a + 1
b = a
...
unlock(B)
JESSICA OUYANG 11
CPU 1 CPU 2
time
lock(A)
a = 1
unlock(A)
lock(B)
...
a = a + 1
b = a
...
unlock(B)
JESSICA OUYANG 12
CPU 1 CPU 2
time
lock(A)
a = 1
unlock(A)
lock(B)
...
a = a + 1
b = a
...
unlock(B)
JESSICA OUYANG 13
CPU 1 CPU 2
time
lock(A)
a = 1
unlock(A)
lock(B)
...
a = a + 1
b = a
...
unlock(B)
JESSICA OUYANG 14
CPU 1 CPU 2
time
lock(A)
a = 1
unlock(A)
lock(B)
...
a =NaN
b =yourPassword
...
unlock(B)
15JESSICA OUYANG
JESSICA OUYANG 16
DRF0
JESSICA OUYANG 17
DRF0
JESSICA OUYANG 18
DRF0
JESSICA OUYANG 19
a = 0 b = 0
lock(A)
a = 1
unlock(A)
lock(B)
...
a = a + 1
b = a
...
unlock(B)
JESSICA OUYANG 20
a = 0 b = 0
lock(A)
a = 1
unlock(A)
lock(B)
...
a = a + 1
b = a
...
unlock(B)
JESSICA OUYANG 21
Region serializability for all programs
Guarantees◦ Atomic synchronization-free regions◦ Global, serial order of all regions
Benefits◦ Easy for programmers & tools to reason about◦ Compilers can reorder freely within regions
JESSICA OUYANG 22
How to provide region serializability
Compiler◦ Preserve regions from source code
Runtime◦ Run one thread at a time◦ Only preempt at synchronization boundaries
JESSICA OUYANG 23
time
lock(A)
a = 1
unlock(A)
lock(B)
...
a = a + 1
b = a
...
unlock(B)
CPU 3CPU 2 CPU 4CPU 1
a:1
lock(A)
a = 1
unlock(A)
lock(B)
...
a = a + 1
b = a
...
unlock(B)
JESSICA OUYANG 24
time
CPU 3CPU 2 CPU 4CPU 1
E0
E0
JESSICA OUYANG 25
time
CPU 3CPU 2 CPU 4CPU 1
Epoch-parallel
execution
Thread-parallel execution
JESSICA OUYANG 26
E1E1
E3E3
E2E2
E0
==?
2. Start epoch1. Checkpoint state
E1
E0
E2
E3E3
E3
!=
3. Check state4. Roll back &Re-execute
time
Uniparallel execution [Veeraraghavan ’11]
JESSICA OUYANG 27
JESSICA OUYANG 28
JESSICA OUYANG 29
Conclusion Strong guarantees for all programs
◦ Region serializability
One way of providing region serializability◦ Uniparallelism