Frédéric Gava JFLA2006 Une implantation de la juxtaposition parallèle
2/24 Programmation parallèle ImpliciteExplicite Data-parallélisme Extensions parallèles Programmation Concurrente Parallélisation Automatique Patrons Contexte
3/24 Projets ACI Grid Conception de bibliothèques parallèles et Grid pour OCaml avec des applications pour les SGBD et le calcul numérique 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èles a.La superposition b.La juxtaposition III.Implantation de la juxtaposition et performances IV.Conclusion et futurs travaux
5/24 Le modèle BSP et BSML « plat »
6/24 Characterisée par : –p nombre de processeurs –rvitesse des processeurs –L synchronisation globale –gphase de communication (1 mot au plus envoyé ou reçu par chaque processeur) Architecture BSP: Le modèle BSP P/M Réseau Unité de synchronisation
7/24 T(s) = (max 0 i<p w i ) + h g + L Modèle dexécution
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 limplantation 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 dun vecteur (suivant le PID du processeur) 2. Application parallèle point-à-point (asynchrone) 3. Communication synchrone entre les composantes dun vecteur 4. Projection synchrone de valeurs (dun vecteur) Le langage BSML
9/24 f p-1 …f1f1 f0f0 g p-1 …g1g1 g0g0 Partie parallèle Parties séquentielle s Partie répliquée Un programme BSML
10/24 Compositions parallèles
11/24 Plusieurs programmes sur une même machine 2 nouvelles primitives de compositions : 1.Superposition 2.Juxtaposition –Algorithmes BSP « diviser-pour-régner » Multi-programmation
12/24 super : (unit (unit ) super E 1 E 2 = (E 1 (), E 2 ()) Fusion des communications/synchronisations par lutilisation de super-threads Préserve le modèle dexécution BSP Purement fonctionnelle Superposition parallèle
13/24 Superposition parallèle
14/24 Juxtaposition parallèle Création de 2 « sous-machines » juxta : int (unit par (unit par) par Fusion des communications/synchronizations pour chaque « sous-machine » ; préserve le modèle dexécution BSP Effet de bord sur le nombre de processeurs
15/24 Juxtaposition parallèle Communications Synchronisation Communications Synchronisation E1 Communications Synchronisation E2 Communications Synchronisation Communications Synchronisation E3 = (juxta 3 E1 E2)
16/24 Implantation et performances
17/24 Implantation 2 références contenant le nombre de processeurs dune « 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 Exemple calcul parallèle des préfixes scan: ( par par scan (+) = scan (+) = scan (+) = =
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
21/24 Conclusion et travaux futurs
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 danalyses statiques pour la prédiction des performances Application pour la conception dun « modèle checker » BSP pour les réseaux de Petri de haut-niveau Futurs travaux
Merci de votre attention