1. Généralités

Début: octobre 2025

Fin: octobre 2028

Financement: Programme NumPEx, Projet Exa-Soft

Structure d'accueil: Inria Bordeaux Sud-Ouest

Équipe de recherche: TADaaM

Encadrants: Alexandre Denis, Philippe Swartvagher, Samuel Thibault

Sujet: Intégration de l'ordonnancement asynchrone des communications réseau et de l'ordonnancement des tâches

2. Description

2.1. Contexte

   Dans le cadre du calcul haute performance (HPC), les machines sont désormais très hétérogènes, équipées d'accélérateurs tels que les GPU ou les FPGA. Ces différentes unités se programment avec des paradigmes différents, et pour ajouter à la complexité, il faut gérer les transferts de données entre les unités, l'ordonnancement, et l'équilibrage de charge.

   Pour tirer profit d'une telle plate-forme, l'équipe STORM a proposé le support d'exécution StarPU [2]​ qui gère ces problématiques de manière générique et indépendante de l'application. Pour des grappes de calcul — plusieurs noeuds interconnectés par un réseau d'interconnexion — StarPU confie [1]​ l'exploitation du réseau à une bibliothèque de communication qui implémente l'interface MPI, d'utilisation standard en HPC.

   Par ailleurs, l'équipe TADaaM développe la bibliothèque de communication NewMadeleine [3]​, dont l'originalité est d'appliquer une stratégie d'optimisation à la volée sur les flux de communications issus des différents threads, en assurant une progression asynchrone en tâche de fond [5, 8]​. Elle repose essentiellement sur le principe de messages actifs, ce qui permet le déroulement des communications sans intervention de l'application.

   Les besoins de StarPU en terme de communications ne sont pas les mêmes que ceux d'une application MPI classique, notamment en matière d'irrégularité, de réactivité, de multi-threading, de nombre de requêtes actives simultanément, alors qu'ils correspondent parfaitement au cahier des charges et aux capacités de NewMadeleine. Un portage se StarPU sur l'interface native de NewMadeleine a été réalisé [4]​ pour en exploiter au mieux les propriétés de progression, de passage à l'échelle [6]​, ainsi qu'une intégration spécifique des opérations collectives [7]​.

2.2. Contributions

   L’objectif de cette thèse est de renforcer le dialogue entre NewMadeleine et StarPU dans la gestion des communications. Il s’agit d’exploiter la connaissance du futur que l’on peut extraire du graphe de tâches de façon à optimiser les communications. Les aspects principaux sont les suivants.

2.2.1. Enregistrement de la mémoire

   Les réseaux haute performance tels qu’InfiniBand sont programmés directement depuis l’espace utilisateur. Pour que la carte puisse accéder directement aux données de l’utilisateur, en mémoire virtuelle, il faut au préalable enregistrer les pages mémoire pour qu’elle connaisse leur adresse physique. Cette opération est appelée enregistrement mémoire. Cette opération est coûteuse. Dans les applications HPC classiques, son coût est habituellement amorti au travers d’un cache d’enregistrement, car les buffers sont souvent re-utilisés. En revanche, dans le cadre de StarPU, la réception a souvent lieu dans un buffer alloué dynamiquement, utilisé une seule fois, déjouant les politiques reposant sur un cache.

   Grâce a la connaissance du futur dans le graphe de tâches, il est possible d’effectuer un enregistrement à la volée des zones mémoire et d’amortir son coût en l’anticipant. En effet, le moment où une zone mémoire sera utilisée pour une émission ou une réception réseau est prévisible.

   Il restera à étudier le coût résiduel de l’enregistrement mémoire, étudier ses interaction avec le GPU, et notamment l’enregistrement mémoire demandé par le GPU, les interactions entre l’allocation dynamique de buffers pour une réception réseau et le placement souhaité par l’ordonnanceur de tâche.

