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

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

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

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