Accelerating Task-based Iterative Applications
David \'Alvarez, Vicen\c{c} Beltran

TL;DR
This paper introduces taskiter, a construct for OmpSs-2 and OpenMP that reuses cyclic task graphs to reduce overheads in iterative applications, achieving significant speedups.
Contribution
It proposes taskiter and a heuristic to efficiently reuse task graphs in iterative applications, reducing overheads and improving performance in task-based programming models.
Findings
Average speedup of 3.7x over OmpSs-2
Up to 7.46x speedup over GCC OpenMP
Effective in small task granularities
Abstract
Task-based programming models have risen in popularity as an alternative to traditional fork-join parallelism. They are better suited to write applications with irregular parallelism that can present load imbalance. However, these programming models suffer from overheads related to task creation, scheduling and dependency management, limiting performance and scalability when tasks become too small. At the same time, many HPC applications implement iterative methods or multi-step simulations that create the same directed acyclic graphs of tasks on each iteration. By giving application programmers a way to express that a specific loop is creating the same task pattern on each iteration, we can create a single task DAG once and transform it into a cyclic graph. This cyclic graph is then reused for successive iterations, minimizing task creation and dependency management overhead. This…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems · Cloud Computing and Resource Management
