Upload
darius
View
40
Download
0
Embed Size (px)
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
Citation preview
É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
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
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
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
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é !
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.
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
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
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
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
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
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
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
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…
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
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 ?
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é
É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
É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
ContributionContributionCommunications performantes au sein Communications performantes au sein d’un émulateur de systèmes à grande d’un émulateur de systèmes à grande
échelleéchelle
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
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
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
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
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
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