Multi-Variant User Functions for Platform-Aware Skeleton Programming
2020 (English)In: PARALLEL COMPUTING: TECHNOLOGY TRENDS, IOS PRESS , 2020, Vol. 36, p. 475-484Conference paper, Published paper (Refereed)
Abstract [en]
Todays computer architectures are increasingly specialized and heterogeneous configurations of computational units are common. To provide efficient programming of these systems while still achieving good performance, including performance portability across platforms, high-level parallel programming libraries and tool-chains are used, such as the skeleton programming framework SkePU. SkePU works on heterogeneous systems by automatically generating program components, "user functions", for multiple different execution units in the system, such as CPU and GPU, from a high-level C++ program. This work extends this multi-backend approach by providing the possibility for the programmer to provide additional variants of these user functions tailored for different scenarios, such as platform constraints. This paper introduces the overall approach of multi-variant user functions, provides several use cases including explicit SIMD vectorization for supported hardware, and evaluates the result of these optimizations that can be achieved using this extension.
Place, publisher, year, edition, pages
IOS PRESS , 2020. Vol. 36, p. 475-484
Series
Advances in Parallel Computing, ISSN 0927-5452
Keywords [en]
Skeleton programming; SkePU; Heterogeneous computing; Multi-variant user functions; Vectorization
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:liu:diva-174092DOI: 10.3233/APC200074ISI: 000624288400044ISBN: 978-1-64368-071-2 (electronic)ISBN: 978-1-64368-070-5 (print)OAI: oai:DiVA.org:liu-174092DiVA, id: diva2:1537486
Conference
Conference on Parallel Computing - Technology Trends (ParCo), Charles Univ, Prague, CZECH REPUBLIC, sep 10-13, 2019
Note
Funding Agencies|EUEuropean Commission [801015 EXA2PRO]; Swedish National Graduate School in Computer Science (CUGS)
2021-03-152021-03-152021-03-15