84
Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically Bounded Region Serializability

Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Embed Size (px)

Citation preview

Page 1: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Aritra Sengupta, Swarnendu Biswas, Minjia Zhang,

Michael D. Bond and

Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY

Hybrid Static-Dynamic Analysis for Statically Bounded Region Serializability

Page 2: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Programming Language Semantics?

•Data Races•C++ no guarantee of semantics – “catch-fire” semantics • Java provides weak semantics

Page 3: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Weak Semantics

T1 T2

a = new A();init = true;

if (init) a.field++;

A a = null;boolean init = false;

Page 4: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Weak Semantics

T1 T2

a = new A();

init = true;

if (init)

a.field++;

No data dependence

Page 5: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Weak Semantics

T1 T2

a = new A();

init = true;

if (init)

a.field++;

A a = null;boolean init = false;

Page 6: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Weak Semantics

T1 T2

init = true;

a = new A();

if (init) a.field++;

Page 7: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Weak Semantics

T1 T2

init = true;

a = new A();

if (init) a.field++;

Null dereference

Page 8: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

DRF0

•Atomicity of synchronization-free regions for data-race-free programs•Data races - no semantics•C++, Java follow variants of DRF0

– Adve and Hill, ISCA, 1990

Page 9: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Need for Stronger Memory Models“The inability to define reasonable semantics for programs with data races is not just a theoretical shortcoming, but a fundamental hole in the foundation of our languages and systems…”

•Give better semantics to programs with data races• Stronger memory models– Adve and Boehm, CACM, 2010

Page 10: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Sequential Consistency (SC)

Shared memory accesses interleave arbitrarily while each thread maintains program order

Page 11: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Sequential Consistency

DRF0 Sequential Consistency

Page 12: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

An Example Program Under SC

T1 T2

buffer[pos++]= 5

buffer[pos++] = 6

int pos = 0 int [ ] buffer

0 0

Page 13: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

An Example Program Under SC

T1 T2

t1 = posbuffer [t1] = 5 t1 = t1 + 1pos = t1

t2 = posbuffer [t2] = 6t2 = t2 + 1pos = t2

0 0int pos = 0 int [ ] buffer

Page 14: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

An Example Program Under SC

T1 T2

t1 = posbuffer [t1] = 5 t1 = t1 + 1

pos = t1

t2 = pos

buffer [t2] = 6

t2 = t2 + 1pos = t2

Time

int pos = 0 int [ ] buffer

0 0

Page 15: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

An Example Program Under SC

T1 T2

t1 = posbuffer [t1] = 5 t1 = t1 + 1

pos = t1

t2 = pos

buffer [t2] = 6

t2 = t2 + 1pos = t2

Time

pos = = 1 buffer

6 0

int pos = 0 int [ ] buffer

0 0

Page 16: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

An Example Program Under SC

T1 T2

buffer[pos++]= 5

buffer[pos++] = 6

pos = = 1 buffer

pos = = 2

buffer

buffer

6 0

5 6 6 5

int pos = 0 int [ ] buffer

0 0

Page 17: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

An Example Program Under SC

T1 T2

buffer[pos++]= 5

buffer[pos++] = 6

SC execution

pos = = 1 buffer6 0

int pos = 0 int [ ] buffer

0 0

Page 18: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Programmer Assumption

Atomicity of high-level operations

Page 19: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Can SC Eliminate Common Concurrency Bugs?

“...programmers do not reason about correctness of parallel code in terms of interleavings of individual memory accesses…”• SC does not prevent common concurrency bugs• Data races dangerous even under SC

– Adve and Boehm, CACM 2010

Page 20: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Run-time cost vs StrengthR

un-t

ime c

ost

Strength1. Ouyang et al. ... and region serializability for all. In HotPar, 2013.

DRF0

Synchronization-free region serializability1

SC

Page 21: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Run-time cost vs StrengthR

un-t

ime c

ost

