240 likes | 343 Views
Une implantation de la juxtaposition parallèle. Frédéric Gava JFLA’2006. Contexte. Implicite. Explicite. Parallélisation Automatique. Patrons. Data-parallélisme. Extensions parallèles. Programmation Concurrente. Programmation parallèle. Projets. 2002-2004 ACI Grid
E N D
Une implantation de la juxtaposition parallèle Frédéric Gava JFLA’2006
Contexte Implicite Explicite Parallélisation Automatique Patrons Data-parallélisme Extensions parallèles Programmation Concurrente Programmation parallèle
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.
Plan • Le modèle BSP et BSML « plat » • Compositions parallèles • La superposition • La juxtaposition • Implantation de la juxtaposition et performances • Conclusion et futurs travaux
Le modèle BSP Unité de synchronisation P/M P/M P/M P/M P/M Réseau Architecture BSP: • Characterisée par : • p nombre de processeurs • rvitesse des processeurs • L synchronisation globale • g phase de communication (1 mot au plus envoyé ou reçu par chaque processeur)
Modèle d’exécution T(s) = (max0i<p wi) + hg + L
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 » : • Création d’un vecteur (suivant le PID du processeur) • Application parallèle point-à-point (asynchrone) • Communication synchrone entre les composantes d’un vecteur • Projection synchrone de valeurs (d’un vecteur)
Un programme BSML f0 g0 f1 g1 … … fp-1 gp-1 Partie parallèle Partie répliquée Parties séquentielles
Multi-programmation • Plusieurs programmes sur une même machine • 2 nouvelles primitives de compositions : • Superposition • Juxtaposition • Algorithmes BSP « diviser-pour-régner »
Superposition parallèle • super: (unit ) (unit b) b • superE1E2= (E1 (), E2()) • Fusion des communications/synchronisations par l’utilisation de super-threads • Préserve le modèle d’exécution BSP • Purement fonctionnelle
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 d’exécution BSP • Effet de bord sur le nombre de processeurs
Juxtaposition parallèle Communications Synchronisation Communications E2 Synchronisation E1 Communications Synchronisation E3 = (juxta 3 E1 E2) Communications Communications Synchronisation Synchronisation
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
Exemplecalcul parallèle des préfixes < w0 , … , wm , wm+wm+1, … , wm+wp+1> = <v0, v0+v1, v0+…+vm, v0+…+vm+1,…, v0+…+vp-1> scan: () 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>
Juxta versus Super • Code avec juxtaposition : 8 lignes • Code avec superposition : 12 lignes • Code directe : 6 lignes
Performances Version direct (BSML+MPI) Version avec superposition Version avec juxtaposition Temps(s) Taille des polynômes
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
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