chrysalis analysis: incorporating synchronization arcs in dataflow-analysis-based parallel...
DESCRIPTION
Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring. Michelle Goodstein * , Shimin Chen † , Phillip B. Gibbons ‡ , Michael A. Kozuch ‡ and Todd C. Mowry *. * Carnegie Mellon University † HP Labs China ‡ Intel Labs Pittsburgh. Motivation. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/1.jpg)
Chrysalis Analysis: Incorporating Synchronization Arcs in
Dataflow-Analysis-Based Parallel Monitoring
Michelle Goodstein*, Shimin Chen†, Phillip B. Gibbons‡, Michael A. Kozuch‡
and Todd C. Mowry*
*Carnegie Mellon University †HP Labs China
‡Intel Labs Pittsburgh
![Page 2: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/2.jpg)
Michelle Goodstein2
Motivation
• Software bugs are common, even in sequential code• Chip multi-processors increasing importance of parallel software • Parallel software introduces new “species” of bugs• Bugs can lead to crashes, security exploits and other harms to system
We would like to detect bugs before they cause harmOne solution: Monitor programs at runtime using lifeguards
Chrysalis Analysis
![Page 3: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/3.jpg)
Michelle Goodstein3
Update p2’s metadata .
.taint p2
.
.*p2
.
.
Dynamic Program Monitoring
• Application is dynamically monitored by a lifeguard as it runs– Monitors each dynamic instruction
• Lifeguard maintains finite-state machine model of correct execution– Checks metadata to see if program does something wrong
• Ex: Is performing *p2 safe (e.g., is p2 untainted)?
Lifeguard
Update metadata
Application
p1 0
p2
p3 .
p4 .
Metadata: Tainted?
Com
mit
Ord
er
Chrysalis Analysis
01
![Page 4: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/4.jpg)
Michelle Goodstein4
Is *p2 safe ?ERROR:
metadata for p2 tainted
.
.taint p2
.
.*p2
.
.
Dynamic Program Monitoring
• Application is dynamically monitored by a lifeguard as it runs– Monitors each dynamic instruction
• Lifeguard maintains finite-state machine model of correct execution– Checks metadata to see if program does something wrong
• Ex: Is performing *p2 safe (e.g., is p2 untainted)?
Lifeguard
Check metadata
Application
p1 0
p2 1
p3 .
p4 .
Metadata: Tainted?
Com
mit
Ord
er
Chrysalis Analysis
![Page 5: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/5.jpg)
Michelle Goodstein5
.
.
.untaint p
*p..
Dynamically Monitoring Parallel Programs
• Updating metadata straightforward for sequential programs• Intuition: Monitor parallel applications with parallel lifeguards• Parallel apps: inter-thread data dependences complicate lifeguards
– Ideal: Lifeguards process trace in app instructions’ global commit order– Butterfly Analysis [ASPLOS 2010] : No inter-thread data dependences
• Cannot measure using today’s hardware• Relaxed memory consistency models: no total order
Thread 1
.
.
.taint p
.
.
.
.Thread 2
Lifeguard 2Lifeguard 1
Com
mit
Ord
er
Chrysalis Analysis
.
.
.
.
.
.
.
.Thread 0
Lifeguard 0
![Page 6: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/6.jpg)
Michelle Goodstein6
.
.
.untaint p
*p..
Butterfly Analysis: Dynamic Parallel Monitoring
• Butterfly Analysis + Proceed without capturing inter-thread data dependences+ Supports relaxed memory consistency models- Ignores explicit software synchronization
Thread 1
.
.
.taint p
.
.
.
.Thread 2
Lifeguard 2Lifeguard 1
Chrysalis Analysis
.
.
.
.
.
.
.
.Thread 0
Lifeguard 0
Com
mit
Ord
er
![Page 7: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/7.jpg)
Michelle Goodstein7
Chrysalis Analysis: Generic Dynamic Dataflow Analysis Platform
• Generic parallel dynamic dataflow analysis framework– Lifeguards can be built on top of generic dataflow examples– This talk: TaintCheck
• Not only race detection: Analyses robust even when races present• Behaves conservatively but correctly
– When two conflicting metadata values possible, assume worst case• Incorporates high-level synchronization arcs
– Our experiments: 97% reduction in false positives (relative to Butterfly)
Chrysalis Analysis
Lifeguard 2Lifeguard 1Lifeguard 0
.
. lock L
untaint p
*p unlock L
.
Thread 1 Thread 2
.
.
.lock L
taint p: unlock L
.
.Com
mit
Ord
er
.
.
.
.
.
.
.
.
Thread 0
![Page 8: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/8.jpg)
Michelle Goodstein8
Roadmap for Remainder of Talk
• Review of Butterfly Analysis• Highlight key changes to execution model to incorporate sync arcs
– Vector clocks– Asymmetry
• Illustrate research challenges and solutions– Calculating local/global states– Computing side-in/side-out primitives
• Experimental evaluation
Template color coding: Butterfly , Chrysalis
Chrysalis Analysis
![Page 9: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/9.jpg)
Michelle Goodstein9
.
.
.
.
.
.
.
.
.
.
.
.
untaint p*p..
.
.
.
.
.taint p
.
Butterfly Analysis: Fundamentals
• Key Insight: Only consider a window W of uncertainty– W must account for all buffering in pipeline and memory system
• Large relative to ROB, memory access latency• Small relative to total execution
– Our experiments: 1000s-10,000s of instructions/thread
Concurrent region
Occurs strictlybefore *p
.
Chrysalis Analysis
Occurs strictlybefore *p
Com
mit
Ord
er
Concurrent region
Window
![Page 10: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/10.jpg)
10
Butterfly Analysis: Reasoning About Concurrent Regions
Chrysalis Analysis Michelle Goodstein
.
.
.A: untaint p
B: *p..
Thread 1 Thread 2
.
.
.
.C: taint p
.
.
.
.
Com
mit
Ord
er
.
.
.
.
.
.
.
.
Thread 0
Lifeguard 1
Concurrent Region of Execution Traces
Lifeguard must behave conservatively
Three Possible Orderings
A
B
C
p tainted*p unsafe
A
B
C
p untainted*p safe
A
B
C
![Page 11: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/11.jpg)
Michelle Goodstein11
Butterfly Analysis: Ignoring Sync Arcs Causes False Positives
Chrysalis Analysis
.
.D: lock LA: untaint p
B: *pE: unlock L
.
Thread 1 Thread 2
.
.
.F: lock LC: taint pG: unlock L
.
.
.
Com
mit
Ord
er
.
.
.
.
.
.
.
.
Thread 0
Lifeguard 1
Concurrent Region of Execution Traces
Butterfly Analysis considers animpossible interleaving to be valid
.
.D: lock LA: untaint p
B: *pE: unlock L
.
Thread 1 Thread 2
.
.
.F: lock LC: taint pG: unlock L
.
.
.
Com
mit
Ord
er
.
.
.
.
.
.
.
.
Thread 0
Three Possible Orderings
A
B
C
p tainted*p unsafe
A
B
C
p untainted*p safe
A
B
C
![Page 12: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/12.jpg)
Michelle Goodstein12
Chrysalis Analysis: Incorporating Sync Arcs Improves Precision
Chrysalis Analysis
.
.D: lock LA: untaint p
B: *pE: unlock L
.
Thread 1 Thread 2
.
.
.F: lock LC: taint pG: unlock L
.
.
.
Com
mit
Ord
er
.
.
.
.
.
.
.
.
Thread 0
Lifeguard 1
Concurrent Region of Execution Traces
Under all possible orderings, *p safe!
p untainted*p safe
Two Possible Orderings
A
B
CD
E
F
G
A
BC
D
E
F
G
p untainted*p safe
![Page 13: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/13.jpg)
Michelle Goodstein13
Chrysalis Analysis: Incorporating Sync Arcs Into Butterfly Analysis
• Chrysalis Analysis: Generalize Butterfly Analysis to include sync arcs+ Improved precision (compared to Butterfly Analysis)+ Relaxed consistency models OK, no explicit hardware required
• Research challenges solved More complex thread execution model More complex dataflow analysis framework
Chrysalis Analysis
Lifeguard 2Lifeguard 1Lifeguard 0
.
.D: lock LA: untaint p
B: *pE: unlock L
.
Thread 1 Thread 2
.
.
.F: lock LC: taint pG: unlock L
.
.
.
Com
mit
Ord
er
.
.
.
.
.
.
.
.
Thread 0
![Page 14: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/14.jpg)
Michelle Goodstein14
Butterfly Analysis: A Brief Review
Consider an online execution trace
.
.
.
.
.
.
.untaint p
*p.......
.
.
.
.
.taint p
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chrysalis Analysis
Com
mit
Ord
er
![Page 15: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/15.jpg)
Michelle Goodstein15
Butterfly Analysis: Epochs Partition Thread Execution
taint p
untaint p*p
Epoc
h 1
Epoc
h 0
Epoc
h 2
Epoc
h 3
Epoc
h 4
Execution divided into epochs separated by at least W events/thread
Chrysalis Analysis
Com
mit
Ord
er
W
![Page 16: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/16.jpg)
Michelle Goodstein16
Epochs: Reasoning About Concurrency
• From the perspective of the center epoch• Most epochs are non-adjacent
– Instructions in these epochs execute strictly before or strictly after• Two epochs are adjacent to center epoch• 3 epoch window of potentially concurrent instructions
taint p
untaint p*p
Sliding window limited to 3 epochs
W
Relative To Center Epoch
W
untaint p*p
Chrysalis Analysis
Com
mit
Ord
er
![Page 17: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/17.jpg)
Michelle Goodstein17
Tail
Body
Head
Butterfly Analysis: Concurrency Within Three Epoch WindowEp
ochs l
l-1l+
1
Thread t
Wings Wings
Chrysalis Analysis
Com
mit
Ord
er
![Page 18: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/18.jpg)
Michelle Goodstein18
Butterfly Analysis: Parallel Forward Dataflow Analysis
• Extend standard dataflow primitives (In, Out, Gen, Kill)• Introduced two new primitives: Side-Out and Side-In
– Side-Out: Effects of concurrency a block exposes to other threads– Side-In: Effects of concurrency other threads expose to a block
Head
Tail
Body
Epoc
hs ll-1
l+1
Thread t
Wings Wings
Chrysalis Analysis
Com
mit
Ord
er
![Page 19: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/19.jpg)
Michelle Goodstein19
Butterfly Analysis: Parallel Dataflow Analysis
• Extend standard dataflow primitives (In, Out, Gen, Kill)• Introduced two new primitives: Side-Out and Side-In
– Side-Out: Effects of concurrency a block exposes to other threads– Side-In: Effects of concurrency other threads expose to a block
Head
Tail
Body
Epoc
hs ll-1
l+1
Thread t
Wings Wings
Chrysalis Analysis
Com
mit
Ord
er
![Page 20: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/20.jpg)
Michelle Goodstein20
Butterfly Analysis: Parallel Dataflow Analysis
Head
Tail
Body
Epoc
hs ll-1
l+1
Thread t
Wings Wings
• Two-pass lifeguard analysis over 3-epoch sliding window• Lifeguard threads execute in parallel• Maintains state
• Global state: Summarizes earlier epochs outside the window• Local state: Global state augmented with info from the head
Chrysalis Analysis
Com
mit
Ord
er
![Page 21: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/21.jpg)
Michelle Goodstein21
Generalizing Butterfly Analysis: Incorporating Sync Arcs Thread 1 Thread 0
Epoc
h 1
Epoc
h 2
lock Ltaint punlock L
lock Luntaint p
*punlock L
.
.
.
.
.
.
Thread 1 Thread 0
Epoc
h 1
Epoc
h 2
.
.
.
.
.
.
taint p..
.
.untaint p
*p
Chrysalis Analysis
• Butterfly Analysis: p conservatively tainted at *p in Thread 0, epoch 2• If mutual exclusivity is enforced, *p must be untainted!
– Useful ordering information implied by sync also lost
![Page 22: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/22.jpg)
Michelle Goodstein22
Chrysalis Analysis: Incorporating Sync Arcs To Improve Precision
• Goal: Incorporate synchronization-based happens-before arcs
Butterfly Analysis framework not general enough to handle arbitrary arcs…
Thread 1 Thread 0Ep
och
1Ep
och
2.....
.
.
.
.
.
lock Ltaint punlock L
.
.
lock Luntaint p
*punlock L
.
Chrysalis Analysis
Com
mit
Ord
er
![Page 23: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/23.jpg)
Michelle Goodstein23
Chrysalis Analysis: Incorporating Synchronization Arcs
• Goal: Incorporate synchronization-based happens-before arcs • Instrument sync with vector clocks to capture happens-before arcs• Calculate dataflow primitives (In, Out, Side-In, Side-Out, Gen, Kill) at boundaries• Chrysalis Analysis considers p untainted at *p in subblock <2,1>
Thread 1 Thread 0Ep
och
1Ep
och
2lock Ltaint punlock L
lock Luntaint p
*punlock L
.
.
.
.
.
.
<1, 0
>
<0,1
><0
,2>
<0,3
>
<2, 1
><3
, 1>
No longer simple, symmetric graph…
Chrysalis Analysis
Com
mit
Ord
er
Asymmetry causes complexity
![Page 24: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/24.jpg)
Michelle Goodstein24
Butterfly Analysis: Recall Graph Model
Head
Tail
Body
Epoc
hs ll-1
l+1
Thread t
Wings WingsOriginal Butterfly Analysis: From perspective of the body
Com
mit
Ord
er
Chrysalis Analysis
![Page 25: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/25.jpg)
Michelle Goodstein25
Butterfly Analysis: Creating Local State
taint p
untaint p*p
Epoc
hs ll-1
l+1
Thread t
Wings WingsLocal State ( ) calculated by augmenting Global State with effects of Head
Com
mit
Ord
er
Chrysalis Analysis
![Page 26: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/26.jpg)
Michelle Goodstein26
Butterfly Analysis: Calculating Side-Out
taint p
untaint p*p
Epoc
hs ll-1
l+1
Thread t
Wings WingsEach block in the wings has a side-out ( ) generated by lifeguard
p: 1taint: {p}
Com
mit
Ord
er
Chrysalis Analysis
![Page 27: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/27.jpg)
Michelle Goodstein27
Butterfly Analysis: Computing Side-In
taint p
untaint p*p
Epoc
hs ll-1
l+1
Thread t
Wings WingsAll side-out from the wings are combined into one side-in ( )
p:1
p:1taint: {p}
Com
mit
Ord
er
Chrysalis Analysis
![Page 28: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/28.jpg)
Michelle Goodstein28
Chrysalis Analysis: Incorporating Sync Arcs
Head
Tail
Body
Epoc
hs ll-1
l+1
Thread t
Wings WingsIn general: Sync introduces asymmetry/complexity, in body and wings
Chrysalis Analysis
Head
BodyBody
Com
mit
Ord
er
![Page 29: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/29.jpg)
Michelle Goodstein29
Chrysalis Analysis: Calculating Local State
Epoc
hs ll-1
l+1
Thread t
Wings Wings
taint p
untaint p
*p
Highlighted blocks involved in local state computation for body
Chrysalis Analysis
*p
taint pmeet
untaint pp:0untaint:
{p}
Com
mit
Ord
er
p:1taint: {p}
![Page 30: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/30.jpg)
Michelle Goodstein30
Chrysalis Analysis: Calculating Local State
Epoc
hs ll-1
l+1
Thread t
Wings Wings
taint p
untaint p
*p
Calculating local state becomes increasingly complex with more arcs
Chrysalis Analysis
*p meet
Com
mit
Ord
er
![Page 31: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/31.jpg)
Michelle Goodstein31
Chrysalis Analysis: Side-In/Side-Out
Epoc
hs ll-1
l+1
Thread t
Wings Wings
taint p
untaint p
*p
Arcs to/from the body alter the wings for each subblock, and the side-in
Chrysalis Analysis
Com
mit
Ord
er
*p
![Page 32: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/32.jpg)
Michelle Goodstein32
Chrysalis Analysis: Side-In/Side-Out
Epoc
hs ll-1
l+1
Thread t
Wings Wings
taint p
untaint p
*p
Arcs to/from the body alter the wings for each subblock, and the side-in
Chrysalis Analysis
*p
Com
mit
Ord
er
![Page 33: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/33.jpg)
Michelle Goodstein33
Chrysalis Analysis: Side-In/Side-Out
Epoc
hs ll-1
l+1
Thread t
Wings Wings
taint p
untaint p
*p
Arcs to/from the body alter the wings for each subblock, and the side-in
Chrysalis Analysis
*p
Com
mit
Ord
er
![Page 34: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/34.jpg)
Michelle Goodstein34
Chrysalis Analysis: Side-In/Side-Out
Epoc
hs ll-1
l+1
Thread t
Wings Wings
taint p
untaint p
*p
Arcs to/from the body alter the wings for each subblock, and the side-in
Chrysalis Analysis
*p
Com
mit
Ord
er
![Page 35: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/35.jpg)
Michelle Goodstein35
Chrysalis Analysis: Side-In/Side-Out (Reversed Arc)
Epoc
hs ll-1
l+1
Thread t
Wings Wings
taint p
untaint p
*p
Each subblock in the body can have different set of wings
Chrysalis Analysis
*p
Com
mit
Ord
er
![Page 36: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/36.jpg)
Michelle Goodstein36
Contrast: Butterfly vs Chrysalis Analyses
Butterfly Analysis
• Local state: calculate from head• One set of wings/side-in per body• “Simple” epoch summary updates global state
- False positives due to missed synch
Chrysalis Analysis
• Local state: calculate from all predecessors• Wings/side-in differ for each body subblock• Epoch summary must consider partial order
– Includes arcs from epochs l+1 to l [extended epoch]
+ Improved precision
Head
Tail
Body
Epoc
hs ll-1
l+1
Thread t
Wings Wings
Head
Tail
Body
Epoc
hs ll-1
l+1
Thread t
Wings Wings
Chrysalis Analysis
Research Challenges
![Page 37: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/37.jpg)
Michelle Goodstein
Chrysalis Analysis: Parallel Forward Dataflow Analysis With Sync Arcs
• General dataflow analysis framework – 2-pass lifeguards + global state update– Canonical examples: Reaching Definitions, Available Expressions– Memory/Security lifeguards: TaintCheck, AddrCheck
• Provably sound– Framework never misses an error (zero false negatives)
• Efficient analysis – Use dataflow meet to avoid excessive recomputations
Chrysalis Analysis 37
Head
Tail
Body
Epoc
hs ll-1
l+1
Thread t
Wings Wings
Com
mit
Ord
er
![Page 38: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/38.jpg)
Michelle Goodstein38
Experimental Methodology
• Prototype built upon the Log-Based Architecture (LBA) framework [Chen08]
– Full Butterfly & Chrysalis Analysis stacks implemented in software– Simulated hardware on shared-memory CMP using Simics– Used LBA for dynamic instruction traces, inserting epoch boundaries– Used LBA shim library to dynamically instrument synchronization calls
• Measured 2 CMP configurations: {4,8} cores– Corresponds to {2,4} application and {2,4} lifeguard threads
• 4 SPLASH Benchmarks: FFT, FMM, LU, BARNES• Comparison of Butterfly Analysis and Chrysalis Analysis
Chrysalis Analysis
![Page 39: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/39.jpg)
Michelle Goodstein39
Performance Results: Chrysalis Slowdown (relative to Butterfly)
BARNES FFT FMM LU BARNES FFT FMM LU4-CORE (2 app/2 lifeguard) 8-CORE(4 app/4 lifeguard)
0
0.5
1
1.5
2
2.5
3
Chry
salis
Slo
wdo
wn,
Par
alle
l Pha
se (R
elati
ve to
Butt
erfly
)
Average Slowdown: 1.9xChrysalis Analysis
![Page 40: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/40.jpg)
Michelle Goodstein40
Precision Results: Potential Errors, Chrysalis vs Butterfly
Chrysalis Analysis
butte
rfly
chry
salis
butte
rfly
chry
salis
butte
rfly
chry
salis
butte
rfly
chry
salis
butte
rfly
chry
salis
butte
rfly
chry
salis
butte
rfly
chry
salis
butte
rfly
chry
salis
BARNES FFT FMM LU BARNES FFT FMM LU4-core (2 app/2 lifeguard) 8-core (4 app/4 lifeguard)
0
5
10
15
20
25
13
3
62
5
38
9
93
10
1 0 0 0 0 0
12
0
Pote
ntial
Err
ors R
epor
ted
By T
aint
Chec
k
Average Reduction in Reported Errors: 17.9x
9362 38
![Page 41: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/41.jpg)
Michelle Goodstein41
Precision Results: Percent Reduction in Potential Errors
Average Reduction in Reported Errors: 97%Chrysalis Analysis
BARNES FFT FMM LU BARNES FFT FMM LU4-core (2 app/2 lifeguard) 8-core(2 app/2 lifeguard)
80
82
84
86
88
90
92
94
96
98
100
% R
educ
tion
in R
epor
ted
Pote
ntial
Err
ors
(Chr
ysal
is, R
elati
ve to
Butt
erfly
)
![Page 42: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/42.jpg)
Michelle Goodstein42
Chrysalis Analysis: Conclusions and Future Work
• General purpose parallel dynamic dataflow analysis platform• Provably sound (never misses an error)
• Generalization retains advantages of Butterfly Analysis• Supports relaxed memory consistency models• Software framework• No detailed inter-thread data dependence tracking
• TaintCheck Implementation• Large reduction in false positives (average: 17.9x)• Modest relative increase in overhead (average: 1.9x)
• Future work: Build many sophisticated runtime analysis tools in framework
Chrysalis Analysis
![Page 43: Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring](https://reader036.vdocuments.us/reader036/viewer/2022081604/56816930550346895de07aa5/html5/thumbnails/43.jpg)
Questions?