Le but du stage sera d'étendre l’implémentation MPI distribuée de la factorisation LU avec pivotage partiel à des distributions autre que le 2DBC (un exemple de distribution se trouve dans le papier Data Distribution Schemes for Dense Linear Algebra Factorizations on Any Number of Nodes). Actuellement, certaines parties de l’algorithme ne fonctionnent qu’avec la distribution 2DBC, dont les réductions qui sont dans le chemin critique. Utiliser des distributions autre que le 2DBC ajoute de la complexité pour récupérer la liste des processus impliqués dans chaque réduction. Il faudra pouvoir stocker et accéder à la liste des processus impliqués dans les réductions tout en maîtrisant la taille de stockage de cette liste et sa complexité de calcul. Ensuite, des benchmarks pour comparer différentes distributions seront à faire sur la plateforme de calcul de l’Inria Plafrim. Enfin, les algorithmes de réductions pourront être implémentés avec la librairie de communication NewMadeleine afin de comparer les performances avec la librairie OpenMPI. Tous ces travaux seront faits dans Chameleon.
La bibliothèque Chameleon est une bibliothèque d’algèbre linéaire dense qui fournit un ensemble d’algorithmes standards tels que les BLAS (Basic Linear Algebra Subroutines) mais également de nombreuses fonctionnalités plus avancées des standard LAPACK et ScaLAPACK. Pour permettre l’exploitation efficace des architectures distribuées et hétérogènes qui sont de plus en plus présentes dans les centres de calculs, Chameleon repose sur l’utilisation du modèle de programmation par insertion séquentielle de tâches (STF) et l’utilisation de supports d’exécution pour l’ordonnancement des tâches de calculs sur l’architecture cible.
De plus en plus de monde utilise des applications à base de tâches en utilisant des supports d’exécution pour avoir des applications portables sur toutes architectures et hétérogènes. Notamment en algèbre linéaire dense, la majorité des algorithmes a été portée à base de tâches avec des supports d’exécutions efficacement sur des architectures hétérogènes distribuées. Les opérations faites dans la factorisation LU avec pivotage partiel rendent cet algorithme très compliqué à implémenter avec le modèle à base de tâches. Cet algorithme est pourtant utilisé à très grande échelle dans le benchmark HPL qui est utilisé pour le TOP500 qui classe les 500 plus grands supercalculateurs dans le monde. Chaque constructeur a son implémentation de la factorisation LU avec pivotage partielle qui est optimisée pour une architecture spécifique et très souvent n’est pas capable d’exploiter à la fois la puissance de calcul des CPUs et des GPUs. L’implémentation de cet algorithme dans Chameleon a pour but d’avoir une factorisation LU avec pivotage partiel qui est portable sur tout type d’architecture et hétérogène grâce au modèle de programmation à base de tâches.
Dense linear algebra, LU factorisation, Partial pivoting, MPI, NewMadeleine, Runtime systems, Plafrim
Centre Inria de l’Université de Bordeaux