Équipe INRIA RUNTIME

26
Équipe INRIA Équipe INRIA RUNTIME RUNTIME Permanents Permanents Raymond Namyst, Prof. Univ. Bdx 1 Raymond Namyst, Prof. Univ. Bdx 1 (responsable scientifique) (responsable scientifique) Olivier Aumage, CR INRIA Olivier Aumage, CR INRIA Pierre-André Wacrenier, MdC Univ. Bdx 1 Pierre-André Wacrenier, MdC Univ. Bdx 1 Doctorants Doctorants Vincent Danjean Vincent Danjean Guillaume Mercier Guillaume Mercier Marc Perache (co-tutelle avec CEA/DAM) Marc Perache (co-tutelle avec CEA/DAM) Collaborateurs extérieurs Collaborateurs extérieurs Marie-Christine Counilh, MdC Univ. Bdx Marie-Christine Counilh, MdC Univ. Bdx 1 1

description

Équipe INRIA RUNTIME. Permanents Raymond Namyst, Prof. Univ. Bdx 1 (responsable scientifique) Olivier Aumage, CR INRIA Pierre-André Wacrenier, MdC Univ. Bdx 1 Doctorants Vincent Danjean Guillaume Mercier Marc Perache (co-tutelle avec CEA/DAM) Collaborateurs extérieurs - PowerPoint PPT Presentation

Transcript of Équipe INRIA RUNTIME

Page 1: Équipe INRIA  RUNTIME

Équipe INRIA Équipe INRIA RUNTIMERUNTIMEPermanentsPermanents– Raymond Namyst, Prof. Univ. Bdx 1 Raymond Namyst, Prof. Univ. Bdx 1

(responsable scientifique)(responsable scientifique)– Olivier Aumage, CR INRIAOlivier Aumage, CR INRIA– Pierre-André Wacrenier, MdC Univ. Bdx 1Pierre-André Wacrenier, MdC Univ. Bdx 1DoctorantsDoctorants– Vincent DanjeanVincent Danjean– Guillaume MercierGuillaume Mercier– Marc Perache (co-tutelle avec CEA/DAM)Marc Perache (co-tutelle avec CEA/DAM)Collaborateurs extérieursCollaborateurs extérieurs– Marie-Christine Counilh, MdC Univ. Bdx 1Marie-Christine Counilh, MdC Univ. Bdx 1

Page 2: Équipe INRIA  RUNTIME

RUNTIME :RUNTIME :supports exécutifs pour grappessupports exécutifs pour grappes

Techniques d’optimisation des Techniques d’optimisation des communications sur grappes…communications sur grappes…qui pourraient être utiles à un qui pourraient être utiles à un

émulateurémulateur

Page 3: Équipe INRIA  RUNTIME

Thématique de rechercheThématique de rechercheet compétenceset compétences

Environnements et supports exécutifs Environnements et supports exécutifs pour architectures parallèlespour architectures parallèles

Page 4: Équipe INRIA  RUNTIME

Architectures parallèles viséesArchitectures parallèles viséesGrappes de SMP (Grappes de SMP (Symmetrical Multi-ProcessorsSymmetrical Multi-Processors))– Nœuds multiprocesseursNœuds multiprocesseurs– Réseaux rapides (Myrinet, SCI, GigaEthernet, etc.)Réseaux rapides (Myrinet, SCI, GigaEthernet, etc.)– Systèmes d’exploitation évolutifs (GNU/Linux, Win2K)Systèmes d’exploitation évolutifs (GNU/Linux, Win2K)

CPU CPUCPU

Réseau rapide

CPU CPU

Page 5: Équipe INRIA  RUNTIME

Problématique de rechercheProblématique de recherche

Concevoir des supports exécutifs Concevoir des supports exécutifs performants…performants…– Exhibant des performances proches de Exhibant des performances proches de

celles du matérielcelles du matériel

… … préservant la portabilité des préservant la portabilité des applicationsapplications– Assurer la Assurer la « portabilité des « portabilité des

