260 likes | 357 Vues
This research team focuses on developing efficient runtime support for cluster environments and parallel architectures, aiming to achieve hardware-like performance while maintaining application portability. Their work includes proposing new features, enhancing interface expressiveness, adapting operating systems, and evaluating performance criteria. The team's key contributions involve the Madeleine interface for portable and efficient communication on fast networks.
E N D
É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 • Marie-Christine Counilh, MdC Univ. Bdx 1
RUNTIME :supports exécutifs pour grappes Techniques d’optimisation des communications sur grappes… qui pourraient être utiles à un émulateur
Thématique de rechercheet compétences Environnements et supports exécutifs pour architectures parallèles
CPU CPU CPU CPU CPU Réseau rapide Architectures parallèles visées • Grappes de SMP (Symmetrical Multi-Processors) • Nœuds multiprocesseurs • Réseaux rapides (Myrinet, SCI, GigaEthernet, etc.) • Systèmes d’exploitation évolutifs (GNU/Linux, Win2K)
Problématique de recherche • Concevoir des supports exécutifs performants… • Exhibant des performances proches de celles du matériel … préservant la portabilité des applications • Assurer la « portabilité des performances » • portabilité !
Notre démarche • Pour y parvenir, il faut : • Proposer de nouvelles fonctionnalités • Augmenter l’expressivité des interfaces • Revisiter les standards… • Étudier finement les interactions entre composants • Établir de nouveaux schémas de coopération • Étendre les systèmes d’exploitation • Adopter une approche « exo-kernel » • Utiliser des critères pertinents d’évaluation des performances • Réactivité, transferts complexes, etc.
Cadre d’étude • Environnements de programmation pour applications parallèles irrégulières • PM2 (LIFL, ReMaP), Athapascan (Apache) • Contraintes de performance • Feedback applicatif important • Définition d’un support exécutif minimal • µPM2 • Communications • Multithreading • Gestion mémoire distribuée
Communications sur réseaux rapides • Objectif • Interface portable et efficace • Contraintes • Faible surcoût par rapport aux protocoles bas-niveau • Zéro-copie, communication en mode utilisateur • Problèmes difficiles • Diversité des technologies/protocoles réseau • Myrinet, SCI, GigaEthernet, etc. • Méthodes de transfert des données radicalement différentes • Schémas de communication irréguliers • Messages auto-décrits, réception non sélective
Communications sur réseaux rapides • Travaux connexes • BIP, GAMMA, AM, SBP, VIA : portabilité ? • MPI : manque d’expressivité de l’interface • Fast Messages : transferts explicites • Contribution : l’interface Madeleine • Point clé : programmation par contrat • Cohérence mémoire décorrélée des transferts • Contrôle transparent du niveau d’optimisation • portabilité des performances
Bilan • Bibliothèque Madeleine • Implantée sur BIP, SISCI, VIA, TCP, MPI • Performances excellentes • Utilisée au sein de plusieurs projets externes • Portée des résultats étendue à d’autres contextes • Thèse d’Olivier Aumage • Quels acquis ? • Grande expertise technologique • Approche originale et pertinente de l’optimisation des communications
Multithreading sur machines multiprocesseurs symétriques • Objectifs • Noyau de multithreading très performant • Fonctionnalités non-standard • Ordonnancement contrôlable (CEA/DAM, Scalapplix) • Interactions avec la gestion des Entrées/Sorties • Points clés • Coopération performante noyau/application • Réaction rapide aux interruptions • Évaluation et compréhension des performances
User Space Process Process Process Scheduler Scheduler Scheduler OS Kernel processor processor processor Multithreading sur machines multiprocesseurs symétriques • Quel niveau d’ordonnancement ? • Noyau/utilisateur/hybride
Multithreading sur machines multiprocesseurs symétriques • Travaux connexes • Scheduler Activations, LinuxThreads, FSU Pthreads, OpenThreads, GnuPth, NPTL, NGPT, Panda, etc. • Contributions • Ordonnanceur caméléon • Hybride dans le cas général • Spécialisable à la compilation • Extensions du modèle des Scheduler Activations • Réactivité aux événements d’E/S • Implantation dans Linux/x86 (LinuxActivations) • Support de l’ordonnanceur pour la scrutation des E/S • Factorisation des scrutations, contrôle du surcoût • Outils de génération et d’analyse de traces • Mise en corrélation de traces noyau + utilisateur
Bilan • Que sait-on faire ? • Ordonnanceurs très efficaces dans le cas général • Contrôle de l’ordonnancement au niveau applicatif • Thèse de Vincent Danjean • Problèmes difficiles • Spécifier l’ordonnancement de manière portable • Gestion des communications (dépend de la technologie réseau !) • Rem: approche « au tournevis » OK… • Comprendre les interactions avec les entrées/sorties • Évaluer les implications des scrutations/interruptions sur le déroulement des E/S • Ex: Scrutations actives en compétition avec les DMAs…
Simulation Code Coupling C3D Plants growing ProActivePDC PaCO++ OpenCCM Do! GK MPI DSM Mome Java VM CORBA PadicoTM Madeleine Marcel Myrinet VTHD VTHD SCI … GRID-RMI
Quels sont les défis auxquels nous sommes confrontés ? • Les architectures évoluent rapidement • Nouvelles technologies • Processeurs, réseaux • Quelles implications sur les modèles actuels ? • Expansion des configurations • Grappes de grande taille, hétérogènes • Comment réaliser des communications performantes ? • Les contraintes applicatives augmentent • Applications distribuées, couplage de code, Grid Computing • Dynamicité, tolérance aux pannes • Quel impact sur les performances ?
Quelques pistes • Communications • Savoir optimiser suivant différents critères • Temps de transfert • Perturbation moindre du processeur (recouvrement) • Qualité de service • Augmenter la généricité de l’architecture logicielle • Comment automatiser davantage le « portage » ? • Continuer la veille technologique • Technologie Infiniband • Demain : entrées/sorties = communications ? • Étudier l’impact de fonctionnalités nouvelles • Tolérance aux pannes, dynamicité
Évolution des architectures • Grappes de grande taille • Plusieurs milliers de nœuds • Problèmes • Passage à l’échelle des communications • Nombre de connexions point à point limitées • Gestion des ressources délicate • Multiplexage • Hiérarchisation virtuelle • Travaux avec Alcatel • Déploiement rapide • Travaux d’Apache
Myrinet SCI Évolution des architectures • Grappes de grappes • Grappes reliées par un réseau rapide • Réseau hétérogène • Problèmes • Communications performantes • Utilisation des liens rapides • Déploiement • Etablissement des connexions • Connaissance de la topologie • Dynamicité des configurations (ex: couplage)
Contribution Communications performantes au sein d’un émulateur de systèmes à grande échelle
Contexte • Fonctionnalités « système » pour des émulateurs d’infrastructures à grande échelle Applications Emulateurs RUNTIME Système d’exploitation Matériel
Besoins • Exploitation efficace d’architectures matérielles de grande taille • Grappe de 1000 PC • Grid5000 (?) • Support d’un grand nombre de communications/connexions simultanées • Plusieurs milliers de flux • Progression des comms/ordonnancement pilotés par l’émulateur • Ralentissement volontaire des communications (?) • Étude de la frontière support exécutif/émulateur • Outils de mesure et de prise de traces • Précision des relevés • Temps virtuel
Multiplexage des communications • Problème • Chaque canal consomme des ressources réseau • Tags BIP, descripteurs SCI, descripteurs TCP • Le nombre de ressources peut dépendre du nombre de nœuds • Segments de mémoire partagée SCI • Virtualiser les ressources • Idéalement : disposer de canaux virtuels • Utilisables comme des canaux physiques • Disponibles en quantité arbitraire • Maximiser les performances • Trouver le bon niveau d’abstraction • Conserver les canaux réels
Communications multiplexées • Rôle de l’émulateur • Communication directe des processus ? • Communications supervisées par l’émulateur ? • Gestion du temps • Gestion des ressources
Outils pour l’analyse de performances • Problème • Reconstruire une séquence d’évènements récoltés à différents niveaux • Contexte multithread hybride (threads noyau/utilisateur) • Outils peu intrusifs • FKT (Robert Russell, UNH) • Fast Kernel Trace • Patch Linux • FUT (ReMaP) • Fast User Trace • Exploitation des résultats • Génération d’une « super-trace » • Unification des données FKT/FUT • Mise en corrélation des événements • Filtrage des informations • Extraction des informations pertinentes
Support multiprocessus • Problème • Support exécutif actuel = multithreads, monoprocessus • Extension possible • Exécution au sein d’un seul processus • Chargement dynamique d’applications • Compilation sous forme de codes relogeables • Perte de la protection entre espaces d’adressage • Approche adoptée par PadicoTM