Task-Based Parallel Programming for Scalable Algorithms: application to Matrix Multiplication - Algorithmes Parallèles et Optimisation Accéder directement au contenu
Rapport Année : 2022

Task-Based Parallel Programming for Scalable Algorithms: application to Matrix Multiplication

Programmation parallèle à base de tâches pour algorithmes passant à l'échelle : application au produit de matrices

Résumé

Task-based programming models have succeeded in gaining the interest of the high-performance mathematical software community thanks to how they relieve part of the burden of developing and implementing distributed-memory parallel algorithms in an efficient and portable way. In increasingly larger, more heterogeneous clusters of computers, these models appear as a way to maintain and enhance more complex algorithms. However, task-based programming models lack the flexibility and the features that are necessary to express in an elegant and compact way scalable algorithms that rely on advanced communication patterns. We show that the Sequential Task Flow paradigm can be extended to write a compact yet efficient and scalable General Matrix Multiplication. This extension required few modifications to the StarPU runtime system. The final implementation is shown to be competitive up to 32,768 cores with state-of-the-art libraries and may outperform them on some specific problem configurations.
Les modèles de programmation à base de tâches ont réussi à susciter l'intérêt de la communauté des logiciels mathématiques de haute performance grâce à la manière dont ils soulagent une partie du fardeau que représentent le développement et la mise en œuvre efficace et portable d'algorithmes parallèles à mémoire distribuée. Dans des grappes d'ordinateurs de plus en plus grandes et hétérogènes, ces modèles apparaissent comme un moyen de développer et maintenir des algorithmes plus complexes. Cependant, les modèles de programmation basés sur les tâches manquent de flexibilité et les caractéristiques nécessaires pour exprimer de manière élégante et compacte des algorithmes passant à l'échelle se basant sur des schémas de communication avancés. Nous montrons que le paradigme de flot de tâches séquentiel (STF) peut être étendu pour écrire une multiplication matricielle passant à l'échelle. Cette extension a nécessité peu de modifications au système d'exécution StarPU. L'implantation finale est compétitive jusqu'à 32 768 cœurs avec les bibliothèques de pointe et peut même les surpasser dans certaines configurations spécifiques.
Fichier principal
Vignette du fichier
RR-9461.pdf (858.6 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-03588491 , version 1 (24-02-2022)
hal-03588491 , version 2 (29-09-2022)

Identifiants

  • HAL Id : hal-03588491 , version 2

Citer

Emmanuel Agullo, Alfredo Buttari, Abdou Guermouche, Julien Herrmann, Antoine Jego. Task-Based Parallel Programming for Scalable Algorithms: application to Matrix Multiplication. [Research Report] RR-9461, Inria Bordeaux - Sud-Ouest. 2022, pp.29. ⟨hal-03588491v2⟩
558 Consultations
538 Téléchargements

Partager

Gmail Facebook X LinkedIn More