SlideShare une entreprise Scribd logo
1  sur  69
Télécharger pour lire hors ligne
Kinetic Dependence Graphs
M. Amber Hassaan,
Donald Nguyen,
Keshav Pingali
The University of Texas at Austin
Dependence Graph Scheduling
2
Application Programmer
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Dependence Graph Scheduling
3
Application Programmer Compiler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Dependence Graph Scheduling
4
Application Programmer Compiler RuntimeScheduler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Dependence Graph Scheduling
5
Application Programmer Compiler RuntimeScheduler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Dependence Graph Scheduling
6
Application Programmer Compiler RuntimeScheduler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Parallel Task Library
Dependence Graph Scheduling
7
Application Programmer Compiler RuntimeScheduler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Parallel Task Library
Parallel Programming Model
Dependence Graph Scheduling
8
Application Programmer Compiler RuntimeScheduler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Parallel Task Library
Parallel Programming Model
…
Dependence Graph Scheduling
9
σ0
Application Programmer Compiler RuntimeScheduler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Parallel Task Library
Parallel Programming Model
…
Dependence Graph Scheduling
10
G0
σ0
Application Programmer Compiler RuntimeScheduler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Parallel Task Library
Parallel Programming Model
…
Dependence Graph Scheduling
11
G0
σ0
w0
G1
Application Programmer Compiler RuntimeScheduler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Parallel Task Library
Parallel Programming Model
…
Dependence Graph Scheduling
12
G0
σ0
w0
G1
w1 w2
G2
Execute in Parallel
Application Programmer Compiler RuntimeScheduler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Parallel Task Library
Parallel Programming Model
…
Dependence Graph Scheduling
13
G0
σ0
w0
G1
w1 w2 wn-1
G2 Gn…
Application Programmer Compiler RuntimeScheduler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Parallel Task Library
Parallel Programming Model
…
Dependence Graph Scheduling
14
G0
σ0
w0
G1
w1 w2 wn-1
G2 Gn…
w0 σ1
Application Programmer Compiler RuntimeScheduler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Parallel Task Library
Parallel Programming Model
…
Dependence Graph Scheduling
15
G0
σ0
w0
G1
w1 w2 wn-1
G2 Gn…
w0 σ1
w1 w2 wn-1σ2 … σn
Application Programmer Compiler RuntimeScheduler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Parallel Task Library
Parallel Programming Model
…
Dependence Graph Scheduling
16
G0
σ0
w0
G1
w1 w2 wn-1
G2 Gn…
w0 σ1
w1 w2 wn-1σ2 … σn
Scheduler
World
Program
World
Application Programmer Compiler RuntimeScheduler
i
j
1
1
2
3
2 3
A[N,N] = ...
for i in 1:N
for j in 1:N
A[i,j] =
A[i-1,j] + A[i,j-1]
Parallel Task Library
Parallel Programming Model
…
Limitations of Dependence Graphs
• Not always sufficient
– Discrete event simulation
– Billiard ball simulation
– Kruskal’s algorithm for MSTs
– Asynchronous Variational
Integrators
– …
• Ordered algorithms
– Have tasks with algorithm-specific
order in which tasks must appear
to execute
• Can use speculation
– But overheads can be high for
ordered algorithms
17
Discrete Event Simulation
18
2
A
C
B
3
8
Discrete Event Simulation
19
A
C
B
3
8
Discrete Event Simulation
20
4
A
C
B
3
8
Discrete Event Simulation
21
4
A
C
B
3
8
rw-set
Discrete Event Simulation
22
4
A
C
B
3
8
Discrete Event Simulation
23
4
A
C
B
3
8
Discrete Event Simulation
24
4
A
C
B
8
5
Discrete Event Simulation
25
A
C
D
B
3
2
8
Discrete Event Simulation
26
A
C
D
B
3
2
8
Discrete Event Simulation
27
A
C
D
B
3
2 32
8
8
Discrete Event Simulation
28
4
A
C
D
7
B
2 3
8
8
Discrete Event Simulation
29
4
A
C
D
7
B
2 3
4 7
round 0
round 18
8
8
Discrete Event Simulation
30
6A
C
D
B
2 3
4 7
round 0
round 18
8
8
Discrete Event Simulation
31
6A
C
D
B
2 3
4 7
6
round 0
round 1
round 2
8
8
8
8
Discrete Event Simulation
• Inadequacy of dependence graphs
– Tasks are created dynamically
– Not all sources are safe to execute
– Task executionmay require updating DAG
32
6A
C
D
B
2 3
4 7
6
round 0
round 1
round 2
8
8
8
8
• A dependence graph is:
– A DAG G for the program state σ
– An update rule U to produce the next G after
executing task w
• Remove source
33
σ0
w0 w1 w2 wn-1
w0 σ1
w1 w2 wn-1σ2 … σn
G0 G1 G2 Gn…
Execute sources
Dependence
Graph
Dependence Graph
Kinetic Dependence Graph
34
σ0
w0 w1 w2 wn-1
w0 σ1
w1 w2 wn-1σ2 … σn
G0 G1 G2 Gn…
Execute sources
• A kinetic dependence graph is:
– A DAG G for the program state σ
– A safe-source test P
– An update rule U to produce the next G after
executing task w
• Remove source, update other tasks’ dependencies, …
Dependence
Graph
Kinetic Dependence Graph
35
σ0
w0 σ1
w1 w2 wn-1σ2 … σn
• A kinetic dependence graph is:
– A DAG G for the program state σ
– A safe-source test P
– An update rule U to produce the next G after
executing task w
• Remove source, update other tasks’ dependencies, …
<σ0, G0> <σ1, G1> <σ2, G2> <σn, Gn>
w0 w1 w2 wn-1
…
Dependence
Graph
Kinetic
Kinetic Dependence Graph
36
σ0
w0 σ1
w1 w2 wn-1σ2 … σn
• A kinetic dependence graph is:
– A DAG G for the program state σ
– A safe-source test P
– An update rule U to produce the next G after
executing task w
• Remove source, update other tasks’ dependencies, …
<σ0, G0> <σ1, G1> <σ2, G2> <σn, Gn>
w0 w1 w2 wn-1
…
Dependence
Graph
Kinetic
Execute safe sources
Safe Sources
• Application-specific cone of influence
37
time
x
y
Safe Sources
• Application-specific cone of influence
38
time
x
y
Safe Sources
• Application-specific cone of influence
39
• In some algorithms, all sources are safe
– Stable source algorithm
time
x
y
General KDG Executor
40
a,1
c,3 d,4
b,2
General KDG Executor
41
1. Construct
initial DAG
a,1
c,3 d,4
b,2
General KDG Executor
42
1. Construct
initial DAG
a,1 b,2
c,3 d,4
σ0 ,< >
a,1
c,3 d,4
b,2
General KDG Executor
43
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
a,1
c,3 d,4
b,2
General KDG Executor
44
a,1
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
a,1
c,3 d,4
b,2
General KDG Executor
45
a,1
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
a,1
c,3 d,4
b,2
General KDG Executor
46
a,1
c,3 d,4
b,2
a,1
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
a,1
c,3 d,4
b,2
General KDG Executor
47
a,1
c,3 d,4
b,2
a,1
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
b,2
c,3 d,4
,< >
a,1
a,1
c,3 d,4
b,2
General KDG Executor
48
a,1
c,3 d,4
b,2
a,1
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
b,2
c,3 d,4
,< >
a,1
a,1
c,3 d,4
b,2
General KDG Executor
49
a,1
c,3 d,4
b,2
a,1
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
b,2
c,3 d,4
,< >
a,1
a,1
c,3 d,4
b,2
General KDG Executor
50
c,3 d,4
b,2
a,1
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
b,2
c,3 d,4
,< >
a,1
c,3 d,4
b,2
General KDG Executor
51
c,3 d,4
b,2
a,1
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
b,2
c,3 d,4
,< >
a,1
c,3 d,4
b,2
General KDG Executor
52
c,3 d,4
b,2
a,1
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
b,2
c,3 d,4
,< >
a,1
c,3 d,4
b,2
General KDG Executor
53
c,3 d,4
b,2
a,1
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
b,2
c,3 d,4
,< >
a,1
c,3 d,4
b,2
General KDG Executor
54
c,3 d,4
b,2
e,0
a,1
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
b,2
c,3 d,4
e,0
,< >
a,1
c,3 d,4
b,2
General KDG Executor
55
c,3 d,4
b,2
e,0
a,1
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
b,2
c,3 d,4
e,0
,< >
a,1
c,3 d,4
b,2
General KDG Executor
56
c,3 d,4
b,2
e,0
a,1
1. Construct
initial DAG
2. Apply safe
source test
3. Execute
4. Updaterw-sets
5. Add new tasks
a,1 b,2
c,3 d,4
σ0 ,< >
b,2
c,3 d,4
e,0
σ1 ,< >
a,1
a,1
c,3 d,4
b,2
KDG Specializations
• Each step needs a barrier
• Task’s rw-set potentially updated
several times prior to execution
57
Opportunities
KDG Runtime
KDG Specializations
• Each step needs a barrier
• Task’s rw-set potentially updated
several times prior to execution
58
Opportunities Program Properties
Application ProgrammerKDG Runtime
KDG Specializations
• Each step needs a barrier
• Task’s rw-set potentially updated
several times prior to execution
59
• Sources
– In general: safe source test could
inspect entire state
– Local safe source test
– Stable source (sources are safe)
• RW-sets
– In general: task could change
other tasks’ RW-sets
– Non-increasing RW-set
– Structure-based RW-set
• New tasks
– In general: task could create new
tasks at any priority
– Monotonic
– No new tasks
Opportunities Program Properties
Application ProgrammerKDG Runtime
KDG Specializations
• Each step needs a barrier
• Task’s rw-set potentially updated
several times prior to execution
60
• Sources
– In general: safe source test could
inspect entire state
– Local safe source test
– Stable source (sources are safe)
• RW-sets
– In general: task could change
other tasks’ RW-sets
– Non-increasing RW-set
– Structure-based RW-set
• New tasks
– In general: task could create new
tasks at any priority
– Monotonic
– No new tasks
Opportunities Program Properties
• Remove unnecessary barriers
given program properties
• Construct KDG for prefix of tasks
• Use different DAG representations
Specializations
Application ProgrammerKDG Runtime
KDG Specializations
• Each step needs a barrier
• Task’s rw-set potentially updated
several times prior to execution
61
• Sources
– In general: safe source test could
inspect entire state
– Local safe source test
– Stable source (sources are safe)
• RW-sets
– In general: task could change
other tasks’ RW-sets
– Non-increasing RW-set
– Structure-based RW-set
• New tasks
– In general: task could create new
tasks at any priority
– Monotonic
– No new tasks
Opportunities Program Properties
• Remove unnecessary barriers
given program properties
• Construct KDG for prefix of tasks
• Use different DAG representations
Specializations
Application ProgrammerKDG Runtime
KDGs in Action
• Application programmer
– Writes programs with ordered
loops
• Loop body must use provided
data structure library
• Loop properties provided via
annotations
• Loop body must read all
elements before modifying any
(cautious)
• KDG runtime (in Galois
system)
– Uses library API to track rw-
sets at runtime
– Selects executor based on
annotations
62
Graph g = ...
Set<Event> E = ...
@hasStructuredRWSets
@monotonic
foreach Event e in E orderedby e.t
process(e, g)
if *
E.push(newE)
Evaluation
• 7 applications
– From billiards simulation (hard-to-parallelize) to
tree traversal (well supported by prior work)
• 2 types of programs
– Other
• 3rd-party handwritten, application-specific, OpenMP
tasks, Cilk
– KDG-Auto
• Ordered loops + program property annotations
• 40-core, shared-memory machine
63
1
6
11
16
21
26
31
Billiards DES MST AVI
SpeedupoverBestSequential
Other
KDG-Auto
64
n/a
< 1
1
6
11
16
21
26
31
36
41
LU BFS Tree
SpeedupoverBestSequential
Other
KDG-Auto
65
1
6
11
16
21
26
31
36
41
LU BFS Tree
SpeedupoverBestSequential
Other
KDG-Auto
66
OpenMP
tasks
Cilk
Summary
• Problem
– Dependence graph scheduling is insufficient for
many ordered programs
• Solution
– Develop general KDG executor
– Specialize executor according to small number of
programproperties
67
“It is a mistaketo try to look too far ahead. The chain of
destiny can only be grasped one link at a time.”
-Winston Churchill
Kinetic Dependence Graphs
M. Amber Hassaan,
Donald Nguyen,
Keshav Pingali
The University of Texas at Austin
69

