Sujet :  Portage de StarPU sur la bibliothèque de communication NewMadeleine

Responsables :  Alexandre DENIS, en collaboration avec Emmanuel AGULLO, Olivier AUMAGE, Emmanuel JEANNOT, Samuel THIBAULT
Téléphones :  05.24.57.41.14
Courriels : Alexandre.Denis@inria.fr

Présentation du sujet :

Dans le cadre du calcul haute-performance, les machines sont désormais très hétérogènes, équipées d'accélérateurs tels que le Xeon Phi d'Intel ou de GPU. 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 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 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, 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. Elle dispose d'une interface de programmation native ainsi que d'une interface suivant le standard MPI et est donc, en l'état, déjà utilisable par StarPU.

Cependant, 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 de NewMadeleine. Cependant, ces propriétés ne sont pas exprimables par l'interface MPI. L'enjeu de ce projet est donc de porter StarPU sur l'interface native de NewMadeleine pour en exploiter au mieux toutes les propriétés dans le but d'améliorer les performances de communication et le passage à l'échelle.

Les développements prévus sont de deux ordres : réaliser un portage de StarPU sur l'interface native de NewMadeleine, et développer de nouvelles fonctionnalités de NewMadeleine spécialement pour StarPU. Il s'agit par exemple d'exploiter la réactivité de NewMadeleine en contexte multi-thread, de piloter le moteur de communication (fréquence de polling par exemple) en fonction des phases de l'application, d'exploiter le fait que StarPU a une connaissance des communications futures dans la stratégie d'optimisation de NewMadeleine, de donner des priorités différentes aux communications, ou encore de proposer et utiliser des mécanismes de diffusion plus souples, plus asynchrones, et plus dynamiques que l'opération MPI broadcast. L'interface native de NewMadeleine étant utilisable conjointement avec l'interface MPI, le développement peut être réalisé de manière incrémentale en séparant les différents aspects, ce qui réduit le risque.

Mot-clés :  Calcul haute-performance, réseau, programmation système


Commentaires :  Les développements à réaliser se feront dans les bibliothèques StarPU et NewMadeleine disponibles en open source et se font en langage C. Il serait souhaitable qu'ils soient réalisés par une personne familière avec les aspects réseaux et parallélisme.


Références :

  1. Cédric Augonnet, Olivier Aumage, Nathalie Furmento, Samuel Thibault, and Raymond Namyst. StarPU-MPI: Task Programming over Clusters of Machines Enhanced with Accelerators. Research Report RR-8538, INRIA, May 2014.
  2. Cédric Augonnet, Samuel Thibault, Raymond Namyst, and Pierre-André Wacrenier. StarPU: a unified platform for task scheduling on heterogeneous multicore architectures. Concurrency and Computation: Practice and Experience, 23(2):187–198, 2011.
  3. Olivier Aumage, Elisabeth Brunet, Nathalie Furmento, and Raymond Namyst. NewMadeleine: a Fast Communication Scheduling Engine for High Performance Networks. In Workshop on Communication Architecture for Clusters (CAC 2007), workshop held in conjunction with IPDPS 2007, Long Beach, California, United States, March 2007.
  4. Alexandre Denis. pioman: a pthread-based Multithreaded Communication Engine. In Euromicro International Conference on Parallel, Distributed and Network-based Processing, Turku, Finland, March 2015.
  5. NewMadeleine: An Optimizing Communication Library for High-Performance Networks
  6. StarPU: A Unified Runtime System for Heterogeneous Multicore Architectures