Resource-aware Data Parallel Array Processing

Open Access
Authors
Publication date 08-2020
Journal International Journal of Parallel Programming
Volume | Issue number 48 | 4
Pages (from-to) 652-674
Number of pages 23
Organisations
  • Faculty of Science (FNWI) - Informatics Institute (IVI)
Abstract
Malleable applications may run with varying numbers of threads, and thus on varying numbers of cores, while the precise number of threads is irrelevant for the program logic. Malleability is a common property in data-parallel array processing. With ever growing core counts we are increasingly faced with the problem of how to choose the best number of threads. We propose a compiler-directed, almost automatic tuning approach for the functional array processing language SaC. Our approach consists of an offline training phase during which compiler-instrumented application code systematically explores the design space and accumulates a persistent database of profiling data. When generating production code our compiler consults this database and augments each data-parallel operation with a recommendation table. Based on these recommendation tables the runtime system chooses the number of threads individually for each data-parallel operation. With energy/power efficiency becoming an ever greater concern, we explicitly distinguish between two application scenarios: aiming at best possible performance or aiming at a beneficial trade-off between performance and resource investment.
Document type Article
Note In: Special Issue on High Level Parallel Programming.
Language English
Related publication Resource-aware Data Parallel Array Processing Resource-aware Data Parallel Array Processing
Published at https://doi.org/10.1007/s10766-020-00664-0
Downloads
Permalink to this page
Back