Deciding Non-Compressible Blocks in Sparse Direct Solvers using Incomplete Factorization
Résumé
Low-rank compression techniques are very promising for reducing memory footprintand execution time on a large spectrum of linear solvers. Sparse direct supernodal approaches areone these techniques. However, despite providing a very good scalability and reducing the memoryfootprint, they suffer from an important flops overhead in their unstructured low-rank updates. As a consequence, the execution time is not improved as expected. In this paper, we study asolution to improve low-rank compression techniques in sparse supernodal solvers. The proposedmethod tackles the overprice of the low-rank updates by identifying the blocks that have poorcompression rates. We show that block incomplete LU factorization, thanks to the block fill-inlevels, allows to identify most of these non-compressible blocks at low cost.This identification enables to postpone the low-rank compression step to trade small extra memory consumption fora better time to solution. The solution is validated within thePaStiXlibrary with a large set ofapplication matrices. It demonstrates sequential and multi-threaded speedup up to 8.5x, for smallmemory overhead of less than 1.49xwith respect to the original version.
Les techniques de compression de rang faible sont très prometteuses au niveau de l’empreinte mémoire et du temps d’exécution sur un large spectre de solveurs linéaires. Les approches supernodales directes creuses font partie de ce spectre. Cependant, malgré leur très bonne scalabilité et leur empreinte mémoire plus faible, elles souffrent d’un surcoût calculatoire important dû aux mises à jour non-structurées de rang faible impliquées. En conséquence, le temps d’exécution n’est pas amélioré comme prévu. Dans cet article, nous étudions une solution pour améliorer les techniques de compression de rang faible dans les solveurs supernodaux creuses. La méthode proposée s’intéresse à ces mises à jour de rang faible plus coûteuses en identifiant les blocs avec de faibles taux de compression. Nous montrons que la factorisation LU incomplète par blocs, grâce aux niveaux de remplissage des blocs, permet d’identifier, à faible coût, la plupart de ces blocs non compressibles. Cette identification permet de reporter l’étape de compression de rang faible pour permettre un meilleur temps de résolution en échange d’une légère sur-consommation mémoire. La solution est validée dans la bibliothèque PaStiX avec un large ensemble de matrices issues d’applications. Il démontre une accélération séquentielle et multithread jusqu’à 8.5x, pour une augmentation de la consommation mémoire inférieure à 1.49x par rapport à la version originale.
Origine | Fichiers produits par l'(les) auteur(s) |
---|