Dynamic Tracing: Memoization of Task Graphs for Dynamic Task-based Runtimes

Publication image

Many recent programming systems for both supercomputing and data center workloads generate task graphs to express computations that run on parallel and distributed machines. Due to the overhead associated with constructing these graphs the dependence analysis that generates them is often statically computed and memoized, and the resulting graph executed repeatedly at runtime. However, many applications require a dynamic dependence analysis due to data dependent behavior, but there are new challenges in capturing and re-executing task graphs at runtime. In this work, we introduce dynamic tracing, a technique to capture a dynamic dependence analysis of a trace that generates a task graph, and replay it. We show that an implementation of dynamic tracing improves strong scaling by an average of 4.9× and up to 7.0× on a suite of already optimized benchmarks.

Authors

Wonchan Lee (Stanford University)
Elliott Slaughter (SLAC National Accelerator Laboratory)
Sean Treichler (NVIDIA)
Todd Warszawski (Stanford University)
Alex Aiken (Stanford University)

Publication Date

Uploaded Files