Sujet :  Opérations collectives dynamiques dans StarPU/NewMadeleine

Responsables :  Alexandre DENIS, Olivier AUMAGE, Samuel THIBAULT, Nathalie FURMENTO
Téléphones :  05.24.57.41.14
Courriels : Alexandre.Denis@inria.fr Olivier.Aumage@inria.fr Samuel.Thibault@inria.fr Nathalie.Furmento@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 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 de NewMadeleine. Un portage se StarPU sur l'interface native de NewMadeleine a été réalisé pour en exploiter au mieux les propriétés de progression et de passage à l'échelle.

Ce stage s'intéresse à la partie relative aux communications collectives. En effet, StarPU utilise intensivement en interne les mécanismes de diffusion (broadcast), avec des noeuds cibles connus dynamiquement. Cette façon de faire ne correspond pas au MPI_Broadcast de MPI qui doit avoir lieu sur un communicateur construit à l'avance, avec tous les noeuds qui participent en même temps. NewMadeleine, grâce à ses messages actifs, permet de proposer des mécanismes de diffusion plus souples, plus asynchrones, et plus dynamiques. En particulier, les noeuds intermédiaires peuvent commencer la communication alors même que l'application n'a pas encore appelé la primitive de communication collective sur le noeud.

L'objectif de ce stage est d'implémenter ces mécanismes de diffusion dynamiques et asynchrones à l'aides des primitives de messages actifs de NewMadeleine, puis de les utiliser dans StarPU/NewMadeleine. Il suivra une évaluation sur des micro-benchmarks et des tests applicatifs.

Ce stage a vocation à déboucher sur une thèse, dont le financement est déjà assuré.

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 à l'aise en programmation réseau et système.


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