CELLULAIRE, HIÉRARCHIQUE - ParCel-2: UN MODÈLE DE PROGRAMMATION PARALLÈLE

La page est créée Jonathan Lejeune
 
CONTINUER À LIRE
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