Une implantation de la juxtaposition parallle Frdric Gava

  • Slides: 24
Download presentation
Une implantation de la juxtaposition parallèle Frédéric Gava JFLA’ 2006

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

Contexte Programmation parallèle Implicite Parallélisation Automatique Explicite Patrons Data-parallélisme Extensions parallèles Programmation Concurrente 2

Contexte Programmation parallèle Implicite Parallélisation Automatique Explicite Patrons Data-parallélisme Extensions parallèles Programmation Concurrente 2

Projets 2002 -2004 ACI Grid Conception de bibliothèques parallèles et Grid pour OCaml avec

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. 3

Plan I. II. Le modèle BSP et BSML « plat » Compositions parallèles a.

Plan I. II. Le modèle BSP et BSML « plat » Compositions parallèles a. b. La superposition La juxtaposition III. Implantation de la juxtaposition et performances IV. Conclusion et futurs travaux 4

Le modèle BSP et BSML « plat » 5

Le modèle BSP et BSML « plat » 5

Le modèle BSP Architecture BSP: P/M Unité de synchronisation P/M P/M Réseau Characterisée par

Le modèle BSP Architecture BSP: P/M Unité de synchronisation P/M P/M Réseau 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) 6

Modèle d’exécution T(s) = (max 0 i<p wi) + h g + L 7

Modèle d’exécution T(s) = (max 0 i<p wi) + h g + L 7

Le langage BSML Extension data-parallèle explicite de ML basée sur le modèle BSP Parallélisme

Le langage BSML 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) 8

Un programme BSML Partie répliquée f 0 f 1 … fp-1 g 0 g

Un programme BSML Partie répliquée f 0 f 1 … fp-1 g 0 g 1 … gp-1 Partie parallèle Parties séquentielles 9

Compositions parallèles 10

Compositions parallèles 10

Multi-programmation Plusieurs programmes sur une même machine 2 nouvelles primitives de compositions : 1.

Multi-programmation Plusieurs programmes sur une même machine 2 nouvelles primitives de compositions : 1. Superposition 2. Juxtaposition – Algorithmes BSP « diviser-pour-régner » 11

Superposition parallèle super : (unit ) (unit b) b super E 1 E 2

Superposition parallèle super : (unit ) (unit b) b super E 1 E 2 = (E 1 (), E 2()) Fusion des communications/synchronisations par l’utilisation de super-threads Préserve le modèle d’exécution BSP Purement fonctionnelle 12

Superposition parallèle 13

Superposition parallèle 13

Juxtaposition parallèle Création de 2 « sous-machines » juxta : int (unit par) par

Juxtaposition parallèle Création de 2 « sous-machines » juxta : int (unit par) 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 14

Juxtaposition parallèle Communications Synchronisation E 2 Communications Synchronisation E 1 Communications Synchronisation E 3

Juxtaposition parallèle Communications Synchronisation E 2 Communications Synchronisation E 1 Communications Synchronisation E 3 = (juxta 3 E 1 E 2) Communications Synchronisation 15

Implantation et performances 16

Implantation et performances 16

Implantation 2 références contenant le nombre de processeurs d’une « sous machine » et

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 17

Exemple calcul parallèle des préfixes scan: ( ) par scan (+) <v 0, …,

Exemple calcul parallèle des préfixes scan: ( ) par scan (+) <v 0, …, vp-1> = <v 0, v 0+v 1, …, v 0+v 1+…+ vp-1> scan (+) <v 0, …, vm> = < w 0 , … , w m > scan (+) <vm+1, …, vp-1> =<wm+1 , … , wp+1> < w 0 , … , w m , wm+wm+1, … , wm+wp+1> = <v 0, v 0+v 1, v 0+…+vm+1, …, v 0+…+vp-1> 18

Juxta versus Super Code avec juxtaposition : 8 lignes Code avec superposition : 12

Juxta versus Super Code avec juxtaposition : 8 lignes Code avec superposition : 12 lignes Code directe : 6 lignes 19

Performances Version direct (BSML+MPI) Version avec superposition Version avec juxtaposition Temps(s) Taille des polynômes

Performances Version direct (BSML+MPI) Version avec superposition Version avec juxtaposition Temps(s) Taille des polynômes 20

Conclusion et travaux futurs 21

Conclusion et travaux futurs 21

Conclusion BSML = ML + BSP Superposition = primitive de composition parallèle Juxtaposition =

Conclusion BSML = ML + BSP Superposition = primitive de composition parallèle Juxtaposition = fonction utile pour les algorithmes « diviser-pourrégner » parallèles La superposition + traits impératifs simule la juxtaposition Performances similaires 22

Futurs travaux Pour ce travail : La juxtaposition peut-elle simuler la superposition ? La

Futurs travaux 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 23

Merci de votre attention

Merci de votre attention