performances »performances » portabilité !portabilité !

Page 6: Équipe INRIA  RUNTIME

Notre démarcheNotre démarchePour y parvenir, il faut :Pour y parvenir, il faut :– Proposer de nouvelles fonctionnalitésProposer de nouvelles fonctionnalités

Augmenter l’expressivité des interfacesAugmenter l’expressivité des interfacesRevisiter les standards…Revisiter les standards…

– Étudier finement les interactions entre Étudier finement les interactions entre composantscomposants

Établir de nouveaux schémas de coopérationÉtablir de nouveaux schémas de coopération

– Étendre les systèmes d’exploitationÉtendre les systèmes d’exploitationAdopter une approche « exo-kernel »Adopter une approche « exo-kernel »

– Utiliser des critères pertinents d’évaluation des Utiliser des critères pertinents d’évaluation des performancesperformances

Réactivité, transferts complexes, etc.Réactivité, transferts complexes, etc.

Page 7: Équipe INRIA  RUNTIME

Cadre d’étudeCadre d’étudeEnvironnements de programmation Environnements de programmation pour applications parallèles irrégulièrespour applications parallèles irrégulières– PM2 (LIFL, ReMaP), Athapascan (Apache)PM2 (LIFL, ReMaP), Athapascan (Apache)

Contraintes de performanceContraintes de performanceFeedbackFeedback applicatif important applicatif important

Définition d’un support exécutif Définition d’un support exécutif minimalminimal– µPM2µPM2

CommunicationsCommunicationsMultithreadingMultithreadingGestion mémoire distribuéeGestion mémoire distribuée

Page 8: Équipe INRIA  RUNTIME

Communications sur réseaux Communications sur réseaux rapidesrapides

ObjectifObjectif– Interface portable Interface portable etet efficace efficace

ContraintesContraintes– Faible surcoût par rapport aux protocoles bas-Faible surcoût par rapport aux protocoles bas-

niveauniveauZéro-copie, communication en mode utilisateurZéro-copie, communication en mode utilisateur

Problèmes difficilesProblèmes difficiles– Diversité des technologies/protocoles réseauDiversité des technologies/protocoles réseau

Myrinet, SCI, GigaEthernet, etc.Myrinet, SCI, GigaEthernet, etc.Méthodes de transfert des données radicalement Méthodes de transfert des données radicalement différentesdifférentes

– Schémas de communication irréguliersSchémas de communication irréguliersMessages auto-décrits, réception non sélectiveMessages auto-décrits, réception non sélective

Page 9: Équipe INRIA  RUNTIME

Communications sur réseaux Communications sur réseaux rapidesrapides

Travaux connexesTravaux connexes– BIP, GAMMA, AM, SBP, VIA : portabilité ?BIP, GAMMA, AM, SBP, VIA : portabilité ?– MPI : manque d’expressivité de l’interfaceMPI : manque d’expressivité de l’interface– Fast Messages : transferts explicitesFast Messages : transferts explicites

Contribution : l’interface MadeleineContribution : l’interface Madeleine– Point clé : programmation par contratPoint clé : programmation par contrat

Cohérence mémoire décorrélée des transfertsCohérence mémoire décorrélée des transferts

Contrôle transparent du niveau d’optimisationContrôle transparent du niveau d’optimisation

portabilité des performancesportabilité des performances

Page 10: Équipe INRIA  RUNTIME

BilanBilanBibliothèque MadeleineBibliothèque Madeleine– Implantée sur BIP, SISCI, VIA, TCP, MPIImplantée sur BIP, SISCI, VIA, TCP, MPI– Performances excellentesPerformances excellentes– Utilisée au sein de plusieurs projets externesUtilisée au sein de plusieurs projets externes– Portée des résultats étendue à d’autres Portée des résultats étendue à d’autres

contextescontextes– Thèse Thèse d’Olivier Aumaged’Olivier Aumage

Quels acquis ?Quels acquis ?– Grande expertise technologiqueGrande expertise technologique– Approche originale et pertinente de Approche originale et pertinente de