Contenu connexe

Tendances

Slicing of Object-Oriented Programs
Slicing of Object-Oriented ProgramsSlicing of Object-Oriented Programs
Slicing of Object-Oriented ProgramsPraveen Penumathsa
 
Time cost optimisation
Time cost optimisationTime cost optimisation
Time cost optimisationCharul Sharma
 
Sw metrics for regression testing
Sw metrics for regression testingSw metrics for regression testing
Sw metrics for regression testingJyotsna Sharma
 
Early Results of OpenMP 4.5 Portability on NVIDIA GPUs & CPUs
Early Results of OpenMP 4.5 Portability on NVIDIA GPUs & CPUsEarly Results of OpenMP 4.5 Portability on NVIDIA GPUs & CPUs
Early Results of OpenMP 4.5 Portability on NVIDIA GPUs & CPUsJeff Larkin
 
PERT AND CPM PROJECT MANAGEMENT
PERT AND CPM PROJECT MANAGEMENTPERT AND CPM PROJECT MANAGEMENT
PERT AND CPM PROJECT MANAGEMENTsalsa moyara
 
Network problem cpm and pert BY MITESH KUMAR
Network problem cpm and pert BY MITESH KUMARNetwork problem cpm and pert BY MITESH KUMAR
Network problem cpm and pert BY MITESH KUMARMitesh Kumar
 
