Memory access classification for vertical task parallelism

Jens Gustedt 1 Maxime Mogé 1
1 CAMUS - Compilation pour les Architectures MUlti-coeurS
Inria Nancy - Grand Est, ICube - Laboratoire des sciences de l'ingénieur, de l'informatique et de l'imagerie
Abstract : We present a paradigm and implementation of a parallel control flow model for algorithmic patterns of two nested loops; an outer iteration loop and an inner data traversal loop. It is centered around memory access patterns. Other than dataflow programming it emphasizes on upholding the sequential modification order of each data object. As a consequence the visible side effects on any object can be guaranteed to be identical to a sequential execution. Thus the set of optimizations that are performed are compatible with C’s abstract state machine and compilers could perform them, in principle, automatically and unobserved. We present two separate implementations of this model. The first in C++ uses overloading of the operator[] to instrument the memory accesses. The second in Modular C uses annotations and code transformations for the two nested loops. Thereby the code inside the loops may stay as close as possible to the original code such that optimization of that code is not impacted unnecessarily. These implementations show promising results for appropriate benchmarks from polybench and rodinia.
Complete list of metadatas

https://hal.inria.fr/hal-01814740
Contributor : Jens Gustedt <>
Submitted on : Wednesday, June 13, 2018 - 2:51:44 PM
Last modification on : Saturday, October 27, 2018 - 1:23:55 AM
Long-term archiving on : Friday, September 14, 2018 - 5:48:47 PM

File

RR-9182.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : hal-01814740, version 1

Citation

Jens Gustedt, Maxime Mogé. Memory access classification for vertical task parallelism. [Research Report] RR-9182, Inria Nancy - Grand Est. 2018, pp.1-20. ⟨hal-01814740⟩

Share

Metrics

Record views

162

Files downloads

120