Batching the tasks of the LU factorization with partial pivoting on top of runtime systems
Résumé
Task-based runtime systems have demonstrated efficiency in leveraging the capabilities of large heterogeneous architectures. Many linear algebra algorithms and applications have been implemented on top of runtime systems to increase their performance. However, the LU factorization with partial pivoting has not yet been successfully implemented using task-based runtime systems. This operation is used to solve large dense linear systems in numerical simulations, such as the Maxwell equations in electromagnetism. This factorization is a major part of the High Performance Linpack (HPL) benchmark used in the TOP500 to evaluate and rank supercomputers. We explore solutions to implement efficient LU factorization with partial pivoting using the sequential task-flow programming model. These solutions have been implemented in the dense linear algebra library Chameleon on top of the StarPU runtime system. We showed that, due to the pivoting strategy, this algorithm generates a large number of very small tasks, which usually overloads the runtime system and makes it inefficient. With a naive task batching strategy, we improved the efficiency and reduced the number of tasks. We propose solutions to adapt the batch size to the granularity of the tasks. In order to do that, we first distinguish two types of tasks and set an adapted batch size for each. Then, we introduce a heuristic based on the number of operations per tasks to adapt the batch size to the computational complexity of the tasks during the factorization. Experiments conducted on our cluster with these optimizations show that our LU factorization with partial pivoting asymptotically reaches about 96% of the performance of the non-pivoting algorithm. Thanks to the adaptive batch size mechanism, the performance peak is reached even faster.
| Origine | Fichiers produits par l'(les) auteur(s) |
|---|---|
| Licence |
