Couillard: Parallel programming via coarse-grained Data-flow Compilation

dc.contributor.author Marzulo,LAJ en
dc.contributor.author Alves,TAO en
dc.contributor.author Franca,FMG en
dc.contributor.author Vítor Santos Costa en
dc.date.accessioned 2017-11-20T10:54:31Z
dc.date.available 2017-11-20T10:54:31Z
dc.date.issued 2014 en
dc.description.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 Trebuchet. We have observed that TALM's usefulness largely depends on how programmers specify and connect super-instructions. Thus, we present 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. More specifically, for an application that follows the wavefront method, running with big inputs, Trebuchet achieved up to 4.7% speedup over Intel (R) TBB novel flow-graph approach and up to 44% over OpenMP. en
dc.identifier.uri http://repositorio.inesctec.pt/handle/123456789/3665
dc.identifier.uri http://dx.doi.org/10.1016/j.parco.2014.10.002 en
dc.language eng en
dc.relation 5129 en
dc.rights info:eu-repo/semantics/openAccess en
dc.title Couillard: Parallel programming via coarse-grained Data-flow Compilation en
dc.type article en
dc.type Publication en
Files