CELLULAIRE, HIÉRARCHIQUE - ParCel-2: UN MODÈLE DE PROGRAMMATION PARALLÈLE
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
ParCel-2: UN MODÈLE DE PROGRAMMATION PARALLÈLE, CELLULAIRE, HIÉRARCHIQUE POUR L'OBTENTION DU GRADE DE DOCTEUR ÈS SCIENCES PAR Paul-Jean CAGNARD Ingénieur informaticien diplômé EPF de nationalité française acceptée sur proposition du jury: Prof. G. Coray. directeur de thèse Dr T. Cornu, rapporieur Dr P. Kuonen, rappoiteur Prof. D. Mange. rapporteur Prof. P. Quinton, rapporteur Lausanne, EPFL 2001
Version abrégée Les ~iiachi~ies parallèles disponibles aujourd'hui sont le plus souvent des machines à niénioire distribuée de type MIMD. Les connaissances actuelles permettent de construire des macliiiies parallèles potentiellement très puissantes, mais elles ne per- mettent pas encore de les programnier de niaiiière simple, efficace et portable. Les outils de prograiiirnation parallèle existants pour ces machines sont souvent sini- pletnent composés de bibliothèques pour des langages séquentiels et contraignent le prograninleur à une gestion de bas niveau du parallélisme. ParCeL-2 s'attache à la définition d'un modèle de calcul et de coniinunication, d'une niachine virtuelle et d'un langage destinés à la programmation parallèle seini- synchrone à grain variable dans des réseaux hiérarchiques de processus à topologie statique. Un programme parallèle est ainsi composé de processus reliés en une struc- ture de graphe à plusieurs niveaux. ParCeL-2 cherche à fournir au prograninmir un outil de développement de haut niveau pour la création de topologies de processus, qui niasque l'architecture de la machine parallèle cible. Les doniaines d'applications considérés pour ParCeL-2 sont ceux qiii font appel à du parallélisnle massif à grain fin. Les automates cellulaires, en particulier, les niéthodes de gaz sur réseaux, les méthodes de différences finies et d'éléments finis, certains réseaux de neurones artificiels en sont des exemples, de même que la siinu- lation de circuits électroniques et la programmation de FPGA ou de FPPA.
Abstract Today, available parallel computers are niostly MIMD distributed memory iiia- chines. Current knowledge allows us to build potentially very powerful parallel coin- puters, but it is does not provide us with a simple, efficient and portable way to prograin theni. Existing programniing tools for tliese computers often sinlply consist of libraries for sequential languages and constrain the programnier to a low-level management of parallelism. ParCeL-2 tries to define a computing and communication model, a virtual machine and a language destined to variable grain seini-syiichronous parallel prograniming in hierarcliical process networks with a static topology. A parallel program is tlius coinposed of processes linked into a niultilevel grapli structure. ParCeL-2 seeks to give the prograilimer a liigli-level developnieiit tool to create process topologies, that hides the target compnter's architecture. Application fields that we consider for ParCeL-2 are those tliat need fine grained massive parallelisin. Cellular automata, in particular, lattice gas nicthods, finite dif- ference and finite element niethods, some artificial neural networks are examples, as are electronic circuits simulation and FPGA or FPPA prograniming.
TABLE DES MATIÈRES iii Table des matières Remerciements i 1 Introduction 1 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Prograniinationparallèle . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2.1 Programmation avec des objets coiicurrents . . . . . . . . . . 2 1.2.2 Le calcul inassiveinent synchrone . . . . . . . . . . . . . . . . 3 1.3 Directions de reclierclie . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 État de l'art 9 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 Modèles de calcul parallèles . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.1 Modèle BSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.2 Autresmodèles . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3 Langages parallèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3.1 BSP-L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3.2 GPL ou GL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3.3 Opal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3.4 OCCAM-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3.5 CARPET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.3.6 Cellang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.3.7 CuPit-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.8 ParCeL-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.9 Satlier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.10 SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.11 FORTRAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.12 Split-C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.13 Jade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.3.14 ABCL/f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.3.15 Langages fonction~~els, logiques . . . . . . . . . . . . . . . . . . 28 2.3.16 ParCeL-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3 Le modèle de calcul semi-synchrone de ParCeL-2 31 3.1 Iiitroduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2 Modèles de calcul réguliers . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Modèle cellulaire . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.2.2 Modèle de réseaux . . . . . . . . . . . . . . . . . . . . . . . . 34 3.3 Le modèle de calcul de ParCeL-2 . . . . . . . . . . . . . . . . . . . . . 36 3.3.1 Modèle de calcul . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.2 Modèle de corniilunication . . . . . . . . . . . . . . . . . . . . 43 3.4 La machine cellulaire virtuelle . . . . . . . . . . . . . . . . . . . . . . 46 3.4.1 Siniulatioii du dynaniisine . . . . . . . . . . . . . . . . . . . . 50 3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4 Proposition de syntaxe 59 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.2 La syntaxe de ParCeL-2 . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.2.1 Déclarations d'interfaces . . . . . . . . . . . . . . . . . . . . . 61 4.2.2 Déclarations de corps . . . . . . . . . . . . . . . . . . . . . . . 62 4.2.3 Déclarations de topologies . . . . . . . . . . . . . . . . . . . . 64 4.2.4 Utilisatioii de bibliothèques externes . . . . . . . . . . . . . . 67 4.2.5 Indications fournies au compilateur . . . . . . . . . . . . . . . 67 5 Mise en œuvre du langage 69 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.2 Coiiipilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.2.1 Construction de la topologie . . . . . . . . . . . . . . . . . . . 70 5.2.2 Découpe de la topologie . . . . . . . . . . . . . . . . . . . . . 71 5.3 Production de code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 5.3.1 Code sans appel systènie . . . . . . . . . . . . . . . . . . . . . 72 5.3.2 Appels système . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.4 Machine virtuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.4.1 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.4.2 Eiitrées.sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.4.3 Environnenient parallèle . . . . . . . . . . . . . . . . . . . . . 79 5.4.4 Bibliothèque BSPlib . . . . . . . . . . . . . . . . . . . . . . . 79 5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6 Tests et résultats 83 6.1 Applications choisies . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.2 La relaxation de JACOBI . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.2.1 Présentation du problènie . . . . . . . . . . . . . . . . . . . . 84 6.2.2 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.2.3 Perforn~ances . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 6.2.4 Environnement . . . . . . . . . . . . . . . . . . . . . . . . . . 89 6.2.5 Mesures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.3 Le problème des N corps . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.3.1 Présentation du problème . . . . . . . . . . . . . . . . . . . . 97 6.3.2 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 6.3.3 Performances . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 6.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
TABLE DES MATIERES v 7 Perspectives 107 7.1 Programmation parallèle graphique . . . . . . . . . . . . . . . . . . . 107 7.2 Exploitation d'autres architectures parallèles . . . . . . . . . . . . . . 108 7.3 Coliahitation de cellule statiques et dynanliques . . . . . . . . . . . . 108 7.4 Intégration d'autres langages de coiiiportement . . . . . . . . . . . . . 109 7.5 Outils d'observation et d'intervention en cours d'exécution . . . . . . 109 7.6 Périodes absolues ou relatives . . . . . . . . . . . . . . . . . . . . . . 110 7.7 Vers un modèle plus pur . . . . . . . . . . . . . . . . . . . . . . . . . 110 7.8 ParCeL-2 et le calcul réparti . . . . . . . . . . . . . . . . . . . . . . . 111 7.9 Optimisation de la con~pilation . . . . . . . . . . . . . . . . . . . . . 111 7.10 Utilisation d'autres langages . . . . . . . . . . . . . . . . . . . . . . . 112 8 Conclusion 115 8.1 Originalité de ParCeL-2 . . . . . . . . . . . . . . . . . . . . . . . . . . 115 8.2 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Vous pouvez aussi lire