English

Couillard: Parallel Programming via Coarse-Grained Data-Flow Compilation

Distributed, Parallel, and Cluster Computing 2011-09-23 v1

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 explore sophisticated parallel programming techniques, with small effort. To evaluate our system we have executed a set of real applications on a large multi-core machine. Comparison with popular parallel programming methods shows competitive speedups, while providing an easier parallel programing approach.

Keywords

Cite

@article{arxiv.1109.4925,
  title  = {Couillard: Parallel Programming via Coarse-Grained Data-Flow Compilation},
  author = {Leandro A. J. Marzulo and Tiago A. O. Alves and Felipe M. G. França and Vítor Santos Costa},
  journal= {arXiv preprint arXiv:1109.4925},
  year   = {2011}
}

Comments

10 pages, 5 figures

R2 v1 2026-06-21T19:09:02.731Z