2.2.2. Priorités des communications

   StarPU attache des priorités aux tâches, NewMadeleine est capable d’ordonnancer les paquets en fonction de leurs priorités. La stratégie actuelle attache aux paquets la priorité associée à leur tâche dans le graphe de tâche. Il n’est toutefois pas certain que ce soit la solution optimale.

   Par ailleurs, l’ordonnancement des paquets par priorités dans un contexte HPC n’est pas encore totalement compris: tenir compte des priorités relatives entre destinataires différents, étudier les interactions entre priorités et protocole de rendez-vous, tenir compte des priorités dans la construction des arbres de diffusion.

   Il est également possible d’imaginer prendre en compte les communications futures, que l’on peut déduire du graphe de tâches, dans l’ordonnancement des communications. Par exemple, si un paquet très prioritaire devra prochainement être envoyé, il est envisageable de prendre la décision de ne pas monopoliser le réseau avec un envoi moins prioritaire, même s’il est déjà prêt à envoyer.

2.2.3. Adaptation dynamique à la pression des communications

   Il est possible pour certaines applications d’adapter dynamiquement la granularité des tâches, ce qui a un impact sur le schéma de communication.

   Nous pouvons imaginer que NewMadeleine puisse tenir StarPU informé de la pression sur le système de communications (en fonction de la taille du backlog de communications en attente, par exemple), de façon à adapter dynamiquement la granularité des calculs.

2.2.4. Types de données

   Le type des données, au sens du datatype MPI, influe sur la façon de les gérer et les performance obtenues. La différence se fait essentiellement selon la contiguïté des données en mémoire, ainsi que la taille des fragments. Les différentes méthodes de communications ne présentent pas les mêmes caractéristiques et donc pas les mêmes performances selon le type de données. On pourra envisager de choisir dynamiquement la méthode de communication en fonction du type des données côté émetteur et côté récepteur.

3. Références

[1] Emmanuel Agullo, Olivier Aumage, Mathieu Faverge, Nathalie Furmento, Florent Pruvost, Marc Sergent, et Samuel Thibault. Achieving High Performance on Supercomputers with a Sequential Task-based Programming Model. IEEE Transactions on Parallel and Distributed Systems, 2017. lien

[2] Cédric Augonnet, Samuel Thibault, Raymond Namyst, et Pierre-André Wacrenier. StarPU: A Unified Platform for Task Scheduling on Heterogeneous Multicore Architectures. Concurrency and Computation: Practice and Experience, Special Issue: Euro-Par 2009, 23:187–198, February 2011. lien

[3] Olivier Aumage, Elisabeth Brunet, Nathalie Furmento, et Raymond Namyst. NewMadeleine: a Fast Communication Scheduling Engine for High Performance Networks. Workshop on Communication Architecture for Clusters (CAC 2007), workshop held in conjunction with IPDPS 2007, Long Beach, California, United States, March 2007. lien

[4] Guillaume Beauchamp. Portage de StarPU sur la bibliothèque de communication NewMadeleine. Master’s thesis, Université de Bordeaux, septembre 2017. lien

[5] Alexandre Denis. pioman: a pthread-based Multithreaded Communication Engine. Euromicro International Conference on Parallel, Distributed and Network-based Processing, Turku, Finland, March 2015. lien

[6] Alexandre Denis. Scalability of the NewMadeleine Communication Library for Large Numbers of MPI Point-to-Point Requests. In CCGrid 2019 - 19th Annual IEEE/ACM International Symposium in Cluster, Cloud, and Grid Computing, Larnaca, Cyprus, May 2019. lien

[7] Alexandre Denis, Emmanuel Jeannot, Philippe Swartvagher, et Samuel Thibault. Using Dynamic Broadcasts to improve Task-Based Runtime Performances. Euro-Par 2020, Warsaw, Poland, August 2020. Rzadca and Malawski, Springer. lien

[8] Alexandre Denis et François Trahay. MPI Overlap: Benchmark and Analysis. International Conference on Parallel Processing, 45th International Conference on Parallel Processing, Philadelphia, United States, August 2016. lien

Sujet rédigé par Alexandre Denis.


Tristan Riehs
Emacs 31.0.50
Org-mode 9.7.11
11 janvier 2026