Date |
Jour |
Titre |
Intervenant |
27/04/2003 | jeudi | ||
25/04/2006 | mardi | Définition, modélisation et réalisation d’un système distribué à grande échelle : DIRAC | Vincent Garonne |
20/04/2003 | jeudi | ||
18/04/2006 | mardi | Algorithmique pour l'allocation et la tarification des ressources dans les réseaux télécoms avec garanties de service | Loubna Echabbi |
13/04/2003 | jeudi | Entrées-sorties réseau hautes performances dans les grappes | Brice
Goglin |
11/04/2004 | mardi | Approches fonctionnelles de la programmation parallèle et des méta-ordinateurs.Sémantiques, implantations et certification. | Frederic Gava |
6/04/2003 |
jeudi | Infrastructures de stockage efficaces et flexibles pour grappes | Renaud
Lachaize |
4/04/2006 | mardi | MPICH2:Nemesis, une implementation hautes-performances de MPI2 | Guillaume Mercier |
30/03/2006 | jeudi | Tarification des réseaux à différenciation de services | Yezekael Hayel |
28/03/2006 | mardi | Redistribution de données
à travers un
réseau à haut débit Séminaire reporté à cause grève nationale. |
Frederic Wagner |
23/03/2006 | jeudi | Introduction à l'ordonnancement pour les systèmes temps réel multiprocesseurs | Joël Goossens |
21/03/2006 |
mardi | Reporté | Vincent Garonne |
16/03/2006 |
jeudi | ANNULE |
|
9/03/2006 |
Plates-formes
d'expérimentation à grande échelle. Matinée de séminaire dans le cadre de l'école Grid'5000 |
H.Bal T.Friedmann F.Malek F.Fernandez |
|
2/03/2006 |
Algorithmique
distribuée dans des contextes dynamiques. |
Flavien Vernier | |
16/02/2006 |
Gestion de la tolérance aux fautes et de la cohérence des données dans le service de partage de donnée pour JuxMem | Sebastien Monnet | |
2/02/2006 | Algorithmes
paralleles à grain adaptatif - exemple des prefixes. |
Jean-Mouis Roch | |
26/01/2006 | Une plate-forme d'expérimentation pour ordonnanceurs sur machines hiérarchiques | Samuel Thibault |
Nous nous sommes intéressés par des problèmes algorithmiques concernant le routage intradomaine et interdomaine en considérant une vision économique.Nous considérons d'abord le problème d'allocation et de tarification auquel un fournisseur est confronté. Nous considérons une approche "off-line" où l'opérateur a une vision complète de son réseau et nous nous intéressons au problème d'admission des requ\^etes de service en prenant en compte leurs budgets. Nos résultats s'appuient d'une part sur l'analyse de complexité et d'autre part sur la théorie des matrices unimodulaires. Nous considérons ensuite une approche distribuée "en ligne", nous présentons DiMA un modèle qui permet de distribuer la décision d'admission des requetes sur les différents routeurs du réseau. Cette solution distribuée permet le passage à l'échelle, de plus elle permet une différentiation des services économiquement efficace gr\^ace à l'utilisation des enchères. Nous considérons enfin les incitations économiques qui peuvent influencer les décisions de routage interdomaine. Nos contributions consistent à proposer un premier modèle économique qui prend en compte les prix annoncés par les différents partenaires dans le choix des routes interdomaines. Nous présentons un mécanisme itérative qui permet de choisir les prix entre les différents opérateurs et analysons sa stabilité. |
Les environnements de calculs distribués à grande échelle se différencient des machines parallèles les ayant précédés par leurs natures intrinsèquement hétérogènes, partagées et fortement dynamiques. Ils se déclinent en deux types de système : les grilles institutionnelles qui mutualisent les ressources d’organismes par accord mutuel et les systèmes communautaires de calcul global. Dans ce séminaire, nous donnerons ainsi un état de l’art de ces systèmes et détaillons ensuite chacune de ces formes en décrivant leurs ressemblances et leurs différences. Nous observons l’avantage et l’intérêt d’avoir un système hybride conjuguant les deux aspects. Nous proposons une implémentation d’un système unifié DIRAC (Distributed Infrastructure With Remote Agent Control). Cette solution est un système léger, extensible et robuste, qui offre une plate-forme transparente et uniforme pour une seule communauté ou organisation virtuelle. DIRAC repose sur une architecture orientée service Agents/services régulant notamment la charge et les accès aux données dans le contexte de régime permanent et saturé (« High Throughput Computing ») générés par des simulations de Monte-carlo et des analyses de données de la physique de hautes énergies. Nous exposerons la démarche mise en oeuvre pour concevoir et définir ce système qui a a connecté plus de 6.000 processeurs répartis sur une soixantaine de sites dans le monde, a supporté plus de 5.500 tâches simultanées et a stocké, transféré et dupliqué plus de 100 téra-octets de données. Nous traiterons notamment de la difficulté d’évaluer rigoureusement des stratégies d’ordonnancement ou de méta-ordonnancement avec une plate-forme de système distribué à grande échelle. Nous présenterons notre modèle d’évaluation et de performances pour une plate-forme méta-ordonnancée composée de sites autonomes. Nous décrirons ensuite notre simulateur développé basé sur Simgrid et les travaux liés à sa validation. Cette évaluation se situe sur une plate-forme hétérogène pour des tâches simples dans un contexte de régime permanent et saturé. |
Je commencerai par rappeler rapidement le fonctionnement des réseaux des grappes en détaillant le problème des traduction d'adresse et de l'enregistrement mémoire. Je présenterai ensuite mes travaux de thèse qui ont consisté en l'étude des interfaces de programmation de ces réseaux dans le cadre du stockage distribué, la mise en évidence de certaines lacunes, puis des propositions pour répondre aux besoins du stockage distribué et leur intégration dans l'interface MX des réseaux Myrinet. Je présenterai ensuite mes travaux actuels sur l'adaptation du modèle de programmation de réseaux rapides aux nouvelles architectures matérielles. Je montrerai notamment que les modèles basés sur l'OS-bypass et le zéro-copie conçus il y a une dizaine d'années ne s'appliquent plus forcément aux machines modernes. Leur remise en cause permet d'envisager un support logiciel beaucoup plus simple et proche de celui des réseaux classiques (Ethernet), avec des performances inchangées. Je terminerai l'exposé en détaillant l'impact de la généralisation des machines hiérarchiques sur la conception des entrées-sorties. D'une part, l'augmentation du nombre de processeurs dans la machine et la saturation de leur fréquence impose de revoir la distribution de la charge de traitement des entrées-sorties. D'autre part, l'impact des contraintes NUMA sur les performances conduit à vouloir placer judicieusement les zones de mémoire intermédiaires et le traitement des entrées-sorties. |
Certains problèmes nécessitent des performances que seules les machines massivement parallèles ou les méta-ordinateurs peuvent offrir. L’écriture d’algorithmes pour ce type de machines demeure plus difficile que pour celles strictement séquentielles et la conception de langages adaptés est un sujet de recherche actif nonobstant la fréquente utilisation de la programmation concurrente. En effet, la conception d’un langage de programmation est le résultat d’un compromis qui détermine l’équilibre entre les différentes qualités du langage telles que l’expressivité, la sûreté, la prédiction des performances, l’efficacité ou bien la simplicité de la sémantique. Ce travail s'inscrivait dans le cadre du projet «CoordinAtion et Répartition des Applications Multiprocesseurs en objective camL» (CARAML) de l'ACI GRID dont l'objectif était le développement de bibliothèques pour le calcul haute-performance et globalisé autour du langage OCaml. Ce projet était organisé en trois phases successives : sûreté et opérations data-parallèles irrégulières mono-utilisateur ; opérations de multitraitement data-parallèle ; opérations globalisées pour la programmation de grilles de calcul. Cet exposé est organisé en 3 parties correspondant chacune aux contributions de l’auteur dans chacune des phases du projet CARAML : une étude sémantique d’un langage fonctionnel (appelé BSML) pour la programmation BSP (Bulk-Synchronous Parallelism, un modèle qui permet la portabilité des programmes tout en offrant une prévision réaliste de leurs performances sur une grande variété d'architectures parallèles) et la certification des programmes écrits dans ce langage ; une présentation d’une primitive de composition parallèle (et qui permet aussi la programmation d’algorithmes «diviser-pour-régner» parallèles), un exemple d’application via l’utilisation et l’implantation de structures de données parallèles et une extension pour les entrées/sorties parallèles en BSML ; l’adaption du langage pour le méta-calcul. |
L'infrastructure de
stockage sur laquelle repose une grappe a un impact majeur sur les
performances et la disponibilités des applications.
Il constitue également l'un des éléments les plus onéreux du système informatique global, à la fois en termes de coûts directs (matériel et logiciels) et de coûts indirects (administrateurs humains). Pour ces raisons, les systèmes de stockage sont en train d'évoluer vers des architectures plus parallèles, basées sur des composants génériques et implémentant la majorité des fonctions de manière logicielle. La première partie de cet exposé dressera un panorama des recherches actuelles sur la problématique émergente des "briques de stockage". Dans un second temps, je présenterai mes travaux récents sur les canevas logiciels pour systèmes de stockage répartis, avec un accent particulier sur la conception de systèmes de fichiers, les protocoles de tolérance aux pannes et le développement de services spécialisés pour certains domaines d'application. |
Les
réseaux de communication sont en expansion
permanente tant au point de vu de nouvelles applications, du nombres
d'usagers et du trafic. Il existe de nombreux outils
permettant la modélisation et l'étude des performances
des réseaux. Des outils
théoriques comme
les files d'attente sont utilisés pour évaluer les
performances de tels systèmes. Récemment, des
concepts de la théorie des jeux ont apportés une
vision
nouvelle à l'étude des réseaux. Je propose dans mon exposé de présenter une partie de mes travaux de thèse portant sur l'étude du contrôle de congestion via un mécanisme de tarification pour les réseaux à différenciation de services. Cette étude utilise des concepts de modélisation par des files d'attente multiclasses et également la théorie des jeux. Mots-clés: Réseaux de communication, Evaluation de performances, QoS, Théorie des jeux, Optimisation. |
Pour utiliser au mieux
les ressources distribuées (calculateurs parallèles,
grappes d'ordinateurs, serveurs de calcul ou de données,
ordinateur personnel, dispositifs de visualisation, etc.) et plus
généralement l'infrastructure numérique il est
nécessaire de mettre au point des environnements et des
algorithmes qui gèrent celle-ci de manière
optimisée.
Nous présentons le problème qui survient lorsque des données doivent être rapidement transférées d'un calculateur parallèle à un autre calculateur. C'est le cas lorsque le traitement fait intervenir du couplage de code ou lorsque l'on veut visualiser des données calculées par une machine parallèle. Ce problème appelé la redistribution de données est un problème très important quand les critères de performances sont au premier plan. Pour être résolu, il nécessite surtout d'optimiser l'ordre dans lequel les données sont transférées. Nous introduisons une modélisation de ce problème d'ordonnancement basé sur la théorie des graphes ainsi que deux algorithmes d'approximation le résolvant. Nous illustrons le développement de ces algorithmes par la transformation d'un algorithme pseudo-polynomial en algorithme polynomial. |
Cet exposé aborde
les techniques d'ordonnancement multiprocesseurs ; le
but est essentiellement de montrer en quoi l'ordonnancement
multiprocesseur temps réel (un domaine de recherche relativement
jeune)
n'est pas une simple extension du cas monoprocesseur
(déjà bien étudié
dans la littérature). La première partie de l'exposé constitue une introduction aux systèmes temps réel, aux techniques et problèmes d'ordonnancement classiques. La deuxième partie de l'exposé introduit le problème plus général de l'ordonnancement sur des plates-formes multiprocesseurs et montre en quoi l'ordonnancement multiprocesseur n'est pas une simple extension du cas monoprocesseur : absence d'algorithmes optimaux, anomalies d'ordonnancement, etc. La troisième partie de l'exposé présente une technique par augmentation de ressources pour l'ordonnancement de tâches temps réel avec l'assignation de priorité Rate Monotonic sur des plates-formes hétérogènes multiprocesseurs (travail conjoint avec Sanjoy Baruah, Université de Caroline du Nord). |
Jusqu'a tres recemment,
les implementations du standard MPI2 n'etaient pas tres courante,
quelques constructeurs seulement les proposaient avec leur materiel.
Depuis quelques mois, l'univers MPI a bouge avec l'apparition de
nouvelles implementations libres : MPICH2, Open MPI ou
encore YAMPII. Dans cet expose, je detaillerai un sous-systeme de
communication qui a ete cree et developpe pour permettre a MPICH2
d'obtenir de hautes performances. Je montrerai egalement les premiers
resultats obtenus (certains publies, d'autres non) et etablierai des
comparaisons entre les precedents sous-systemes de communication
existants pour MPICH2, mais aussi avec les implementations concurrentes.
|
Resumé : Avec l'évolution actuelle du
calcul distribué sur grilles, de nouvelles problématiques
sont apparues telles que le dynamisme des topologies.
Au cours de ma thèse je me suis penché sur le
problème de l'application des algorithmes itératifs
d'équilibrage de charge sur des topologies dynamiques. Je présenterai ces travaux pour un algorithme en particulier : la diffusion de premier ordre. Je l'aborderai aussi bien d'un point de vu théorique que pratique. Puis j'évoquerai mes travaux en cours sur des algorithmes de détection de convergence et d'exclusion mutuelle dans des contextes dynamiques. Je conclurai cette présentation par divers perspectives que j'envisage. |
Résumé
: La
gestion de
données à large échelle est un besoin
crucial pour
les
applications sur la grille de calcul. Cependant, il n'existe pas d'approche standard pour le partage de données qui soit largement acceptée par la communauté. Les solutions actuelles sont basées sur des transferts explicites des données. Avec le nombre croissant d'applications qui emploient d'importants volumes de données, nous pensons que la gestion explicite des données devient une difficulté majeure pour les programmeurs. Un service de partage de données pour le calcul sur grille devrait fournir un accès transparent aux données. Le prototype JuxMem est une illustration de ce type de service. Il gère, de manière transparente, la localisation et le transfert des données sans aucune intervention de l'utilisateur. Vu l'échelle du système (plusieurs milliers de noeuds), un tel service doit être conçu pour un environnement volatil : les arrivées, les départs des ressources ou leur défaillance doivent être supportés de manière transparente. En conséquence, le rôle d'un tel service réside aussi dans l'emploi d'une stratégie de réplication et dans l'utilisation d'un protocole de cohérence afin de garantir la disponibilité des données. Dans cette présentation, nous nous concentrons sur le problème de la gestion de la cohérence de données répliquées en présence de défaillances. Nous proposons une architecture logicielle qui découple la gestion de la tolérance aux défaillances de celle de la cohérence. Ceci est illustré par une étude de cas montrant comment concevoir un protocole de cohérence s'appuyant sur des modules de tolérance aux défaillances. http://juxmem.gforge.inria.fr/ |
Résumé
: Pour
l'execution sur processeurs heterogenes
ou dont la vitesse (charge) peut
varier en cours d'exécution, nous presentons un
schéma algorithmique parallèle
générique permettant d'adapter la
granularité du parallélisme à la charge
(variable) des processeurs.
Ce schéma est basé sur le couplage récursif
et dynamique d'un algorithme séquentiel optimal et d'un
algorithme parallèle
non optimal mais récursif et à grain fin. Il
exploite un ordonnancement
dynamique de type vol de travail (Cilk, Kaapi) modifié par
Bender&Rabin pour être à utilisation maximale sur p processeurs à vitesses variables, de vitesse moyenne V. Ce schéma est instancié sur le calcul des préfixes. En effet, toute parallélisation de ce problème entraîne nécessairement un surcoût en nombre d'opérations: alors qu'un calcul séquentiel nécessite n opérations, tout algorithme (parallèle) de profondeur d requiert au moins 2n-d opérations. Bien que l'algorithme adaptatif de préfixes proposé soit indépendant du nombre de processeurs, son temps d'exécution théorique est $\frac{2n}{V.(p+1)} + O(log n)$, ce qui asymptotiquement optimal si les processeurs sont identiques (i.e. $V=1$) et ce quel que soit le nombre $p >= 1$ de processeurs. Expérimentalement, cet algorithme adaptatif pour les préfixes est comparé à des algorithmes optimaux, séquentiel (p=1) et parallèles (p>1) pour un nombre fixé p de processeurs identiques sur une machine SMP octo-processeurs. Même pour des petites valeurs de $n$ (100) et de $p$ (de 1 à 8), l'algorithme adaptatif a des performances optimales dans le cas où les processeurs sont dédiées au calcul; et il est beaucoup plus rapide dans le cas général où la machine exécute concuremment d'autres processus (cas multi-utilisateurs). References ---------- Jean-Louis Roch, Daouda Traore : Un algorithme adaptatif optimal pour le calcul parallèle des préfixes (en cours de soumission) El-Mostafa Daoudi, Thierry Gautier, Aicha Kerfali, Rémi Revire, and Jean-Louis Roch. Algorithmes parallèles à grain adaptatif et applications. Technique et Science Informatiques, 24/5:1-20, 2005. M. A. Bender and M. O. Rabin. "Online Scheduling of Parallel Programs on Heterogeneous Systems with Applications to Cilk." Theory of Computing Systems Special Issue on SPAA '00, 35: 289-304, 2002. |
Résumé
: La tendance actuelle des constructeurs est à l'HyperThreading, au multi-core et autres technologies NUMA (Non-Uniform Memory Access), produisant ainsi des machines très hiérarchisées. Pour pouvoir profiter le mieux possible de telles architectures, il est nécessaire de pouvoir contrôler finement le placement des threads et des données. De quels outils dispose-t-on pour cela ? L'interface POSIX ne fournit absolument aucune aide ; les différents systèmes d'exploitations existants fournissent parfois quelques primitives de placement statique. Au final, si l'on veut contrôler vraiment l'ordonnancement, on est obligé de modifier le noyau. Notre réponse est basée sur un concept de bulles permettant au programmeur de regrouper de manière hiérarchisée les différents threads de son application. Chaque application ayant ses spécificités, un ordonnancement générique n'obtiendrait pas de très bonnes performances. Nous fournissons donc un ensemble d'outils pour gérer finement l'ordonnancement de l'hiérarchie de bulles (placement, préemption, migration, priorités, ...). Le programmeur dispose ainsi, pour ses applications multithreadées habituelles (POSIX), d'une véritable plate-forme d'expérimentation pour développer des ordonnanceurs de threads en espace utilisateur. Les applications envisagées vont de l'optimisation de simulations sismiques (au sein du projet ANR NUMASIS) à l'émulation équitable de machines virtuelles pour exécuter des algorithmes distribués (au sein de l'ACI GRIGRID). |