Frédéric Gava JFLA’2006 Une implantation de la juxtaposition parallèle
Dec 30, 2015
2/24
Programmation parallèle
Implicite Explicite
Data-parallélismeExtensionsparallèles
Programmation Concurrente
ParallélisationAutomatique
Patrons
Contexte
3/24
Projets
2002-2004
ACI Grid
Conception de bibliothèques parallèles et Grid pour OCaml avec des applications pour les SGBD et le calcul numérique.
2004-2007
ACI « jeunes chercheurs »
Produire un environnement de programmation parallèle où les programmes pourront être certifiés et exécutés de manière sûre.
4/24
Plan
I. Le modèle BSP et BSML « plat »
II. Compositions parallèlesa. La superposition
b. La juxtaposition
III. Implantation de la juxtaposition et performances
IV. Conclusion et futurs travaux
6/24
Characterisée par :– p nombre de processeurs– r vitesse des processeurs– L synchronisation globale– g phase de communication (1 mot au plus envoyé ou
reçu par chaque processeur)
Architecture BSP:
Le modèle BSP
P/M P/M P/M P/M P/M
Réseau
Unité de synchronisation
8/24
Extension data-parallèle explicite de ML basée sur le modèle BSP
Parallélisme structuré, langage fonctionnel et prédictions des coûts BSP
Permet l’implantation de patrons
Bibliothèque pour le langage OCaml
4 primitives pour manipuler une structure distribuée de données appelée « vecteur parallèle » :
1. Création d’un vecteur (suivant le PID du processeur)
2. Application parallèle point-à-point (asynchrone)
3. Communication synchrone entre les composantes d’un vecteur
4. Projection synchrone de valeurs (d’un vecteur)
Le langage BSML
11/24
Plusieurs programmes sur une même machine
2 nouvelles primitives de compositions :1. Superposition2. Juxtaposition
– Algorithmes BSP « diviser-pour-régner »
Multi-programmation
12/24
super : (unit (unit )
super E1 E2 = (E1 (), E2())
Fusion des communications/synchronisations par l’utilisation de super-threads
Préserve le modèle d’exécution BSP
Purement fonctionnelle
Superposition parallèle
13/24
Communications
Synchronization
Communications
Synchronization
Communications
Synchronization
Communications
Synchronization
Communications
Synchronization
E1 E2 super E1 E2
0 1 20 . . .1 . . .2 . . .
0 1 20 . . .1 . . .2 . . .
0 1 20 . . .1 . . .2 . . .
Superposition parallèle
14/24
Juxtaposition parallèle
Création de 2 « sous-machines »
juxta : int(unitpar(unitpar)par
Fusion des communications/synchronizations pour chaque « sous-machine » ; préserve le modèle d’exécution BSP
Effet de bord sur le nombre de processeurs
15/24
Juxtaposition parallèle
CommunicationsSynchronisation
CommunicationsSynchronisation
E1
Communications
Synchronisation
E2CommunicationsSynchronisation
CommunicationsSynchronisation
E3 = (juxta 3 E1 E2)
17/24
Implantation 2 références contenant le nombre de processeurs d’une « sous machine » et le PID du processeur « réel » qui est le processeur 0 de la sous-machine
Créations de vecteurs « non complets »
Applications point-à-point « partielles »
Communications en simulant le nombre de processeur (restauration à chaque super-étape du nombre de processeur de la « sous-machine »)
Chaque « sous-machine » de la juxtaposition dans un super-thread
18/24
Exemplecalcul parallèle des
préfixesscan: ( par par
scan (+) <v0, …, vp-1>
= <v0, v0+v1, …, v0+v1+…+ vp-1>
scan (+) <v0, …, vm>= < w0 , … , wm >
scan (+) <vm+1, …, vp-1>=<wm+1 , … , wp+1>
< w0 , … , wm , wm+wm+1, … , wm+wp+1>= <v0, v0+v1, v0+…+vm, v0+…+vm+1,…, v0+…+vp-1>
19/24
Juxta versus Super
Code avec juxtaposition : 8 lignes
Code avec superposition : 12 lignes
Code directe : 6 lignes
20/24
Performances
Taille des polynômes
Temps(s)
Version direct (BSML+MPI)Version avec superposition
Version avec juxtaposition
22/24
Conclusion
BSML = ML + BSP
Superposition = primitive de composition parallèle
Juxtaposition = fonction utile pour les algorithmes « diviser-pour-régner » parallèles
La superposition + traits impératifs simule la juxtaposition
Performances similaires
23/24
Pour ce travail :
La juxtaposition peut-elle simuler la superposition ?
La superposition sans les traits impératifs peut-elle simuler la juxtaposition ? Preuve ? Avec les mêmes coûts BSP ?
Implantation de plus gros algorithmes diviser-pour-régner BSP
En général :
Outils pour la preuve de programmes impératifs BSP
Outils d’analyses statiques pour la prédiction des performances
Application pour la conception d’un « modèle checker » BSP pour les réseaux de Petri de haut-niveau
Futurs travaux