Abstract : The dataflow programming model has shown to be a relevant approach to efficiently run mas-sively parallel applications over many-core architectures. In this model, some particular builtin agents are in charge of data reorganizations between user agents. Such agents can Split, Join and Duplicate data onto their communication ports. They are widely used in signal processing for example. These system agents, and their associated implementations, are of major impor-tance when it comes to performance, because they can stand on the critical path (think about Amdhal's law). Furthermore, a particular data reorganization can be expressed by the devel-oper in several ways that may lead to inefficient solutions (mostly unneeded data copies and transfers). In this paper, we propose several strategies to manage data reorganization at compile time, with a focus on indexed accesses to shared buffers to avoid data copies. These strategies are complementary: they ensure correctness for each system agent configuration, as well as performance when possible. They have been implemented within the Sigma-C industry-grade compilation toolchain and evaluated over the Kalray MPPA 256-core processor.
https://hal.inria.fr/hal-01071474 Contributor : Loïc CudennecConnect in order to contact the contributor Submitted on : Tuesday, October 14, 2014 - 12:56:35 PM Last modification on : Thursday, February 17, 2022 - 10:08:04 AM Long-term archiving on: : Friday, April 14, 2017 - 12:27:22 PM
Loïc Cudennec, Paul Dubrulle, François Galea, Thierry Goubier, Renaud Sirdey. Generating Code and Memory Buffers to Reorganize Data on Many-core Architectures. International Conference on Computational Science (ICCS 2014), Jun 2014, Cairns, Australia. pp.1123 - 1133, ⟨10.1016/j.procs.2014.05.101⟩. ⟨hal-01071474⟩