Engineering design process 3rd edition haik solutions manual
Engineering design process 3rd edition haik solutions manualEngineering design process 3rd edition haik solutions manual
Engineering design process 3rd edition haik solutions manualSummerfieldTBL
 
PGA: A Priority-aware Genetic Algorithm for Task Scheduling in Heterogeneous ...
PGA: A Priority-aware Genetic Algorithm for Task Scheduling in Heterogeneous ...PGA: A Priority-aware Genetic Algorithm for Task Scheduling in Heterogeneous ...
PGA: A Priority-aware Genetic Algorithm for Task Scheduling in Heterogeneous ...University of Surrey, United Kingdom
 
Quantitative analysis for business decision- Program Evaluation and Review Te...
Quantitative analysis for business decision- Program Evaluation and Review Te...Quantitative analysis for business decision- Program Evaluation and Review Te...
Quantitative analysis for business decision- Program Evaluation and Review Te...Chandra Shekar Immani
 
Algorithm analysis
Algorithm analysisAlgorithm analysis
Algorithm analysisAkshay Dagar
 
Project network math solution
Project network math solutionProject network math solution
Project network math solutionMd.Nazrul Islam
 
Interactive Verification of Safety-Critical Systems
Interactive Verification of Safety-Critical SystemsInteractive Verification of Safety-Critical Systems
Interactive Verification of Safety-Critical SystemsDaniela Da Cruz
 
