two for the price of one: a model for parallel and incremental computation
DESCRIPTION
Two for the Price of One: A Model for Parallel and Incremental Computation. Thomas Ball, Sebastian Burckhardt, Daan Leijen Microsoft Research – Redmond Caitlin Sadowski, Jaeheon Yi UC Santa Cruz. Expensive, Repeated Tasks. c ompute: deterministic, potentially parallel, no I/O - PowerPoint PPT PresentationTRANSCRIPT
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