Strength1. Ouyang et al. ... and region serializability for all. In HotPar, 2013.

DRF0

SC

Synchronization-free region serializability1

Page 22: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Run-time cost vs StrengthR

un-t

ime c

ost

Strength

Statically Bounded Region

Serializability

Page 23: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

ContributionR

un-t

ime c

ost

Strength

Statically Bounded Region

Serializability

EnfoRSer: An analysis to enforce SBRS practically

Evaluation: Low run-time cost, eliminates real bugs

Page 24: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

New Memory Model:Statically Bounded Region Serializability (SBRS)

Page 25: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Program Execution Behaviors

Statically Bounded Region SerializabilitySCDRF0

Page 26: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Statically Bounded Region Serializability (SBRS)

rel(lock)

acq(lock)

methodCall()

Synchronization operationsMethod callsLoop backedges

Page 27: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Statically Bounded Region Serializability (SBRS)

rel(lock)

acq(lock)

methodCall()

Page 28: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Statically Bounded Region Serializability (SBRS)

Statically and

dynamically

bounded

Loopbackedges

Page 29: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Under SBRS

T1 T2

buffer[pos++]= 5

buffer[pos++] = 6

pos = 0 buffer

0 0

Page 30: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Under SBRS

T1 T2

t1 = posbuffer [t1] = 5 t1 = t1 + 1pos = t1

t2 = posbuffer [t2] = 6t2 = t2 + 1pos = t2

pos = 0 buffer

0 0

Page 31: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Under SBRS

T1 T2t1 = posbuffer [t1] = 5 t1 = t1 + 1pos = t1

t1 = posbuffer [t1] = 6 t1 = t1 + 1pos = t1

pos = = 2 buffer

pos = 0 buffer

0 0

5 6

Page 32: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Under SBRS

T1 T2

t1 = posbuffer [t1] = 5 t1 = t1 + 1pos = t1

t1 = posbuffer [t1] = 6 t1 = t1 + 1pos = t1

pos = = 2 buffer

6 5

pos = 0 buffer

0 0

Page 33: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Bug Elimination

x+= 42;

if (o != null) {. . .= o.f; }

buffer[pos++] = val;

read–modify–write

check before use

multi-variable operation

Page 34: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

EnfoRSer: A Hybrid Static- Dynamic Analysis to Enforce

SBRS

Page 35: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

EnfoRSer, an efficient enforcement of SBRS

Compiler Transformation

s

Runtime Enforcement

Two-phase Locking

Page 36: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Basic Mechanism

Y =

= X

Y =

Page 37: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Basic Mechanism

Y =

= X

Y =

Read lock

Write lock

Page 38: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Basic Mechanism

Y =

= X

Y =

Page 39: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Basic Mechanism

Y =

= X

Y =

Program access

Page 40: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Basic Mechanism

Y =

= X

Y =

Ownership transferred

Page 41: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Basic Mechanism

X =

= X

Y =

Page 42: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Basic Mechanism

Y =

= X

Y =

X =

= Y

Z =

T1 T2

Conflict

Page 43: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Basic Mechanism

Y =

= X

Y =

X =

= Y

Z =

T1 T2

Deadlock

Page 44: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Basic Mechanism

Y =

= X

Y =

X =

= Y

Z =

T1 T2

Deadlock

• Lightweight reader-writer locks2

• Biased synchronization

• Lose ownership while acquiring locks

2. Bond et al. Octet: Capturing and Controlling Cross-Thread Dependences Efficiently. In OOPSLA, 2013.

Page 45: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Basic Mechanism

Y =

= X

Y =

X =

= Y

Z =

T1 T2

Ownership transferred

Two-phase locking violated

Page 46: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Basic Mechanism

Y =

= X

Y =

X =

= Y

Z =

T1 T2

Page 47: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Basic Mechanism

Locks acquired

Y =

= X

Y =

Page 48: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Challenges in Basic Mechanism