Project management teaching
Project management   teachingProject management   teaching
Project management teachingCHIRANJAN SAHA
 
Project management@ ppt doms
Project management@ ppt doms Project management@ ppt doms
Project management@ ppt doms Babasab Patil
 

Tendances (20)

Slicing of Object-Oriented Programs
Slicing of Object-Oriented ProgramsSlicing of Object-Oriented Programs
Slicing of Object-Oriented Programs
 
Time cost optimisation
Time cost optimisationTime cost optimisation
Time cost optimisation
 
Sw metrics for regression testing
Sw metrics for regression testingSw metrics for regression testing
Sw metrics for regression testing
 
Early Results of OpenMP 4.5 Portability on NVIDIA GPUs & CPUs
Early Results of OpenMP 4.5 Portability on NVIDIA GPUs & CPUsEarly Results of OpenMP 4.5 Portability on NVIDIA GPUs & CPUs
Early Results of OpenMP 4.5 Portability on NVIDIA GPUs & CPUs
 
PERT AND CPM PROJECT MANAGEMENT
PERT AND CPM PROJECT MANAGEMENTPERT AND CPM PROJECT MANAGEMENT
PERT AND CPM PROJECT MANAGEMENT
 
(Aoa) and (aon) networks
(Aoa) and (aon) networks(Aoa) and (aon) networks
(Aoa) and (aon) networks
 
Network problem cpm and pert BY MITESH KUMAR
Network problem cpm and pert BY MITESH KUMARNetwork problem cpm and pert BY MITESH KUMAR
Network problem cpm and pert BY MITESH KUMAR
 
CPM-Updating
CPM-UpdatingCPM-Updating
CPM-Updating
 
Spm
SpmSpm
Spm
 
Chap003
Chap003Chap003
Chap003
 
Engineering design process 3rd edition haik solutions manual
Engineering design process 3rd edition haik solutions manualEngineering design process 3rd edition haik solutions manual
Engineering design process 3rd edition haik solutions manual
 
PGA: A Priority-aware Genetic Algorithm for Task Scheduling in Heterogeneous ...
PGA: A Priority-aware Genetic Algorithm for Task Scheduling in Heterogeneous ...PGA: A Priority-aware Genetic Algorithm for Task Scheduling in Heterogeneous ...
PGA: A Priority-aware Genetic Algorithm for Task Scheduling in Heterogeneous ...
 
Quantitative analysis for business decision- Program Evaluation and Review Te...
Quantitative analysis for business decision- Program Evaluation and Review Te...Quantitative analysis for business decision- Program Evaluation and Review Te...
Quantitative analysis for business decision- Program Evaluation and Review Te...
 
Algorithm analysis
Algorithm analysisAlgorithm analysis
Algorithm analysis
 
Project network math solution
Project network math solutionProject network math solution
Project network math solution
 
Interactive Verification of Safety-Critical Systems
Interactive Verification of Safety-Critical SystemsInteractive Verification of Safety-Critical Systems
Interactive Verification of Safety-Critical Systems
 
Networktechniques
NetworktechniquesNetworktechniques
Networktechniques
 
Management Network Lec 3
Management Network Lec 3Management Network Lec 3
Management Network Lec 3
 
Project management teaching
Project management   teachingProject management   teaching
Project management teaching
 
Project management@ ppt doms
Project management@ ppt doms Project management@ ppt doms
Project management@ ppt doms
 

Similaire à Kinetic Dependence Graphs

