Stage de fin d'étude (M2 / PFE ingénieur)
Responsables :
Alexandre Denis (Inria), Philippe Swartvagher (ENSEIRB-MATMECA)
Téléphone :
05.24.57.41.14
Courriels :
Alexandre.Denis@inria.fr,
Philippe.Swartvagher@inria.fr
En calcul haute-performance, les calculs sont répartis sur différents serveurs, appelés noeuds de calcul, qui échangent de nombreuses données au travers du réseau. Ces calculs utilisent un réseau dédié, appelé réseau haute-performance, plus rapide que les réseaux traditionnels. Ces réseaux sont exploités au travers d'interfaces spécifiques au calcul haute performance.
L'équipe TADAAM de l'Inria Bordeaux 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. Ainsi, l'activité réseau de la bibliothèque est découplée des appels de l'utilisateur à son API, ce qui lui assure un bon passage à l'échelle en nombre de requêtes.
Lors de l'exécution, de nombreux messages peuvent être actifs simultanément et sont manipulés par la stratétgie d'opimisation. Pour s'assurer du fonctionnement correct de la bibliothèque de communication, des compteurs de profiling ainsi que des traces sont à disposition du développeur. Cependant, le profiling fournit seulement une indication quant au déroulement normal ou non des communications, sans fournir de moyen de les expliquer. Il faut pour cela utiliser des traces qui permettent d'examiner en détail le fonctionnement.
Toutefois, les traces sont volumineuses et peuvent atteindre rapidement plusieurs gigaoctets. Ceci est dû au fait que tracer les communications est très verbeux: on peut gérérer jusqu'à plusieurs dizaines d'évènements par message réseau. Ceci en limite donc la portée à des exécutions courtes, sur un nombre restreint de noeuds. Il existe des initiatives pour réduire leur volume, comme par exemple Pallas, mais elles ne permettent pas encore de tracer une exécution sur plusieurs centaines de noeuds pendant une heure. Ces gros cas sont pourtant ceux qui sont le plus susceptibles de présenter une exécution non-nominale et de nécessiter des traces pour observer puis corriger le problème.
Ce stage vise à expérimenter une approche en ligne (online) de l'analyse d'exécution et de performance, en mêlant l'usage des compteurs de profiling et des traces intermitentes. Concrètement, il s'agira d'ajouter à la bibliothèque de communication NewMadeleine l'infrastructure pour surveiller certaines métriques (performance du réseau, files de paquets, etc.), soit au travers du profiling existant, soit en ajoutant de nouveaux compteurs, pour détecter les cas où l'on observe un comportement non-nominal de la biliothèque, puis à la volée déclencher ponctuellement la capture de traces uniquement sur la section souhaitée de façon à en limiter le volume et donc, in fine, la faisabilité. Les applications cibles seront celles du projet NumPEx.
L'objectif à plus long terme est de détecter des cas pathologiques, les comprendre, puis de proposer de nouveaux algorithmes apportant une solution aux problèmes de performance détectés.
Ce stage a vocation à déboucher sur une thèse, dont le financement est déjà assuré par le projet NumPEx.
Le stage se déroulera dans les locaux de l'Inria Bordeaux pour une durée de 6 mois.
Mot-clés : calcul haute-performance, réseau, programmation système
Commentaires : Les développements à réaliser se feront dans la bibliothèque 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 :