Amélioration des performances de supports d'exécution à tâches à l'aide de broadcasts dynamiques
Résumé
Les supports d'exécution à tâches sont apparus dans le monde du calcul haute performance pour gérer plus facilement les architectures hétérogènes, mieux passer à l'échelle et atteindre ainsi de meilleures performances. Le passage à l'échelle sur de nombreux nœuds de calcul fait apparaître les communications réseau comme un goulot d'étranglement pour les performances. Les supports d'exécution à tâches doivent parfois envoyer une même donnée vers plusieurs nœuds. L'optimisation de ce genre de communications passe habituellement par un appel à une fonction dédiée, comme MPI_Bcast. Cependant, MPI_Bcast est difficilement utilisable dans les supports d'exécution à tâches : les nœuds doivent savoir qu'ils ne sont pas les seuls à recevoir la donnée en question et ils doivent connaître tous les autres nœuds destinataires de cette donnée, pour pouvoir faire appel à MPI_Bcast. Pour pallier ces contraintes tout en conservant un algorithme de diffusion optimisé, nous proposons une solution, appelée broadcasts dynamiques, où les nœuds découvrent, de façon transparente pour l'utilisateur, qu'ils sont impliqués dans un broadcast seulement lorsqu'ils reçoivent les données et n'ont pas besoin de connaître tous les nœuds du broadcast. Cette solution montre des améliorations des performances allant jusqu'à 30 % sur des décompositions de Cholesky.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...