CS-102 DS-class_01_02 Lectures Data .pdf
CS-102 DS-class_01_02 Lectures Data .pdfCS-102 DS-class_01_02 Lectures Data .pdf
CS-102 DS-class_01_02 Lectures Data .pdfssuser034ce1
 
1LocationFixed CostsVariable Costs per unitA=BB=CC=DA$85,000260006.docx
1LocationFixed CostsVariable Costs per unitA=BB=CC=DA$85,000260006.docx1LocationFixed CostsVariable Costs per unitA=BB=CC=DA$85,000260006.docx
1LocationFixed CostsVariable Costs per unitA=BB=CC=DA$85,000260006.docxdrennanmicah
 
Lecture - Project, Planning and Control.pdf
Lecture - Project, Planning and Control.pdfLecture - Project, Planning and Control.pdf
Lecture - Project, Planning and Control.pdflucky141651
 
Algorithm analysis
Algorithm analysisAlgorithm analysis
Algorithm analysissumitbardhan
 
Scheduling Problems Complete the following problems covering pro.docx
Scheduling Problems Complete the following problems covering pro.docxScheduling Problems Complete the following problems covering pro.docx
Scheduling Problems Complete the following problems covering pro.docxkenjordan97598
 
Algorithm analysis basics - Seven Functions/Big-Oh/Omega/Theta
Algorithm analysis basics - Seven Functions/Big-Oh/Omega/ThetaAlgorithm analysis basics - Seven Functions/Big-Oh/Omega/Theta
Algorithm analysis basics - Seven Functions/Big-Oh/Omega/ThetaPriyanka Rana
 
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...StHack
 
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...Jonathan Salwan
 
Time-Evolving Graph Processing On Commodity Clusters
Time-Evolving Graph Processing On Commodity ClustersTime-Evolving Graph Processing On Commodity Clusters
Time-Evolving Graph Processing On Commodity ClustersJen Aman
 
Pert & cpm project management
Pert & cpm   project managementPert & cpm   project management
Pert & cpm project managementRahul Dubey
 
4.13 explanatory case on program evaluation and review technique under networ...
4.13 explanatory case on program evaluation and review technique under networ...4.13 explanatory case on program evaluation and review technique under networ...
4.13 explanatory case on program evaluation and review technique under networ...Vishal Tidake
 
2018,sem7,ala,pm,160993119017,160993119018,160993119019,160993119020,16099311...
2018,sem7,ala,pm,160993119017,160993119018,160993119019,160993119020,16099311...2018,sem7,ala,pm,160993119017,160993119018,160993119019,160993119020,16099311...
2018,sem7,ala,pm,160993119017,160993119018,160993119019,160993119020,16099311...Siddharth Modi
 
Time-evolving Graph Processing on Commodity Clusters: Spark Summit East talk ...
Time-evolving Graph Processing on Commodity Clusters: Spark Summit East talk ...Time-evolving Graph Processing on Commodity Clusters: Spark Summit East talk ...
Time-evolving Graph Processing on Commodity Clusters: Spark Summit East talk ...Spark Summit
 
Full Stack Visualization: Build A React App With A Sankey Diagram
Full Stack Visualization: Build A React App With A Sankey DiagramFull Stack Visualization: Build A React App With A Sankey Diagram
Full Stack Visualization: Build A React App With A Sankey DiagramNeo4j
 
Chapter One.pdf
Chapter One.pdfChapter One.pdf
Chapter One.pdfabay golla
 

Similaire à Kinetic Dependence Graphs (20)

CS-102 DS-class_01_02 Lectures Data .pdf
CS-102 DS-class_01_02 Lectures Data .pdfCS-102 DS-class_01_02 Lectures Data .pdf
CS-102 DS-class_01_02 Lectures Data .pdf
 
1LocationFixed CostsVariable Costs per unitA=BB=CC=DA$85,000260006.docx
1LocationFixed CostsVariable Costs per unitA=BB=CC=DA$85,000260006.docx1LocationFixed CostsVariable Costs per unitA=BB=CC=DA$85,000260006.docx
1LocationFixed CostsVariable Costs per unitA=BB=CC=DA$85,000260006.docx
 
Lecture - Project, Planning and Control.pdf
Lecture - Project, Planning and Control.pdfLecture - Project, Planning and Control.pdf
Lecture - Project, Planning and Control.pdf
 
Algorithm analysis
Algorithm analysisAlgorithm analysis
Algorithm analysis
 
Scheduling Problems Complete the following problems covering pro.docx
Scheduling Problems Complete the following problems covering pro.docxScheduling Problems Complete the following problems covering pro.docx
Scheduling Problems Complete the following problems covering pro.docx
 
EM Assignment 3.docx
EM Assignment 3.docxEM Assignment 3.docx
EM Assignment 3.docx
 
