Date post: | 31-Dec-2015 |
Category: |
Documents |
Upload: | mallory-flores |
View: | 13 times |
Download: | 0 times |
Two for the Price of One:A Model for Parallel and Incremental
Computation
Thomas Ball, Sebastian Burckhardt, Daan LeijenMicrosoft Research – Redmond
Caitlin Sadowski, Jaeheon YiUC Santa Cruz
Expensive, Repeated Tasks
• compute: deterministic, potentially parallel, no I/O• mutate: non-deterministic, may perform I/O
Self-Adjusting Computation:record and repeat
Goal of SAC: Incremental ComputationYields Higher Performance
equivalent
Demo: Morph Application
Self-Adjusting Computation:Small Change to Input
Small Changes in Input Produce Small Changes in Output
Record Repeat
Key Observations
• Same abstraction (tasks) can be used for – Parallelism– Self-adjusting computation
• Leverage the work a programmer has done to decompose a large task into parallel subtasks– Data decomposition (partitioning)– Identifying independent and dependent subtasks
Tasks and Tiles: Natural Decomposition for Parallelism and Incrementalism
Out[3]= F (B[1-3],E[1-3])
B E
Out
0 1
2 3
0 1
2 3
0 1
2 3
Tasks and Tiles
Out[3]
B[3]
B[1]
E[3]E[1]
Out[2]
Out[0] Out[1]
0 1
2 3
B[2] E[2]
Results• Simple set of primitives for simultaneously expressing potential
parallel and incremental computation• Algorithm to– record
• control /data dependencies of a deterministic parallel computation and • cache input/output effect of tasks
– repeat• the computation while re-executing only tasks whose dependencies have
changed, • using cached results for unaffected tasks
• Evaluation– 12x to 37x speedup compared to sequential baseline on an
8-core machine