l’optimisation des communicationsl’optimisation des communications

Page 11: Équipe INRIA  RUNTIME

Multithreading sur machines Multithreading sur machines multiprocesseurs symétriquesmultiprocesseurs symétriques

ObjectifsObjectifs– Noyau de multithreading très performantNoyau de multithreading très performant– Fonctionnalités non-standardFonctionnalités non-standard– Ordonnancement contrôlable (CEA/DAM, Ordonnancement contrôlable (CEA/DAM,

Scalapplix)Scalapplix)– Interactions avec la gestion des Entrées/SortiesInteractions avec la gestion des Entrées/Sorties

Points clésPoints clés– Coopération performante noyau/applicationCoopération performante noyau/application– Réaction rapide aux interruptionsRéaction rapide aux interruptions– Évaluation et compréhension des performancesÉvaluation et compréhension des performances

Page 12: Équipe INRIA  RUNTIME

Multithreading sur machines Multithreading sur machines multiprocesseurs symétriquesmultiprocesseurs symétriques

processor processor processor

OS Kernel

Process Process Process

Scheduler

User Space

Scheduler Scheduler

Quel niveau d’ordonnancement ?Quel niveau d’ordonnancement ?– Noyau/utilisateur/hybrideNoyau/utilisateur/hybride

Page 13: Équipe INRIA  RUNTIME

Multithreading sur machines Multithreading sur machines multiprocesseurs symétriquesmultiprocesseurs symétriques

Travaux connexesTravaux connexes– Scheduler ActivationsScheduler Activations, LinuxThreads, FSU Pthreads, , LinuxThreads, FSU Pthreads,

OpenThreads, GnuPth, NPTL, NGPT, Panda, etc.OpenThreads, GnuPth, NPTL, NGPT, Panda, etc.

ContributionsContributions– Ordonnanceur caméléonOrdonnanceur caméléon

Hybride dans le cas généralHybride dans le cas généralSpécialisable à la compilationSpécialisable à la compilation

– Extensions du modèle des Extensions du modèle des Scheduler ActivationsScheduler ActivationsRéactivité aux événements d’E/SRéactivité aux événements d’E/SImplantation dans Linux/x86 (LinuxActivations)Implantation dans Linux/x86 (LinuxActivations)

– Support de l’ordonnanceur pour la scrutation des E/SSupport de l’ordonnanceur pour la scrutation des E/SFactorisation des scrutations, contrôle du surcoûtFactorisation des scrutations, contrôle du surcoût

– Outils de génération et d’analyse de tracesOutils de génération et d’analyse de tracesMise en corrélation de traces noyau + utilisateurMise en corrélation de traces noyau + utilisateur

Page 14: Équipe INRIA  RUNTIME

BilanBilanQue sait-on faire ?Que sait-on faire ?– Ordonnanceurs très efficaces dans le cas généralOrdonnanceurs très efficaces dans le cas général– Contrôle de l’ordonnancement au niveau applicatifContrôle de l’ordonnancement au niveau applicatif– Thèse de Thèse de Vincent DanjeanVincent DanjeanProblèmes difficilesProblèmes difficiles– Spécifier l’ordonnancement de manière portableSpécifier l’ordonnancement de manière portable

Gestion des communications Gestion des communications (dépend de la technologie réseau !)(dépend de la technologie réseau !)Rem: approche « au tournevis » OK…Rem: approche « au tournevis » OK…

– Comprendre les interactions avec les Comprendre les interactions avec les entrées/sortiesentrées/sorties

Évaluer les implications des scrutations/interruptions sur Évaluer les implications des scrutations/interruptions sur le déroulement des E/Sle déroulement des E/SEx: Scrutations actives en compétition avec les DMAs…Ex: Scrutations actives en compétition avec les DMAs…

Page 15: Équipe INRIA  RUNTIME

GRID-RMIGRID-RMI

VTHDVTHD Myrinet SCI …

Madeleine Marcel