LMmanual.pdf
LMmanual.pdfLMmanual.pdf
LMmanual.pdf
 
Algorithm analysis basics - Seven Functions/Big-Oh/Omega/Theta
Algorithm analysis basics - Seven Functions/Big-Oh/Omega/ThetaAlgorithm analysis basics - Seven Functions/Big-Oh/Omega/Theta
Algorithm analysis basics - Seven Functions/Big-Oh/Omega/Theta
 
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
 
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...
 
Time-Evolving Graph Processing On Commodity Clusters
Time-Evolving Graph Processing On Commodity ClustersTime-Evolving Graph Processing On Commodity Clusters
Time-Evolving Graph Processing On Commodity Clusters
 
Pert & cpm project management
Pert & cpm   project managementPert & cpm   project management
Pert & cpm project management
 
software testing
software testingsoftware testing
software testing
 
4.13 explanatory case on program evaluation and review technique under networ...
4.13 explanatory case on program evaluation and review technique under networ...4.13 explanatory case on program evaluation and review technique under networ...
4.13 explanatory case on program evaluation and review technique under networ...
 
CG-Orientation ppt.pptx
CG-Orientation ppt.pptxCG-Orientation ppt.pptx
CG-Orientation ppt.pptx
 
2018,sem7,ala,pm,160993119017,160993119018,160993119019,160993119020,16099311...
2018,sem7,ala,pm,160993119017,160993119018,160993119019,160993119020,16099311...2018,sem7,ala,pm,160993119017,160993119018,160993119019,160993119020,16099311...
2018,sem7,ala,pm,160993119017,160993119018,160993119019,160993119020,16099311...
 
Time-evolving Graph Processing on Commodity Clusters: Spark Summit East talk ...
Time-evolving Graph Processing on Commodity Clusters: Spark Summit East talk ...Time-evolving Graph Processing on Commodity Clusters: Spark Summit East talk ...
Time-evolving Graph Processing on Commodity Clusters: Spark Summit East talk ...
 
G quiz
G quizG quiz
G quiz
 
Full Stack Visualization: Build A React App With A Sankey Diagram
Full Stack Visualization: Build A React App With A Sankey DiagramFull Stack Visualization: Build A React App With A Sankey Diagram
Full Stack Visualization: Build A React App With A Sankey Diagram
 
Chapter One.pdf
Chapter One.pdfChapter One.pdf
Chapter One.pdf
 

Dernier

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 

Dernier (20)

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 

