Download Free Conception Dun Systeme Supportant Des Modeles De Coherence Multiples Pour Les Machines Paralleles A Memoire Virtuelle Partagee Book in PDF and EPUB Free Download. You can read online Conception Dun Systeme Supportant Des Modeles De Coherence Multiples Pour Les Machines Paralleles A Memoire Virtuelle Partagee and write the review.

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.
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
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...)
LES SYSTEMES DE MEMOIRE DISTRIBUEE VIRTUELLEMENT PARTAGEE (MDVP) PERMETTENT DE MANIPULER DES DONNEES REPARTIES DE MANIERE TRANSPARENTE AU-DESSUS D'ARCHITECTURES PARALLELES A MEMOIRE DISTRIBUEE. AINSI, LE ROLE DES SYSTEMES DE MDVP CONSISTE A PRENDRE EN CHARGE TOUTES LES COMMUNICATIONS NECESSAIRES POUR ACCEDER AUX DONNEES PARTAGEES EN RESPECTANT UN CERTAIN MODELE DE COHERENCE ENTRE LES COPIES DE CES DONNEES. LA PLUPART DE CES SYSTEMES AFFICHENT MALHEUREUSEMENT DES PERFORMANCES LIMITEES ET SOUFFRENT D'UN MANQUE IMPORTANT D'OUTILS DE DEVELOPPEMENT. DANS CE CADRE, L'OBJECTIF DE CETTE THESE EST DE FORMALISER ET DE PROPOSER UN ENVIRONNEMENT DE PROGRAMMATION ET D'EXECUTION PARALLELE FONDE SUR DES MECANISMES DE MDVP INTEGRE (C'EST-A-DIRE ASSOCIANT OUTILS DE STRUCTURATION D'APPLICATIONS, OUTILS DE COMPILATION ET DE PORTAGE, OUTILS DE TRACAGE D'EXECUTION). AINSI, L'ENVIRONNEMENT DOSMOS (DISTRIBUTED OBJECTS SHARED MEMORY SYSTEM) PRESENTE DANS CETTE THESE PROPOSE UN CERTAIN NOMBRE DE FONCTIONNALITES ORIGINALES : STRUCTURATION HIERARCHIQUE DE L'ESPACE MEMOIRE PARTAGE VIA LA CREATION DE GROUPES DE PROCESSUS FONDES SUR LA STRUCTURE DE L'APPLICATION, POSSIBILITE DE DECOUPER DES VARIABLES PARTAGEES EN SOUS-VARIABLES AFIN DE LIMITER VOIRE DE SUPPRIMER LE PROBLEME DU FAUX-PARTAGE, MISE EN OEUVRE D'UN MODELE DE COHERENCE FAIBLE ET DE PROTOCOLES DE GESTION DE CACHE A PLUSIEURS NIVEAUX, ENVIRONNEMENT DE TRACAGE D'EXECUTION EXTENSIBLE ET DISTRIBUE SPECIALEMENT ADAPTE AUX APPLICATIONS UTILISANT UNE MDVP EN VUE D'OPTIMISER LEURS IMPLEMENTATIONS. DEUX VERSIONS DE CE SUPPORT D'EXECUTION ONT ETE MODELISEES ET DEVELOPPEES, L'UNE A BASE DE PROCESSUS LOURDS, L'AUTRE A BASE DE PROCESSUS LEGERS DISTRIBUES. DES EXPERIMENTATIONS ET PLUSIEURS ETUDES DE CAS COMPLETENT CE MANUSCRIT. LES PERFORMANCES OBTENUES PLACENT DOSMOS PARMI LES SYSTEMES DE MDVP LES PLUS PERFORMANTS, TOUT EN BENEFICIANT D'UNE INTERFACE DE PROGRAMMATION PARTICULIEREMENT RICHE.
L'OBJET DE CETTE THESE EST L'IMPLANTATION D'UN LANGAGE DE PROGRAMMATION PARALLELE DE HAUT NIVEAU SUR DES MACHINES PHYSIQUES PARALLELES A MEMOIRE PARTAGEE OU DISTRIBUEE. LE LANGAGE SUPPORT DE L'ETUDE, LCS, COMBINE LES ASPECTS HAUT NIVEAU DU LANGAGE FONCTIONNEL STANDARD ML ET LE MODELE DES PROCESSUS COMMUNICANTS CCS. L'IMPLANTATION REPOSE SUR UNE MACHINE VIRTUELLE PARALLELE, COMPOSEE D'UN NOMBRE LIMITE DE MACHINES VIRTUELLES SEQUENTIELLES ELEMENTAIRES PARTAGEANT L'ENSEMBLE DES OBJETS CONSTRUITS DANS UN TAS. LES PRINCIPALES CONTRIBUTIONS SONT: (1) LA GESTION DU TAS PARTAGE, QUI FAIT APPEL A UN RAMASSE MIETTES S'EXECUTANT EN PARALLELE SUR LES MACHINES ELEMENTAIRES, INCREMENTALEMENT AVEC LE CALCUL SUR CHACUNE D'ELLES. UN MECANISME ORIGINAL DE CREDIT DE TRACAGE, ET DES ALGORITHMES DISTRIBUES D'ALLOCATION PERMETTENT UNE COOPERATION TOTALE ENTRE LES MACHINES. SUR DES MACHINES CIBLES A MEMOIRE DISTRIBUEE, LE TAS EST CONSTRUIT PAR LA TECHNIQUE DE MEMOIRE VIRTUELLE PARTAGEE DISTRIBUEE, INTEGREE EFFICACEMENT AVEC LE RAMASSE MIETTES GRACE A L'UTILISATION DANS LES DEUX CAS DES PROTECTIONS D'ACCES AUX PAGES MEMOIRE. (2) LA GESTION DE L'ENSEMBLE DES PROCESSUS, POUR LAQUELLE UN ALGORITHME DE REPARTITION DE CHARGE, BASE SUR L'EMPLOI DE BORNES DYNAMIQUES, A ETE CONCU. SES PROPRIETES SONT DEMONTREES, ET LES RESULTATS CONFIRMES PAR SIMULATION. L'IMPLEMENTATION EFFECTUEE A PERMIS D'APPRECIER LES QUALITES DU RAMASSE MIETTES PARALLELES DEVELOPPE
CETTE THESE PRESENTE LES PRINCIPES, LE MODELE ET LA REALISATION D'UN SERVEUR DE COHERENCE DANS UN ENVIRONNEMENT DE CONCEPTION D'OBJETS PRODUITS VLSI MULTI-CONCEPTEURS ET MULTI-MACHINES. NOTRE ETUDE PORTE SUR TROIS PROBLEMES: QU'EST-CE QUE LA COHERENCE EN CONCEPTION VLSI? COMMENT MODELISER LA COHERENCE? COMMENT PARAMETRER NOTRE MODELE POUR UNE SITUATION PARTICULIERE ET COMMENT L'APPLIQUER A DES ENVIRONNEMENTS DE CONCEPTION QUELCONQUES? LE MODELE DE COHERENCE REPOSE SUR LA DEFINITION D'UNE METHODE, ENCHAINEMENT RAISONNE DE MOYENS EN VUE D'UNE FIN, ET SUR UN OUTIL METHODOLOGIQUE DE GESTION DE METHODES, QUI PERMET LE CODAGE INFORMATIQUE HIERARCHIQUE DE CETTE METHODE EN VUE DE SON EXPLOITATION ULTERIEURE. UN SERVEUR DE COHERENCE EST DEFINI, QUI ASSOCIE DES META-INFORMATIONS AUX OBJETS (OBJETS PRODUITS, OUTILS ET METHODES) ET QUI GERE LES REQUETES CONCURRENTES DES CONCEPTEURS. CES META-INFORMATIONS FORMENT ENSEMBLE UN GRAPHE DE CONTRAINTES D'INTEGRITE QUI PEUT ETRE PARCOURU ET EXPLOITE POUR CONSTRUIRE DE MANIERE VALIDE LES OBJETS. LA REALISATION DE CE MODELE POUR LA CONCEPTION DE VLSI, LE SYSTEME CADIX, PASSE PAR LA DEFINITION DE QUATRE COUCHES DE PROGRAMMATION: LA COUCHE DOMAINE D'APPLICATION VLSI, RASSEMBLANT LES PRIMITIVES DE GENERATION PROCEDURALE, LA COUCHE GESTION DE LA COHERENCE, QUI GERE LES TRANSACTIONS CONCURRENTES DES CONCEPTEURS, LA COUCHE RESEAU DE CONTRAINTES, QUI GERE LE GRAPHE DES CONTRAINTES D'INTEGRITE, ET LA COUCHE RESEAU, QUI GERE LE BON FONCTIONNEMENT REPARTI DU SERVEUR ET DES CLIENTS. UN EXEMPLE EST PRESENTE QUI INDIQUE UNE UTILISATION POSSIBLE DU SYSTEME CADIX. LA PARAMETRISATION DU MODELE DE COHERENCE POUR UNE SITUATION PARTICULIERE SE FAIT EN IDENTIFIANT LE SERVEUR DE COHERENCE A UN SYSTEME DE PRODUCTION
CETTE THESE S'INTEGRE DANS LE CADRE DE LA REALISATION DE L'ENVIRONNEMENT DE PROGRAMMATION FORTRAN-S POUR MACHINES PARALLELES A MEMOIRE VIRTUELLE PARTAGEE (MVP). CES MACHINES OFFRENT UN ESPACE D'ADRESSAGE GLOBAL SUR UNE ARCHITECTURE PHYSIQUEMENT DISTRIBUEE. L'UTILISATION D'UN PROTOCOLE DE COHERENCE FORTE SUR CES MACHINES ENGENDRE UN PHENOMENE DE FAUX-PARTAGE, NUISIBLE AUX PERFORMANCES DES MACHINES PARALLELES. NOUS PROPOSONS DANS CETTE THESE DES TECHNIQUES DE PARTITIONNEMENT DES NIDS DE BOUCLES PERMETTANT D'ELIMINER OU DE REDUIRE LES EFFETS DU FAUX-PARTAGE. LA MVP ETANT DECOUPEE EN PAGE, UTILISEES COMME GAIN DE COHERENCE ET DE TRANSFERT DE DONNEES, LA LOCALITE SPATIALE A SUR CES MACHINES UN IMPACT FONDAMENTAL SUR LES PERFORMANCES. AFIN DE GENERALISER L'EMPLOI DES TECHNIQUES D'AMELIORALTION DE LA LOCALITE, NOUS PROPOSONS D'ETENDRE LES TRANSFORMATIONS LINEAIRES DE NIDS DE BOUCLES AU CAS NON ENTIER. NOUS PRESENTONS EGALEMENT UN RAFFINEMENT DE L'ALGORITHME DE FOURIER-MOTZKIN POUR LA RECHERCHE DES POINTS ENTIERS D'UN POLYEDRE RATIONNEL, PERMETTANT DE DETERMINER PLUS PRECISEMENT LES BORNES DE BOUCLES APRES TRANSFORMATION. LES DIFFERENTES METHODES PRESENTEES DANS CETTE THESE SONT EN COURS DE MISE EN UVRE SUR FORTRAN-S