100 likes | 189 Views
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
E N D
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 • compute: deterministic, potentially parallel, no I/O • mutate: non-deterministic, may perform I/O
Self-Adjusting Computation:recordand repeat equivalent Goal of SAC: Incremental Computation Yields Higher Performance
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 B E 0 0 1 1 2 2 3 3 0 1 Out[3]= F (B[1-3],E[1-3]) Out 2 3
Tasks and Tiles 1 0 B[3] E[3] E[1] B[1] 3 2 Out[3] Out[2] Out[0] Out[1] 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