Introducing Moldable Tasks in OpenMP
Résumé
This paper introduces a new approach to handle implicit parallelism in library functions. If the library already utilizes a thirdparty programming model like OpenMP, it may run in parallel. Otherwise, if the library remains sequential, OpenMP directives in client code cannot be used for direct parallelization. To express implicit parallelism and, in the meanwhile, dynamically adjust the parallel degree of a task when its starts, we propose to use moldable tasks. We handle this by introducing a new construct called taskmoldable that generates multiples tasks from a single function call and an iteration space. For the Lapack Cholesky factorization algorithm, our taskmoldable directive allows simple code annotation to express parallelism between tiles and improves programmability. Performance results on a beamforming application indicates that our moldable implementation is slightly faster by 5% in mean, than a parallel execution achieved with Intel MKL.
Origine | Fichiers produits par l'(les) auteur(s) |
---|