Portable vectorization and parallelization of C++ multi-dimensional array computations
Laurent Plagne
19 December 2017, 10:30 Salle/Bat : 465/PCRI-N
Contact :
Activités de recherche : High-performance computing
Résumé :
This paper presents Legolas++ arrays, a C++ multi-dimensional array library. Parameterized type of Legolas++ arrays enable data layout adaptation for specific Single Instruction Multiple Data (SIMD) core architectures. The mapping of complex array-based kernels to regular collections of data is efficiently vectorized. In addition, Legolas++ arrays can combine multi-threaded parallelism with SIMD acceleration. For example, a direct tridiagonal solver applied to a collection of equally sized problems exhibits a speedup of more than x22 on an 8-core SIMD processor.