Optimistic Parallelism Benefits from Data Partitioning
Milind Kulkarni, Keshav Pingali, Ganesh Ramanarayanan, Bruce Walter, Kavita Bala and L. Paul Chew
Optimistic Parallelism Benefits from Data Partitioning Milind - - PowerPoint PPT Presentation
Optimistic Parallelism Benefits from Data Partitioning Milind Kulkarni, Keshav Pingali, Ganesh Ramanarayanan, Bruce Walter, Kavita Bala and L. Paul Chew Optimistic Parallelism Benefits from Data Partitioning Milind Kulkarni, Keshav Pingali,
Milind Kulkarni, Keshav Pingali, Ganesh Ramanarayanan, Bruce Walter, Kavita Bala and L. Paul Chew
Milind Kulkarni, Keshav Pingali, Ganesh Ramanarayanan, Bruce Walter, Kavita Bala and L. Paul Chew
3
wl.add(mesh.badTriangles()); while (wl.size() != 0) { Element e = wl.get(); if (e no longer in mesh) continue; Cavity c = new Cavity(e); c.expand(); c.retriangulate(); mesh.update(c); wl.add(c.badTriangles()); }
4
worklist in parallel
must be done at runtime
triangles from worklist
(PLDI ’07)
5
6
7
8
Implementation to support optimistic parallelization of irregular programs
parllelize
Runtime: How to parallelize correctly
“Optimistic Parallelism Requires Abstractions,” PLDI 2007
9
10
wl.add(mesh.badTriangles()); while (wl.size() != 0) { Element e = wl.get(); if (e no longer in mesh) continue; Cavity c = new Cavity(e); c.expand(); c.retriangulate(); mesh.update(c); wl.add(c.badTriangles()); }
11
wl.add(mesh.badTriangles()); foreach Element e in wl { if (e no longer in mesh) continue; Cavity c = new Cavity(e); c.expand(); c.retriangulate(); mesh.update(c); wl.add(c.badTriangles()); }
12
13
14
15
Graph Physical Cores
16
17
Graph Physical Cores
18
Graph Abstract Domain Physical Cores
19
(e.g. triangles in the mesh) are mapped to abstract processors
structure elements
contiguous → likely to be in a single partition
20
21
21
22
22
22
➡ Partitions are effectively “bound” to cores
23
24
25
26
27
28
28
28
support computation partitioning
Library to support data partitioning and/or lock coarsening
change object instantiation
GraphInterface Graph
Conflict Check
PartitionedGraph
Conflict Check
Physically PartitionedGraph
Conflict Check
Physically PartitionedGraph
Lock Coarsening 29
30
31
32
33
1 2 3 4
# of Cores
1 1.5 2 2.5 3
Speedup
OVD LCO PAR GAL
34
1 2 3 4
# of Cores
0.5 1 1.5 2 2.5
Speedup
OVD LCO PAR GAL
35
36
1 2 3 4
# of Cores
0.5 1 1.5 2 2.5 3
Speedup
OVD LCO PAR GAL
1 2 3 4
# of Cores
1 1.4 1.8
Speedup
PAR GAL
37
38
38
38
38