Kinetic Dependence Graphs

  • 1. Kinetic Dependence Graphs M. Amber Hassaan, Donald Nguyen, Keshav Pingali The University of Texas at Austin
  • 2. Dependence Graph Scheduling 2 Application Programmer A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1]
  • 3. Dependence Graph Scheduling 3 Application Programmer Compiler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1]
  • 4. Dependence Graph Scheduling 4 Application Programmer Compiler RuntimeScheduler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1]
  • 5. Dependence Graph Scheduling 5 Application Programmer Compiler RuntimeScheduler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1]
  • 6. Dependence Graph Scheduling 6 Application Programmer Compiler RuntimeScheduler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1] Parallel Task Library
  • 7. Dependence Graph Scheduling 7 Application Programmer Compiler RuntimeScheduler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1] Parallel Task Library Parallel Programming Model
  • 8. Dependence Graph Scheduling 8 Application Programmer Compiler RuntimeScheduler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1] Parallel Task Library Parallel Programming Model …
  • 9. Dependence Graph Scheduling 9 σ0 Application Programmer Compiler RuntimeScheduler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1] Parallel Task Library Parallel Programming Model …
  • 10. Dependence Graph Scheduling 10 G0 σ0 Application Programmer Compiler RuntimeScheduler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1] Parallel Task Library Parallel Programming Model …
  • 11. Dependence Graph Scheduling 11 G0 σ0 w0 G1 Application Programmer Compiler RuntimeScheduler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1] Parallel Task Library Parallel Programming Model …
  • 12. Dependence Graph Scheduling 12 G0 σ0 w0 G1 w1 w2 G2 Execute in Parallel Application Programmer Compiler RuntimeScheduler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1] Parallel Task Library Parallel Programming Model …
  • 13. Dependence Graph Scheduling 13 G0 σ0 w0 G1 w1 w2 wn-1 G2 Gn… Application Programmer Compiler RuntimeScheduler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1] Parallel Task Library Parallel Programming Model …
  • 14. Dependence Graph Scheduling 14 G0 σ0 w0 G1 w1 w2 wn-1 G2 Gn… w0 σ1 Application Programmer Compiler RuntimeScheduler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1] Parallel Task Library Parallel Programming Model …
  • 15. Dependence Graph Scheduling 15 G0 σ0 w0 G1 w1 w2 wn-1 G2 Gn… w0 σ1 w1 w2 wn-1σ2 … σn Application Programmer Compiler RuntimeScheduler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1] Parallel Task Library Parallel Programming Model …
  • 16. Dependence Graph Scheduling 16 G0 σ0 w0 G1 w1 w2 wn-1 G2 Gn… w0 σ1 w1 w2 wn-1σ2 … σn Scheduler World Program World Application Programmer Compiler RuntimeScheduler i j 1 1 2 3 2 3 A[N,N] = ... for i in 1:N for j in 1:N A[i,j] = A[i-1,j] + A[i,j-1] Parallel Task Library Parallel Programming Model …
  • 17. Limitations of Dependence Graphs • Not always sufficient – Discrete event simulation – Billiard ball simulation – Kruskal’s algorithm for MSTs – Asynchronous Variational Integrators – … • Ordered algorithms – Have tasks with algorithm-specific order in which tasks must appear to execute • Can use speculation – But overheads can be high for ordered algorithms 17
  • 29. Discrete Event Simulation 29 4 A C D 7 B 2 3 4 7 round 0 round 18 8 8
  • 30. Discrete Event Simulation 30 6A C D B 2 3 4 7 round 0 round 18 8 8
  • 31. Discrete Event Simulation 31 6A C D B 2 3 4 7 6 round 0 round 1 round 2 8 8 8 8
  • 32. Discrete Event Simulation • Inadequacy of dependence graphs – Tasks are created dynamically – Not all sources are safe to execute – Task executionmay require updating DAG 32 6A C D B 2 3 4 7 6 round 0 round 1 round 2 8 8 8 8
  • 33. • A dependence graph is: – A DAG G for the program state σ – An update rule U to produce the next G after executing task w • Remove source 33 σ0 w0 w1 w2 wn-1 w0 σ1 w1 w2 wn-1σ2 … σn G0 G1 G2 Gn… Execute sources Dependence Graph Dependence Graph
  • 34. Kinetic Dependence Graph 34 σ0 w0 w1 w2 wn-1 w0 σ1 w1 w2 wn-1σ2 … σn G0 G1 G2 Gn… Execute sources • A kinetic dependence graph is: – A DAG G for the program state σ – A safe-source test P – An update rule U to produce the next G after executing task w • Remove source, update other tasks’ dependencies, … Dependence Graph
  • 35. Kinetic Dependence Graph 35 σ0 w0 σ1 w1 w2 wn-1σ2 … σn • A kinetic dependence graph is: – A DAG G for the program state σ – A safe-source test P – An update rule U to produce the next G after executing task w • Remove source, update other tasks’ dependencies, … <σ0, G0> <σ1, G1> <σ2, G2> <σn, Gn> w0 w1 w2 wn-1 … Dependence Graph Kinetic
  • 36. Kinetic Dependence Graph 36 σ0 w0 σ1 w1 w2 wn-1σ2 … σn • A kinetic dependence graph is: – A DAG G for the program state σ – A safe-source test P – An update rule U to produce the next G after executing task w • Remove source, update other tasks’ dependencies, … <σ0, G0> <σ1, G1> <σ2, G2> <σn, Gn> w0 w1 w2 wn-1 … Dependence Graph Kinetic Execute safe sources
  • 37. Safe Sources • Application-specific cone of influence 37 time x y
  • 38. Safe Sources • Application-specific cone of influence 38 time x y
  • 39. Safe Sources • Application-specific cone of influence 39 • In some algorithms, all sources are safe – Stable source algorithm time x y
  • 41. General KDG Executor 41 1. Construct initial DAG a,1 c,3 d,4 b,2
  • 42. General KDG Executor 42 1. Construct initial DAG a,1 b,2 c,3 d,4 σ0 ,< > a,1 c,3 d,4 b,2
  • 43. General KDG Executor 43 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > a,1 c,3 d,4 b,2
  • 44. General KDG Executor 44 a,1 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > a,1 c,3 d,4 b,2
  • 45. General KDG Executor 45 a,1 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > a,1 c,3 d,4 b,2
  • 46. General KDG Executor 46 a,1 c,3 d,4 b,2 a,1 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > a,1 c,3 d,4 b,2
  • 47. General KDG Executor 47 a,1 c,3 d,4 b,2 a,1 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > b,2 c,3 d,4 ,< > a,1 a,1 c,3 d,4 b,2
  • 48. General KDG Executor 48 a,1 c,3 d,4 b,2 a,1 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > b,2 c,3 d,4 ,< > a,1 a,1 c,3 d,4 b,2
  • 49. General KDG Executor 49 a,1 c,3 d,4 b,2 a,1 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > b,2 c,3 d,4 ,< > a,1 a,1 c,3 d,4 b,2
  • 50. General KDG Executor 50 c,3 d,4 b,2 a,1 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > b,2 c,3 d,4 ,< > a,1 c,3 d,4 b,2
  • 51. General KDG Executor 51 c,3 d,4 b,2 a,1 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > b,2 c,3 d,4 ,< > a,1 c,3 d,4 b,2
  • 52. General KDG Executor 52 c,3 d,4 b,2 a,1 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > b,2 c,3 d,4 ,< > a,1 c,3 d,4 b,2
  • 53. General KDG Executor 53 c,3 d,4 b,2 a,1 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > b,2 c,3 d,4 ,< > a,1 c,3 d,4 b,2
  • 54. General KDG Executor 54 c,3 d,4 b,2 e,0 a,1 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > b,2 c,3 d,4 e,0 ,< > a,1 c,3 d,4 b,2
  • 55. General KDG Executor 55 c,3 d,4 b,2 e,0 a,1 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > b,2 c,3 d,4 e,0 ,< > a,1 c,3 d,4 b,2
  • 56. General KDG Executor 56 c,3 d,4 b,2 e,0 a,1 1. Construct initial DAG 2. Apply safe source test 3. Execute 4. Updaterw-sets 5. Add new tasks a,1 b,2 c,3 d,4 σ0 ,< > b,2 c,3 d,4 e,0 σ1 ,< > a,1 a,1 c,3 d,4 b,2
  • 57. KDG Specializations • Each step needs a barrier • Task’s rw-set potentially updated several times prior to execution 57 Opportunities KDG Runtime
  • 58. KDG Specializations • Each step needs a barrier • Task’s rw-set potentially updated several times prior to execution 58 Opportunities Program Properties Application ProgrammerKDG Runtime
  • 59. KDG Specializations • Each step needs a barrier • Task’s rw-set potentially updated several times prior to execution 59 • Sources – In general: safe source test could inspect entire state – Local safe source test – Stable source (sources are safe) • RW-sets – In general: task could change other tasks’ RW-sets – Non-increasing RW-set – Structure-based RW-set • New tasks – In general: task could create new tasks at any priority – Monotonic – No new tasks Opportunities Program Properties Application ProgrammerKDG Runtime
  • 60. KDG Specializations • Each step needs a barrier • Task’s rw-set potentially updated several times prior to execution 60 • Sources – In general: safe source test could inspect entire state – Local safe source test – Stable source (sources are safe) • RW-sets – In general: task could change other tasks’ RW-sets – Non-increasing RW-set – Structure-based RW-set • New tasks – In general: task could create new tasks at any priority – Monotonic – No new tasks Opportunities Program Properties • Remove unnecessary barriers given program properties • Construct KDG for prefix of tasks • Use different DAG representations Specializations Application ProgrammerKDG Runtime
  • 61. KDG Specializations • Each step needs a barrier • Task’s rw-set potentially updated several times prior to execution 61 • Sources – In general: safe source test could inspect entire state – Local safe source test – Stable source (sources are safe) • RW-sets – In general: task could change other tasks’ RW-sets – Non-increasing RW-set – Structure-based RW-set • New tasks – In general: task could create new tasks at any priority – Monotonic – No new tasks Opportunities Program Properties • Remove unnecessary barriers given program properties • Construct KDG for prefix of tasks • Use different DAG representations Specializations Application ProgrammerKDG Runtime
  • 62. KDGs in Action • Application programmer – Writes programs with ordered loops • Loop body must use provided data structure library • Loop properties provided via annotations • Loop body must read all elements before modifying any (cautious) • KDG runtime (in Galois system) – Uses library API to track rw- sets at runtime – Selects executor based on annotations 62 Graph g = ... Set<Event> E = ... @hasStructuredRWSets @monotonic foreach Event e in E orderedby e.t process(e, g) if * E.push(newE)
  • 63. Evaluation • 7 applications – From billiards simulation (hard-to-parallelize) to tree traversal (well supported by prior work) • 2 types of programs – Other • 3rd-party handwritten, application-specific, OpenMP tasks, Cilk – KDG-Auto • Ordered loops + program property annotations • 40-core, shared-memory machine 63
  • 64. 1 6 11 16 21 26 31 Billiards DES MST AVI SpeedupoverBestSequential Other KDG-Auto 64 n/a < 1
  • 67. Summary • Problem – Dependence graph scheduling is insufficient for many ordered programs • Solution – Develop general KDG executor – Specialize executor according to small number of programproperties 67 “It is a mistaketo try to look too far ahead. The chain of destiny can only be grasped one link at a time.” -Winston Churchill
  • 68. Kinetic Dependence Graphs M. Amber Hassaan, Donald Nguyen, Keshav Pingali The University of Texas at Austin
  • 69. 69