Y =

= X

Y =

Stores executed

Page 49: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

EnfoRSer Atomicity Transformations

• Idempotent: Defer stores until all locks are acquired

•Speculation: Execute stores speculatively and roll back in case of a conflict

Page 50: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Idempotent Transformation

X =

= Y

X =

Page 51: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Idempotence Transformation

X =

= Y

X =

Page 52: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Idempotence Transformation

= Y

X =

X =

Stores deferred

Page 53: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Idempotence Mechanism

= Y

X =

X =

Conflict

Page 54: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Idempotence Mechanism

= Y

X =

X =

Side-effect free

Page 55: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Idempotence Mechanism

= Y

X =

X =

Execute stores

Page 56: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Idempotence Challenges

= Y

X = …

X =

= X

Page 57: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Idempotence Challenges

= Y

X =

= X

Loads data dependent on stores

Page 58: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Idempotence Challenges

= Y

X =

= Z

Aliasing between loads and

stores

Data dependenc

e?

Page 59: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Speculation Transformation

X =

= Y

X =

Page 60: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Speculation Transformation

X =

= Y

Z = Z = old_Z

X = old_X

old_X = X

old_X = Z

Backup store values

Generate roll-back code

Page 61: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Speculation Mechanism

Z = old_Z

X = old_X

X =

= Y

Z =

old_X = X

old_X = Z

Conflict

Execute roll-back code

Page 62: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Speculation Mechanism

Z = old_Z

X = old_X

X =

= Y

Z =

old_X = X

old_X = Z

Conflict

Page 63: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Speculation Mechanism

Z = old_Z

X =

= Y

Z =

old_X = X

old_X = Z

All locks acquired

X = old_X

Page 64: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Speculation Challenges

= Z

X =Y =

Page 65: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Speculation Challenges

= Z

X =Y =

Executed store

Page 66: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Speculation Challenges

= Z

X =Y =

Executed store

Conflict

Y = old_Y

X = old_X

Page 67: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Similar to Software Transactional Memory (STM)?• Idempotent approach similar to STMs that defer stores until a transaction commits•Speculation approach similar to STMs that execute stores but undo them if a transaction needs to abort

Page 68: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Similar to Software Transactional Memory (STM)?• Idempotent approach similar STMs that defer stores until a transaction commit•Speculation approach similar STMs that undo stores before a transaction abort

EnfoRSerprovides

atomicity of statically bounded regions more

efficiently!

Page 69: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Similar to Software Transactional Memory (STM)?• Idempotent approach similar STMs that defer stores until a transaction commit•Speculation approach similar STMs that undo stores before a transaction abort

EnfoRSerprovides

atomicity of statically bounded regions more

efficiently!

Bounded regions: efficient

code generation Short

regions: conservative conflict detection

Page 70: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Implementation and Evaluation

Page 71: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Implementation

•Developed in Jikes RVM 3.1.3• Code publicly available on Jikes RVM Research Archive

Page 72: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Experimental Methodology

• Benchmarks•DaCapo 2006, 9.12-bach• Fixed-workload versions of SPECjbb2000 and SPECjbb2005

• Platform• AMD Opteron system: 32 cores

Page 73: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Whole-Program Static Analysis

Remove instrumentation from data-race-free accesses[Naik et al.’s 2006 race detection algorithm, Chord]

Page 74: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

eclipse6

hsqldb6

lusearch6

xalan6

avrora9

jython9

luindex9

lusearch9

pmd9

sunflow9

xalan9

pjbb2000

pjbb2005

geomean0

20

40

60

80

100

120

140Idempotent

EnfoRSer: Run-time Performance

% o

verh

ead

over

un

mod

ified

JV

M

32% overhead on average

Page 75: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

eclipse6

hsqldb6

lusearch6

xalan6

avrora9

jython9

luindex9

lusearch9

pmd9

sunflow9

xalan9

