Task based progression of asynchronous communications
Progression à base de tâches des communications asynchrones
Abstract
Dans le monde du HPC, les communications jouent un rôle de premier plan sur les perfor-
mances des applications. L’une des solutions mise en œuvre pour réduire leur impact a été la
création de communications non bloquantes asynchrones. Celles ci permettent de recouvrir les
communications par du calcul. Les nœuds n’attendent plus la totalité du déroulement de la
communication, contrairement à un appel bloquant. Ici, le code continue son exécution jusqu’à
une demande explicite d’attente de la terminaison. L’utilisation de ce type de communications
permet de gagner un précieux temps de calcul. Cependant, gérer efficacement la progression
des communications en parallèle reste un véritable enjeu, notamment pour les communica-
tions collectives. L’une des solutions envisagée passe par l’utilisation de tâches pour gérer cette
progression. Les tâches, par rapport à un thread dédié, permettent plus de souplesse en ré-
partissant les communications sur les processeurs libres. Nous proposons l’implémentation de
collectives non bloquantes dans la bibliothèque de communication NewMadeleine, ainsi que
dans le framework MPC. NewMadeleine a été conçue pour des communications point à point
asynchrones non bloquantes. De plus, elle s’appuie sur le gestionnaire d’entrées/sorties PIO-
Man, qui gère l’ensemble des requêtes à l’aide de tâches. Lors d’un travail préliminaire, nous
avons implémenté un moteur de tâches dans l’ordonnanceur de MPC comme base pour ces
communications. L’ajout de collectives non bloquantes basées sur des tâches implique de se
pencher sur différentes problématiques. Ces collectives sont conçues pour être utilisées par
un ensemble de nœuds et sont plus complexes au niveau algorithmique que de simples com-
munications point-à-point. Leurs utilisation demande aussi plus de ressources CPU. Il nous
faut donc déterminer les conséquences de l’exécution en parallèle du code de progression et
des calculs. Nous cherchons à observer les effets de placement des tâches de communication.
Nous etudierons donc l’impact de la cohabitation des calculs et des tâches de progression au
sein d’un même cœur, que ce soit sur les caches de données ou sur les temps de calcul. Nous
analyserons aussi le cas de coeurs dédiés aux communications, et les conséquences de cette
réservation de ressources sur ces mêmes calculs.
Origin | Files produced by the author(s) |
---|