Download Free Conception Et Evaluation Dun Mecanisme De Memoire Virtuelle Partagee Sur Une Machine Multiprocesseur A Memoire Distribuee Book in PDF and EPUB Free Download. You can read online Conception Et Evaluation Dun Mecanisme De Memoire Virtuelle Partagee Sur Une Machine Multiprocesseur A Memoire Distribuee and write the review.

LES BESOINS EN PUISSANCE DE CALCUL ONT MOTIVE DE NOMBREUSES RECHERCHES DANS LE DOMAINE DES ARCHITECTURES. DEPUIS QUELQUES ANNEES, CES RECHERCHES ONT DONNE NAISSANCE AUX MACHINES PARALLELES A MEMOIRE DISTRIBUEE QUI SEMBLENT ETRE LA VOIE ACTUELLE POUR REALISER DES ARCHITECTURES MASSIVEMENT PARALLELES. CEPENDANT, LA DIFFICULTE DE PROGRAMMATION DE CES MACHINES REND DIFFICILE L'EXPLOITATION DE LEUR PERFORMANCE INTRINSEQUE. ACTUELLEMENT, DES RECHERCHES SONT MENEES DANS LE DOMAINE DE LA CONCEPTION D'ENVIRONNEMENTS DE PROGRAMMATION AFIN DE FACILITER L'UTILISATION DE CES MACHINES. A CE TITRE, LA MEMOIRE VIRTUELLE PARTAGEE PARAIT ETRE UN CONCEPT INTERESSANT: ELLE OFFRE UN ESPACE D'ADRESSAGE GLOBAL PERMETTANT UNE ABSTRACTION DE LA LOCALISATION DES DONNEES SUR LES DIFFERENTES MEMOIRES LOCALES. NOUS NOUS SOMMES INTERESSES A LA CONCEPTION, LA REALISATION ET LA VALIDATION D'UN DISPOSITIF DE MEMOIRE VIRTUELLE PARTAGEE APPELE KOAN SUR UNE ARCHITECTURE PARALLELE A MEMOIRE DISTRIBUEE, EN L'OCCURANCE UN HYPERCUBE IPSC/2. NOUS AVONS PAR LA SUITE EVALUE L'EFFICACITE D'UN TEL DISPOSITIF SUR DES APPLICATIONS PARALLELES. CETTE PHASE D'EXPERIMENTATION NOUS A PERMIS DE METTRE EN RELIEF LES PROBLEMES LIES A L'UTILISATION D'UNE MEMOIRE VIRTUELLE PARTAGEE ET DE PROPOSER DES SOLUTIONS ADEQUATES
Le but principal de cette thèse est d'étudier et de réaliser un émulateur performant de machines parallèles dotées d'une mémoire virtuelle partagée distribuée. Cet émulateur doit permettre d'évaluer la charge induite par des machines de ce type sur le réseau d'interconnexion, afin d'en choisir la meilleure topologie. Pour cela, ce travail est divisé en deux parties. La première est constituée d'une étude de l'éventail des techniques pouvant être utilisées lors de la construction d'une hiérarchie de mémoires ou lors du maintien de la cohérence des données contenues dans cette hiérarchie. La seconde partie décrit le fonctionnement de l'émulateur. Pour que celui-ci soit performant, il faut qu'il puisse faire varier un nombre important de paramètres de la machine émulée et qu'il puisse utiliser un grand nombre d'applications de taille significative. Pour cela, nous utilisons une technique qui permet de réellement exécuter les instructions et de ne simuler que les envois de pages sur le réseau. Les paramètres de l'émulateur sont le nombre de processeurs, les caractéristiques du réseau (débit, latence), et le type de maintien de la cohérence utilisé (5 possibles). En ce qui concerne les applications, il est possible de faire varier la taille et pour certaines la répartition des données. L'émulateur construit s'exécute au-dessus d'un micro-noyau MACH et d'un serveur UNIX. Il exploite certaines fonctionnalités du micro-noyau MACH, en particulier les paginateurs externes
Le but principal de cette thèse est d'étudier et de réaliser un émulateur performant de machines parallèles dotées d'une mémoire virtuelle partagée distribuée. Cet émulateur doit permettre d'évaluer la charge induite par des machines de ce type sur le réseau d'interconnexion, afin d'en choisir la meilleure topologie. Pour cela, ce travail est divisé en deux parties. La première est constituée d'une étude de l'éventail des techniques pouvant être utilisées lors de la construction d'une hiérarchie de mémoires ou lors du maintien de la cohérence des données contenues dans cette hiérarchie. La seconde partie décrit le fonctionnement de l'émulateur. Pour que celui-ci soit performant, il faut qu'il puisse faire varier un nombre important de paramètres de la machine émulée et qu'il puisse utiliser un grand nombre d'applications de taille significative. Pour cela, nous utilisons une technique qui permet de réellement exécuter les instructions et de ne simuler que les envois de pages sur le réseau. Les paramètres de l'émulateur sont le nombre de processeurs, les caractéristiques du réseau (débit, latence), et le type de maintien de la cohérence utilisé (5 possibles). En ce qui concerne les applications, il est possible de faire varier la taille et pour certaines la répartition des données. L'émulateur construit s'exécute au-dessus d'un micro-noyau MACH et d'un serveur UNIX. Il exploite certaines fonctionnalités du micro-noyau MACH, en particulier les paginateurs externes.
La programmation par variables partagees est utilisee dans les architectures paralleles sans memoire commune grace a une couche logicielle qui simule la memoire physiquement partagee. Le maintien de l'abstraction parfaite d'une memoire unique necessite un grand nombre d'operations de coherence et, par consequent, une degradation importante des performances. Afin de palier cette degradation, plusieurs systemes se servent des modeles de coherence de la memoire plus relaches, qui permettent une concurrence plus importante entre les acces mais compliquent le modele de programmation. Le choix d'un modele de coherence est donc un compromis entre les performances et la simplicite de la programmation. Ces deux facteurs dependent des attentes des utilisateurs et des caracteristiques d'acces aux donnees de chaque applications parallele. Cette these presente diva, un systeme a memoire virtuelle partagee qui supporte plusieurs modeles de coherence de la memoire. Avec diva, l'utilisateur peut choisir la semantique de la memoire partagee la plus appropriee a l'execution correcte et performante de son application. De plus, diva offre a l'utilisateur la possibilite de definir ses propres modeles de coherence. L'existence des modeles multiples a l'interieur de diva a guide les choix de conception de plusieurs autres mecanismes. Ainsi, nous proposons une interface unique de synchronisation et des mecanismes de remplacement et prechargement des pages adaptes a un environnement a modeles multiples. Un prototype de diva a ete mis en uvre sur la machine parallele intel/paragon. L'analyse d'une application qui s'execute sur des differents modeles de coherence nous a permis de montrer que le choix du modele de coherence affecte directement les performances d'une application.
LA PROGRAMMATION PAR VARIABLES PARTAGEES EST UTILISEE DANS LES ARCHITECTURES PARALLELES SANS MEMOIRE COMMUNE GRACE A UNE COUCHE LOGICIELLE QUI SIMULE LA MEMOIRE PHYSIQUEMENT PARTAGEE. LE MAINTIEN DE L'ABSTRACTION PARFAITE D'UNE MEMOIRE UNIQUE NECESSITE UN GRAND NOMBRE D'OPERATIONS DE COHERENCE ET, PAR CONSEQUENT, UNE DEGRADATION IMPORTANTE DES PERFORMANCES. AFIN DE PALIER CETTE DEGRADATION, PLUSIEURS SYSTEMES SE SERVENT DES MODELES DE COHERENCE DE LA MEMOIRE PLUS RELACHES, QUI PERMETTENT UNE CONCURRENCE PLUS IMPORTANTE ENTRE LES ACCES MAIS COMPLIQUENT LE MODELE DE PROGRAMMATION. LE CHOIX D'UN MODELE DE COHERENCE EST DONC UN COMPROMIS ENTRE LES PERFORMANCES ET LA SIMPLICITE DE LA PROGRAMMATION. CES DEUX FACTEURS DEPENDENT DES ATTENTES DES UTILISATEURS ET DES CARACTERISTIQUES D'ACCES AUX DONNEES DE CHAQUE APPLICATIONS PARALLELE. CETTE THESE PRESENTE DIVA, UN SYSTEME A MEMOIRE VIRTUELLE PARTAGEE QUI SUPPORTE PLUSIEURS MODELES DE COHERENCE DE LA MEMOIRE. AVEC DIVA, L'UTILISATEUR PEUT CHOISIR LA SEMANTIQUE DE LA MEMOIRE PARTAGEE LA PLUS APPROPRIEE A L'EXECUTION CORRECTE ET PERFORMANTE DE SON APPLICATION. DE PLUS, DIVA OFFRE A L'UTILISATEUR LA POSSIBILITE DE DEFINIR SES PROPRES MODELES DE COHERENCE. L'EXISTENCE DES MODELES MULTIPLES A L'INTERIEUR DE DIVA A GUIDE LES CHOIX DE CONCEPTION DE PLUSIEURS AUTRES MECANISMES. AINSI, NOUS PROPOSONS UNE INTERFACE UNIQUE DE SYNCHRONISATION ET DES MECANISMES DE REMPLACEMENT ET PRECHARGEMENT DES PAGES ADAPTES A UN ENVIRONNEMENT A MODELES MULTIPLES. UN PROTOTYPE DE DIVA A ETE MIS EN UVRE SUR LA MACHINE PARALLELE INTEL/PARAGON. L'ANALYSE D'UNE APPLICATION QUI S'EXECUTE SUR DES DIFFERENTS MODELES DE COHERENCE NOUS A PERMIS DE MONTRER QUE LE CHOIX DU MODELE DE COHERENCE AFFECTE DIRECTEMENT LES PERFORMANCES D'UNE APPLICATION
(...)Ce travail de thèse se place dans le contexte de la problématique des contentions mémoires sur les machines multiprocesseurs. Nous proposons l'utilisation des compteurs matériels en tant qu'élément d'un système de contrôle permettant de modifier l'ordonnancement de l'exécution des processus en présence d'une contention. La politique de contrôle retenue consiste à maximiser le rendement de la machine ce qui correspond généralement au point de vue de l'administrateur. Le contrôle d'exécution des processus est basé sur l'estimation des performances via l'observation de l'utilisation mémoire. Ce mécanisme d'estimation est l'issue d'une étude sur l'impact des capacités des hiérarchies mémoires sur les performances des multiprocesseurs. Parmi les architectures processeurs des machines étudiées, nous avons trouvé des événements matériels capables d'établir un lien entre le niveau d'utilisation mémoire et les performances des applications. Puisque l'observation de l'utilisation mémoire est possible via les compteurs matériels en cours d'exécution, l'estimation des performances l'est aussi.(...)Ce mémoire de thèse est composé de 7 chapitres, dont l'introduction et la conclusion. Les paragraphes suivants résument l'ensemble des chapitres. Chapitre 2 : Ce chapitre intitulé Multiprocesseurs et compteurs matériels est consacré à la présentation des éléments de base nécessaires à l'ensemble des études de cette thèse. Dans une première partie, nous présentons les principales évolutions des performances des processeurs et des mémoires. Nous en retirons un déséquilibre des capacités des débits mémoire en fonction de celles de calculs des processeurs. Par la suite, il est présentée l'étude des modèles de programmation parallèle et les ordonnanceurs disponibles pour les machines multiprocesseurs. Enfin, dans la dernière partie, nous décrivons en détail les compteurs matériels de performances des quelques architectures processeurs que nous avons étudiés. Chapitre 3 : Ce chapitre intitulé Outils et bibliothèques de contrôle du système, présente un état de l'art des bibliothèques d'utilisation des compteurs matériels de performances, des outils d'analyse de performances et des systèmes de contrôle. Le nombre et le format des compteurs matériels varient d'une architecture à l'autre. C'est dans ce contexte que des bibliothèques ont été développées afin de simplifier l'utilisation des compteurs. En réduisant la complexité d'utilisation des compteurs matériels, ces bibliothèques ont permis une intégration simple des observations des activités matérielles dans les outils d'analyse de performances. Ainsi, ces outils disposent des informations en provenance du niveau matériel, du système et de l'applicatif ce qui permet une analyse plus fine de l'ensemble du système et de l'application. Finalement, les outils de contrôle en cours d'exécution peuvent prendre en compte les activités matérielles pour leurs prises de décisions. Chapitre 4 : Dans ce chapitre intitulé Observation de l'utilisation mémoire sur les machines multiprocesseurs nous décrivons l'étude du comportement mémoire des applications observées via les compteurs matériels liés à la hiérarchie mémoire. Sur certaines architectures, il est possible d'établir un rapport entre le débit de l'utilisation du bus mémoire et l'accélération obtenue. Nous cherchons ici à obtenir les éléments nécessaires à l'élaboration d'un système de contrôle de processus. Dans une deuxième partie, une observation et une analyse des comportements des applications en fonctions du temps ont été proposées. Pour conclure, nous présentons une étude préliminaire sur l'influence provoquée par l'activité d'autres ressources telles que celles issues d'une carte réseau ou des activités des entrées et sorties de périphériques de stockage sur la hiérarchie mémoire. Chapitre 5 : Dans ce chapitre intitulé DRAC : Un système de contrôle d'exécution, nous présentons l'architecture d'un système de contrôle de processus pour machine multiprocesseurs. La première partie est consacrée au principe du système avec ces objectifs ainsi que les problèmes provoqués par l'exécution de processus avec dépendance et synchronisation. Ensuite, nous décrivons les trois modules centraux de l'architecture, le moniteur mémoire, l'ordonnanceur et le gestionnaire des jobs. Enfin, dans la dernière partie, le prototype de ce système est détaillé. Chapitre 6 : Dans ce chapitre intitulé Modélisation et évaluation, nous commençons par définir un modèle général et simplifié prenant en compte l'impact de la hiérarchie mémoire sur les performances d'un multiprocesseur. Puis, nous avons défini des modèles d'ordonnancements qui permettent d'évaluer les temps d'exécution selon trois scénarios d'ordonnancement différents (pire, moyen, meilleur). Finalement, la dernière partie contient les évaluations du prototype du système DRAC sur trois architectures processeurs différentes. Pour conclure, un bilan général du travail ainsi que des pistes pour des travaux futurs seront présentés dans le dernier chapitre.
GRACE AU PROGRES DES MICROPROCESSEURS, LES STATIONS DE TRAVAIL SONT RECEMMENT DEVENUES UNE RESSOURCE DE CALCUL CONSIDERABLE. STIMULES PAR UN NOUVEAU CONTEXTE BUDGETAIRE, DES PROJETS DE RECHERCHE SE SONT PROPOSES D'EXPLOITER CETTE RESSOURCE AU TRAVERS DE PROGRAMMES PARALLELES. PLUS PARTICULIEREMENT, DES LOGICIELS PERMETTANT DE GROUPER UN ENSEMBLE DE STATIONS DE TRAVAIL EN UNE MACHINE PARALLELE ONT ETE DEVELOPPES. CES SOLUTIONS SONT CONCEPTUELLEMENT ATTIRANTES, CEPENDANT, ELLES SOUFFRENT D'UNE MISE EN UVRE COMPLEXE ET DE FAIBLES PERFORMANCES. L'APPARITION DE LIENS EN FIBRE OPTIQUE A HAUT DEBIT (1 GBIT/S) PERMET UNE APPROCHE NOUVELLE D'UN TEL SYSTEME. DANS CETTE THESE, NOUS PROPOSONS UNE CONFIGURATION DENOMMEE WARPMEMORY OU LES STATIONS SONT RELIEES A UN DISPOSITIF MATERIEL EXTERNE. CE DISPOSITIF FONCTIONNE COMME UN SERVEUR MEMOIRE PARTAGEE : LA COHERENCE DES DONNEES EST ENTIEREMENT ASSUREE PAR LE MATERIEL ET LES ECHANGES SONT TRES RAPIDES. PAR CONSEQUENT, UN ENSEMBLE DE STATIONS DE TRAVAIL PEUT ETRE TRANSFORME EN UN MULTIPROCESSEUR DISTRIBUE, TRES SIMILAIRE AUX MACHINES MULTIPROCESSEURS BASEES SUR UN BUS. EN OUTRE, LA COMPATIBILITE AVEC LE MATERIEL ET LOGICIEL EXISTANT RESTE PRESERVEE AVEC WARPMEMORY. NOUS EXPOSONS EGALEMENT L'INTEGRATION D'UN RESEAU PUBLIC A HAUT DEBIT (ATM) DANS CETTE ARCHITECTURE. PARALLELEMENT, DES OUTILS DE SIMULATION DE SYSTEMES MULTIPROCESSEURS ONT ETE DEVELOPPES. ILS PERMETTENT L'EXECUTION D'UNE APPLICATION PARALLELE SUR UNE STATION MONOPROCESSEUR, TOUT EN EVALUANT LES PERFORMANCES DU SYSTEME MULTIPROCESSEUR A L'ETUDE. NOTRE SIMULATEUR EST BASE SUR UNE APPROCHE NOVATRICE, A SAVOIR L'EMPLOI DE MACHINES A ETAT DANS LA SIMULATION DES ACCES A LA MEMOIRE. CECI PERMET DE REALISER UN SIMULATEUR PARTICULIEREMENT EFFICACE ET SIMPLE. NOUS AVONS UTILISE LE SIMULATEUR POUR UNE EVALUATION DES PERFORMANCES DE WARPMEMORY, ET MIS EN EVIDENCE L'IMPACT DE DIFFERENTS PARAMETRES, TELS QUE LE DEBIT DES LIENS OPTIQUES ET LE NOMBRE DE STATIONS CONNECTEES.
LES SYSTEMES DE MEMOIRE DISTRIBUEE VIRTUELLEMENT PARTAGEE (MDVP) ESSAIENT DE COMBINER LES AVANTAGES DES MACHINES A MEMOIRE PARTAGEE ET DES MACHINES A MEMOIRE DISTRIBUEE. CETTE THESE PROPOSE UN NOUVEAU MODELE DE MDVP QUI S'APPUIE SUR UNE STRUCTURATION HIERARCHIQUE DE L'APPLICATION EN GROUPES DE PROCESSUS. ETENDANT ET GENERALISANT LA NOTION DE COPY SET, CE CONCEPT GARANTIT UNE BONNE EXTENSIBILITE AUX APPLICATIONS GRACE A UNE MINIMISATION DES COUTS DE GESTION ET PERMET DE S'ADAPTER AU PLUS PRES A LA STRUCTURE DES APPLICATIONS ET DES ARCHITECTURES-CIBLES. CE MODELE AMELIORE EGALEMENT LA DISPONIBILITE DES DONNEES ET REDUIT LES GOULOTS D'ETRANGLEMENT VIA LE DECOUPAGE ET LA GESTION REPARTIE D'OBJETS PARTAGES VOLUMINEUX, LA MISE EN OEUVRE DE PROTOCOLES DE COHERENCE RELACHES ET LE MELANGE DE PLUSIEURS MODELES DE PROGRAMMATION. CETTE THESE DECRIT AUSSI UN ENVIRONNEMENT DE PROGRAMMATION ORIGINAL BASE SUR LE SYSTEME DOSMOS : DISTRIBUTED OBJECTS SHARED MEMORY SYSTEM, C'EST A DIRE UN SYSTEME DE MEMOIRE PARTAGEE D'OBJETS DISTRIBUES, CONCU POUR DES EXECUTIONS SUR UNE VASTE GAMME D'ARCHITECTURES ALLANT DES SYSTEMES DISTRIBUES AUX MACHINES MASSIVEMENT PARALLELES. CE SYSTEME EST COMPLETE PAR UN ENVIRONNEMENT DE PROGRAMMATION PARALLELE INTEGRE QUI ASSISTE L'UTILISATEUR DANS TOUTES LES ETAPES DE LA PROGRAMMATION EN PROPOSANT UN ENSEMBLE D'OUTILS PUISSANTS (ANALYSEUR-OPTIMISEUR, GESTION DES PLATES-FORMES VIRTUELLES HETEROGENES, MONITORING ET EVALUATION DE PERFORMANCES...)
Cette thèse présente le système d'exploitation MutekH, capable de s'exécuter nativement sur une plateforme matérielle multiprocesseur, où les processeurs peuvent être de complexité différente et disposer de spécificités ou de jeux d'instructions différents. Les travaux présentés ici s'insèrent dans un contexte où les systèmes multi-core et les processeurs spécialisés permettent tous deux de réduire la consommation énergétique et d'optimiser les performances dans les systèmes embarqués et dans les systèmes sur puce. Les autres solutions logicielles existantes permettant l'exécution d'applications sur des plateformes multiprocesseurs hétérogènes ne permettent pas, à ce jour, la communication par mémoire partagée, telle qu'on l'envisage habituellement pour les systèmes multiprocesseurs homogènes. Cette solution est la seule qui permet la réutilisation du code source d'applications parallèles existantes pour leur exécution directe par des processeurs différents. La solution proposée est mise en oeuvre en deux phases: grâce au développement d'un noyau dont l'abstraction rend transparente l'hétérogénéité des processeurs, puis à la réalisation d'un outil spécifique d'édition des liens, capable d'harmoniser le code et les données des fichiers exécutables chargés en mémoire partagée. Les résultats obtenus montrent que MutekH permet l'exécution d'applications préexistantes utilisant des services standards, tels que les Threads POSIX, sur des plateformes multiprocesseurs hétérogènes sans dégradation des performances par rapport aux autres systèmes d'exploitation opérant sur des plateformes multiprocesseurs classiques.