Couillard: Parallel Programming via Coarse-Grained Data-Flow Compilation
Leandro A. J. Marzulo, Tiago A. O. Alves, Felipe M. G. Fran\c{c}a,, V\'itor Santos Costa

TL;DR
Couillard is a compiler that simplifies parallel programming by translating annotated C code into a data-flow graph and super-instruction code, enabling efficient coarse-grained parallelism on multi-core systems.
Contribution
It introduces Couillard, a compiler that automates data-flow graph creation from annotated C programs, facilitating easier and effective parallel programming.
Findings
Achieved competitive speedups on real applications.
Enabled easier parallel programming with small effort.
Demonstrated effectiveness on large multi-core machines.
Abstract
Data-flow is a natural approach to parallelism. However, describing dependencies and control between fine-grained data-flow tasks can be complex and present unwanted overheads. TALM (TALM is an Architecture and Language for Multi-threading) introduces a user-defined coarse-grained parallel data-flow model, where programmers identify code blocks, called super-instructions, to be run in parallel and connect them in a data-flow graph. TALM has been implemented as a hybrid Von Neumann/data-flow execution system: the \emph{Trebuchet}. We have observed that TALM's usefulness largely depends on how programmers specify and connect super-instructions. Thus, we present \emph{Couillard}, a full compiler that creates, based on an annotated C-program, a data-flow graph and C-code corresponding to each super-instruction. We show that our toolchain allows one to benefit from data-flow execution and…
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 · Advanced Data Storage Technologies · Interconnection Networks and Systems
