Chunks and Tasks: a programming model for parallelization of dynamic algorithms
Emanuel H. Rubensson, Elias Rudberg

TL;DR
The paper introduces Chunks and Tasks, a parallel programming model that simplifies dynamic algorithm parallelization by abstracting data and work distribution, aiming for high performance and user-friendliness.
Contribution
It presents a novel programming model with abstractions for data and work, along with a C++ library implementation for efficient parallel execution.
Findings
Demonstrated performance on sparse matrix multiplication
Achieved high efficiency with dynamic data and work distribution
Facilitated development of complex parallel applications
Abstract
We propose Chunks and Tasks, a parallel programming model built on abstractions for both data and work. The application programmer specifies how data and work can be split into smaller pieces, chunks and tasks, respectively. The Chunks and Tasks library maps the chunks and tasks to physical resources. In this way we seek to combine user friendliness with high performance. An application programmer can express a parallel algorithm using a few simple building blocks, defining data and work objects and their relationships. No explicit communication calls are needed; the distribution of both work and data is handled by the Chunks and Tasks library. This makes efficient implementation of complex applications that require dynamic distribution of work and data easier. At the same time, Chunks and Tasks imposes restrictions on data access and task dependencies that facilitates the development…
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.