PadicoTM

MPI

OpenCCM ProActivePDC

Do!

DSM MomeCORBA

Java VM

GK

PaCO++

Simulation Code Coupling C3D Plants growing

Page 16: Équipe INRIA  RUNTIME

Quels sont les défis auxquels nous Quels sont les défis auxquels nous sommes confrontés ?sommes confrontés ?

Les architectures évoluent rapidementLes architectures évoluent rapidement– Nouvelles technologiesNouvelles technologies

Processeurs, réseauxProcesseurs, réseauxQuelles implications sur les modèles actuels ?Quelles implications sur les modèles actuels ?

– Expansion des configurationsExpansion des configurationsGrappes de grande taille, hétérogènesGrappes de grande taille, hétérogènesComment réaliser des communications Comment réaliser des communications performantes ?performantes ?

Les contraintes applicatives augmententLes contraintes applicatives augmentent– Applications distribuées, couplage de code, Applications distribuées, couplage de code,

Grid ComputingGrid ComputingDynamicité, tolérance aux pannesDynamicité, tolérance aux pannesQuel impact sur les performances ?Quel impact sur les performances ?

Page 17: Équipe INRIA  RUNTIME

Quelques pistesQuelques pistesCommunicationsCommunications– Savoir optimiser suivant différents critèresSavoir optimiser suivant différents critères

Temps de transfertTemps de transfertPerturbation moindre du processeur (recouvrement)Perturbation moindre du processeur (recouvrement)Qualité de serviceQualité de service

– Augmenter la généricité de l’architecture Augmenter la généricité de l’architecture logiciellelogicielle

Comment automatiser davantage le « portage » ?Comment automatiser davantage le « portage » ?

– Continuer la veille technologiqueContinuer la veille technologiqueTechnologie InfinibandTechnologie Infiniband

– Demain : entrées/sorties = communications ?Demain : entrées/sorties = communications ?

– Étudier l’impact de fonctionnalités nouvellesÉtudier l’impact de fonctionnalités nouvellesTolérance aux pannes, dynamicitéTolérance aux pannes, dynamicité

Page 18: Équipe INRIA  RUNTIME

Évolution des architecturesÉvolution des architectures

Grappes de grande tailleGrappes de grande taille– Plusieurs milliers de nœudsPlusieurs milliers de nœuds– ProblèmesProblèmes

Passage à l’échelle des communicationsPassage à l’échelle des communications– Nombre de connexions point à point limitéesNombre de connexions point à point limitées– Gestion des ressources délicateGestion des ressources délicate

MultiplexageMultiplexageHiérarchisation virtuelleHiérarchisation virtuelle

– Travaux avec AlcatelTravaux avec Alcatel

Déploiement rapideDéploiement rapide– Travaux d’ApacheTravaux d’Apache

Page 19: Équipe INRIA  RUNTIME

Évolution des architecturesÉvolution des architectures

Grappes de grappesGrappes de grappes– Grappes reliées par un réseau rapideGrappes reliées par un réseau rapide– Réseau hétérogèneRéseau hétérogène

ProblèmesProblèmes– Communications performantesCommunications performantes

Utilisation des liens rapidesUtilisation des liens rapides

– DéploiementDéploiementEtablissement des connexionsEtablissement des connexions

Connaissance de la topologieConnaissance de la topologie

Dynamicité des configurations (ex: couplage)Dynamicité des configurations (ex: couplage)

Myrinet

SCI

Page 20: Équipe INRIA  RUNTIME

ContributionContributionCommunications performantes au sein Communications performantes au sein d’un émulateur de systèmes à grande d’un émulateur de systèmes à grande

échelleéchelle

Page 21: Équipe INRIA  RUNTIME

ContexteContexteFonctionnalités « système » pour des Fonctionnalités « système » pour des émulateurs d’infrastructures à grande échelle émulateurs d’infrastructures à grande échelle

Emulateurs

Applications

RUNTIME

Système d’exploitation

Matériel

