24
Frédéric Gava JFLA’2006 Une implantation de la juxtaposition parallèle

Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

Embed Size (px)

Citation preview

Page 1: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

Frédéric GavaJFLA’2006

Une implantation de la

juxtaposition parallèle

Page 2: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

2/24

Programmation parallèle

Implicite Explicite

Data-parallélismeExtensionsparallèles

Programmation Concurrente

ParallélisationAutomatique

Patrons

Contexte

Page 3: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

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.

Page 4: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

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

Page 5: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

5/24

Le modèle BSP et BSML « plat »

Page 6: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

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

Page 7: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

7/24T(s) = (max0i<p wi) + hg + L

Modèle d’exécution

Page 8: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

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

Page 9: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

9/24

fp-1…f1f0

gp-1…g1g0

Partieparallèle

Partiesséquentielle

s

Partierépliquée

Un programme BSML

Page 10: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

10/24

Compositions parallèles

Page 11: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

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

Page 12: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

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

Page 13: Frédéric Gava JFLA2006 Une implantation de la juxtaposition 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

Page 14: Frédéric Gava JFLA2006 Une implantation de la juxtaposition 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

Page 15: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

15/24

Juxtaposition parallèle

CommunicationsSynchronisation

CommunicationsSynchronisation

E1

Communications

Synchronisation

E2CommunicationsSynchronisation

CommunicationsSynchronisation

E3 = (juxta 3 E1 E2)

Page 16: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

16/24

Implantation et performances

Page 17: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

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

Page 18: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

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>

Page 19: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

19/24

Juxta versus Super

Code avec juxtaposition : 8 lignes

Code avec superposition : 12 lignes

Code directe : 6 lignes

Page 20: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

20/24

Performances

Taille des polynômes

Temps(s)

Version direct (BSML+MPI)Version avec superposition

Version avec juxtaposition

Page 21: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

21/24

Conclusion et travaux

futurs

Page 22: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

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

Page 23: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

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

Page 24: Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle

Merci de votre attention