Master 2013 2014
Stages de la spécialité SAR
Programmation multi-niveaux par graphe de composants orchestrés à l’exécution pour la Méthodes de Kirchhoff sur machines post-petascale


Site :Programmation multi-niveaux par graphe de composants orchestrés à l’exécution pour la Méthodes de Kirchhoff sur machines post-petascale
Lieu :TOTAL E&P, Houston, TX, USA
Encadrant : Henri Calandra et Maxime Hugues, TOTAL E&P. Dans le cadre de collaborations avec Serge Petiton qu'il est possible de contacter (serge.petiton@lifl.fr). Contacts : henri.calandra@total.com, maxime.hugues@total.com
Dates :1/5/2014 au 31/8/2014
Rémunération :oui, à discuter avec TOTAL E&P, Houston, USA


Description

1 - Contexte

Les paradigmes de programmation et les langages actuels permettront de moins en moins de développer des programmes efficaces car ils ne seront pas toujours adaptés pour exploiter au mieux les machines futures, en effet :
-  ces supercalculateurs seront très larges avec un nombre de cœurs de calcul dépassant les dizaines de millions et hétérogènes à travers l’utilisation d’accélérateurs comme les GPGPU ou les MIC,
-  la programmation de ces systèmes sera également complexe au vu de la hiérarchisation et des différents niveaux de parallélismes disponibles (avec au plus haut niveau des millions de nœuds et au plus bas niveau des puces massivement multi-cœurs), engendrant en particulier des latences très importantes entre les unités les plus éloignées et plusieurs type de parallélisassions,
-  la nécessité de limiter la consommation électrique va conduire à minimiser au plus le nombre des communications, en incluant les entrées-sorties, impliquant que les calculs ne seront plus le premier critère à minimiser, Pour faire face à ces enjeux, il est nécessaire de proposer des solutions permettant de programmer efficacement ces machines fortement hiérarchisées, minimisant les échanges de données en particulier, et de gérer aux mieux les ressources parallèles réparties dans les superordinateurs à venir. Un nouveau paradigme de programmation est proposé pour cela, basé sur plusieurs niveaux de programmation :
-  un premier niveau décrit un graphe de dépendances entre composants de calcul à gros grain, (possibilité de description via le langage spécifique de YML),
-  au second niveau, des langages nouveaux pour la programmation parallèle de chaque composant existent, comme XMP ou CAF, et d’autres langages de type PGAS,
-  d’autres niveaux seront constitués autour de l’utilisation d’accélérateurs et de l’optimisation du multithreading, utilisant d’autres langages de bas niveaux ou des runtimes systèmes. Ce paradigme de programmation par tâches/composants est basé sur un ordonnancement astucieux des composants sur les sous-ensembles de nœuds d’une machine, incluant à terme les E/S come des tâches de migration de donnée devant être aussi ordonnancées avec les autres. YML est déployé déjà sur des machines chez TOTAL E&P à Houston. La société TOTAL a déjà découpé en tâche à gros grain les calculs nécessaires pour la méthode de Kirkhhoff utilisée sur des traces venant de campagnes réelles. Des chercheurs y ont aussi développé une version maître-esclave d’une orchestration de ces tâches et des divers flots de données en utilisant MPI. Une première évaluation sera finie lors du début du stage proposé, ainsi qu’une première analyse de comment utiliser YML. L’objectif du stage est de reprendre et continuer ce travail en étudiant aussi plus en détail l’approche avec YML.

2 -Travail demandé

Il est demandé lors de ce stage de master M2, après avoir étudier en détails le travail déjà effectué décrit ci-haut de la méthode Kirkhhoff, de : 1. traduire en YML le logiciel développé par TOTAL, avec des tâches/composants écrites en Fortan, 2. de traduire les composants en XMP et de proposer une version YML-XMP 3. d’expérimenter avec de nombreux jeux de tests de TOTAL ces logiciels 4. d’étudier des possibilités d’optimisations des algorithmes concernées 5. d étudier les E/S effectuées et les communications afin d’analyser et de proposer l’utilisation de fonctionnalité de YML permettant d’ordonnancer en parallèle des tâches/composants de calcul et des migrations de données

Dans ce cadre, il sera aussi demandé de faire un état de l’art sur les techniques d’ordonnancement pour des superordinateurs, associés souvent aux runtimes systèmes. En particulier, un des problèmes à étudier sera l’ordonnancement des composants/tâches intégrant des stratégies d’optimisation de migration de données et de clouages des données.

contact : henri.calandra@total.com et maxime.hugues@total.com

Bibliographie

[1] Exascale IO Workgroup, EIOW, www.eiow.org

[2] Projet FP3C, jfli.nii.ac.jp/medias/wordpress/ ?page_id=327

[3] M. Hugues, M. Moretti, S. Petiton and H. Calandra, ASIODS – An Asynchronous and Smart IO Delegation System, 11th International Conference on Computational Science, Singapore, June 2011.