1 / 24

Frédéric Gava JFLA’2006

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

Download Presentation

Frédéric Gava JFLA’2006

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

  5. Le modèle BSP et BSML « plat »

  6. 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)

  7. Modèle d’exécution T(s) = (max0i<p wi) + hg + L

  8. 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)

  9. Un programme BSML f0 g0 f1 g1 … … fp-1 gp-1 Partie parallèle Partie répliquée Parties séquentielles

  10. Compositions parallèles

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

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

  13. Superposition parallèle

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

  15. Juxtaposition parallèle Communications Synchronisation Communications E2 Synchronisation E1 Communications Synchronisation E3 = (juxta 3 E1 E2) Communications Communications Synchronisation Synchronisation

  16. Implantation et performances

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

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

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

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

  21. Conclusion et travaux futurs

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

  24. Merci de votre attention

More Related