slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Encadrement: Frédéric Loulergue & Frédéric Gava Université Paris 12 Val de Marne PowerPoint Presentation
Download Presentation
Encadrement: Frédéric Loulergue & Frédéric Gava Université Paris 12 Val de Marne

Loading in 2 Seconds...

  share
play fullscreen
1 / 15

Encadrement: Frédéric Loulergue & Frédéric Gava Université Paris 12 Val de Marne - PowerPoint PPT Presentation

85 Views
Download Presentation
Encadrement: Frédéric Loulergue & Frédéric Gava Université Paris 12 Val de Marne
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. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Bulk Synchronous Parallel ML: implémentation modulaire et prévision de performancesStage de David Billiet Encadrement: Frédéric Loulergue & Frédéric Gava Université Paris 12 Val de Marne Laboratoire d’Algorithmique, Complexité et Logique

  2. Contexte Cadre général : • Programmation fonctionnelle parallèle • Déterministe, sans blocage • Prévision de performances (BSP) Le projet Caraml (2002-2004, ACI Grid)

  3. Préliminaires

  4. Bulk Synchronous Parallelism • Machine BSP : p paires processeur-memoire + réseau+ unité de synchronisation globale • Execution BSP : séquence de super-étapes: • T(s) = (max0i<p wi) + hg + l

  5. La bibliothèque BSMLlib • Pour Objective Caml • Un programme parallèle = Programme séquentiel habituel + operations sur une structure parallèle • Vecteurs parallèles de taille p: a par • Accès aux paramètres BSP : bsp_p, bsp_g, bsp_l

  6. Les primitives BSMLlib (1) • mkpar: (int->a) -> a parmkpar f = <(f 0), … , (f (p-1))> • apply: (a->b) par -> a par -> b parapply <f0,…fp-1> <v0,…,vp-1>= <(f0 v0),…,(fp-1 vp-1)> • projection: at

  7. Les primitives BSMLlib (2) type  option = None | Some of  put: (int option) par(int option) par put =

  8. Travail effectué

  9. Objectifs du travail • Existant: implémentation basée sur MPI • Implémentation modulaire pour faciliter la mise en œuvre et les évolutions • Utiliser d’autres bibliothèques de communication: MPI, PVM, TCPIP, PUB • Outil pour la prévision de performances: programme de benchmark des paramètres BSP

  10. Nouvelle organisation du noyau de la BSMLlib • Noyau (contenant seulement les primitives) générique (module foncteur) prenant en argument un module de communication • Module de communication: • pid • nprocs • send

  11. Modules Comm • MPI: • Utilisant MPI_Alltoallv • Send/receive avec carré latin • PVM: • avec carré latin • traitement particulier de la sortie standard • TCPIP: • carré latin • pur Ocaml avec threads

  12. Le programme bmslprobe • Détermine les paramètres BSP • Principe: • p le nombre de processeurs est connu • détermine la vitesse r des processeurs (opérations sur les flottants) • communications avec messages de taille croissante (h-relation croissante): méthode des moindres carrés pour obtenir g et L

  13. Une expérience (1) • Le programme: produit scalaire let inprod_array v1 v2 = let s = ref 0. in for i = 0 to (Array.length v1)-1 do s:=!s+.(v1.(i)*.v2.(i)); done; !s let inprod_list v1 v2 =List.fold_left2 (fun s x y -> s+.x*.y) 0. v1 v2 let inprod seqinprod v1 v2 = let localinprod = Bsmlbase.parfun2 seqinprod v1 v2 in Bsmlcomm.fold_direct (+.) localinprod

  14. Une expérience (2)

  15. Conclusions • Travail incorporé • dans la future BSMLlib 0.3 • dans la première version deDepartmental Metacomputing ML (DMML) • Travail présenté (par F. Gava) au workshop Implementation of Functional Languages (IFL’04) 8-10 septembre 2004