Page 22: Équipe INRIA  RUNTIME

BesoinsBesoinsExploitation efficace d’architectures matérielles Exploitation efficace d’architectures matérielles de grande taillede grande taille– Grappe de 1000 PCGrappe de 1000 PC– Grid5000 (?)Grid5000 (?)

Support d’un grand nombre de Support d’un grand nombre de communications/connexions simultanéescommunications/connexions simultanées– Plusieurs milliers de fluxPlusieurs milliers de flux

Progression des comms/ordonnancement pilotés Progression des comms/ordonnancement pilotés par l’émulateurpar l’émulateur– Ralentissement volontaire des communications (?)Ralentissement volontaire des communications (?)– Étude de la frontière support exécutif/émulateurÉtude de la frontière support exécutif/émulateur

Outils de mesure et de prise de tracesOutils de mesure et de prise de traces– Précision des relevésPrécision des relevés– Temps virtuelTemps virtuel

Page 23: Équipe INRIA  RUNTIME

Multiplexage des Multiplexage des communicationscommunications

ProblèmeProblème– Chaque canal consomme des ressources réseauChaque canal consomme des ressources réseau

Tags BIP, descripteurs SCI, descripteurs TCPTags BIP, descripteurs SCI, descripteurs TCP– Le nombre de ressources peut dépendre du nombre de Le nombre de ressources peut dépendre du nombre de

nœuds nœuds Segments de mémoire partagée SCISegments de mémoire partagée SCI

Virtualiser les ressourcesVirtualiser les ressources– Idéalement : disposer de canaux virtuelsIdéalement : disposer de canaux virtuels

Utilisables comme des canaux physiques Utilisables comme des canaux physiques Disponibles en quantité arbitraireDisponibles en quantité arbitraire

Maximiser les performances Maximiser les performances – Trouver le bon niveau d’abstractionTrouver le bon niveau d’abstraction– Conserver les canaux réelsConserver les canaux réels

Page 24: Équipe INRIA  RUNTIME

Communications multiplexéesCommunications multiplexées

Rôle de l’émulateurRôle de l’émulateur– Communication directe des processus ?Communication directe des processus ?– Communications supervisées par l’émulateur ?Communications supervisées par l’émulateur ?

Gestion du tempsGestion du temps

Gestion des ressourcesGestion des ressources

Page 25: Équipe INRIA  RUNTIME

Outils pour l’analyse de performancesOutils pour l’analyse de performances

ProblèmeProblème– Reconstruire une séquence d’évènements récoltés à différents Reconstruire une séquence d’évènements récoltés à différents

niveauxniveaux– Contexte multithread hybride (threads noyau/utilisateur)Contexte multithread hybride (threads noyau/utilisateur)

Outils peu intrusifsOutils peu intrusifs– FKT (Robert Russell, UNH)FKT (Robert Russell, UNH)

Fast Kernel TraceFast Kernel TracePatch LinuxPatch Linux

– FUT (ReMaP)FUT (ReMaP)Fast User TraceFast User Trace

Exploitation des résultatsExploitation des résultats– Génération d’une « super-trace »Génération d’une « super-trace »

Unification des données FKT/FUTUnification des données FKT/FUTMise en corrélation des événementsMise en corrélation des événements

– Filtrage des informationsFiltrage des informationsExtraction des informations pertinentesExtraction des informations pertinentes

Page 26: Équipe INRIA  RUNTIME

Support multiprocessusSupport multiprocessus

ProblèmeProblème– Support exécutif actuel = multithreads, Support exécutif actuel = multithreads,

monoprocessusmonoprocessus

Extension possibleExtension possible– Exécution au sein d’un seul processusExécution au sein d’un seul processus– Chargement dynamique d’applicationsChargement dynamique d’applications

Compilation sous forme de codes relogeablesCompilation sous forme de codes relogeablesPerte de la protection entre espaces Perte de la protection entre espaces d’adressaged’adressage

– Approche adoptée par PadicoTMApproche adoptée par PadicoTM