pjbb2000

pjbb2005

geomean0

20

40

60

80

100

120

140

Idempotent

Speculation

EnfoRSer: Run-time Performance

% o

verh

ead

over

un

mod

ified

JV

M 27% overhead on average

Page 76: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

eclipse6

hsqldb6

lusearch6

xalan6

avrora9

jython9

luindex9

lusearch9

pmd9

sunflow9

xalan9

pjbb2000

pjbb2005

geomean0

20

40

60

80

100

120

140

Idempotent

Speculation

EnfoRSer: Run-time Performance

% o

verh

ead

over

un

mod

ified

JV

M

pjbb2005, over 100% overhead

Cao et al., WoDet 2014

Page 77: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

eclipse6

hsqldb6

lusearch6

xalan6

avrora9

jython9

luindex9

lusearch9

pmd9

sunflow9

xalan9

pjbb2000

pjbb2005

geomean0

20

40

60

80

100

120

140

IdempotentSpeculationSpeculation via log

EnfoRSer: Run-time Performance

% o

verh

ead

over

un

mod

ified

JV

M

53% overhead on average

(speculation via log)

Page 78: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

EnfoRSer: Run-time Performance

with and without static race detection

% o

verh

ead

over

un

mod

ified

JV

M

0

10

20

30

40

50

60

70

Idempotent

Speculation

Speculation via log

geomeanw race det

geomeanw/o race det

Page 79: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Evaluation: Concurrency Errors Avoidance

SBRS’s potential to eliminate concurrency bugs exposed on relaxed memory models

Page 80: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Avoiding Concurrency ErrorsDRF0 (AM) SC SBRS

hsqldb6 Infinite loop Correct Correct

sunflow9 Null pointer exception

Correct Correct

jbb2000 Corrupt output Corrupt output Correct

jbb2000 Infinite loop Correct Correct

sor Infinite loop Correct Correctlufact Infinite loop Correct Correct

moldyn Infinite loop Correct Correct

raytracer Fails validation Fails validation Correct

AM = Adversarial Memory, Flanagan and Freund, PLDI 2010

Page 81: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Avoiding Concurrency ErrorsDRF0(AM) SC SBRS

hsqldb6 Infinite loop Correct Correct

sunflow9 Null pointer exception

Correct Correct

jbb2000 Corrupt output Corrupt output Correct

jbb2000 Infinite loop Correct Correct

sor Infinite loop Correct Correctlufact Infinite loop Correct Correct

moldyn Infinite loop Correct Correct

raytracer Fails validation Fails validation Correct

AM = Adversarial Memory, Flanagan and Freund, PLDI 2010

Page 82: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Avoiding Concurrency ErrorsDRF0 SC SBRS

hsqldb6 Infinite loop Correct Correct

sunflow9 Null pointer exception

Correct Correct

jbb2000 Corrupt output Corrupt output Correct

jbb2000 Infinite loop Correct Correct

sor Infinite loop Correct Correctlufact Infinite loop Correct Correct

moldyn Infinite loop Correct Correct

raytracer Fails validation Fails validation Correct

AM = Adversarial Memory, Flanagan and Freund, PLDI 2010

Avoids all the errors

exposed by AM.

Page 83: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

Related Work

• Checks conflicts in bounded regionDRFx, Marino et al., PLDI 2010

• Checks conflicts in synchronization-free regionsConflict Exceptions, Lucia et al., ISCA 2010

• Enforces atomicity of bounded regionsBulk Compiler, Ahn et al., MICRO 2009

• Enforces atomicity of synchronization free regions… and region serializability for all, Ouyang et al., HotPar 2013

Requires customized hardware

Requires additional

cores

Page 84: Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically

ConclusionR

un-t

ime c

ost

Strength

Statically Bounded Region

Serializability

EnfoRSer: An analysis to enforce SBRS practically

Evaluation: Low run-time cost, eliminates real bugs