1 / 15

Encadrement: Frédéric Loulergue & Frédéric Gava Université Paris 12 Val de Marne

Bulk Synchronous Parallel ML: implémentation modulaire et prévision de performances Stage de David Billiet. Encadrement: Frédéric Loulergue & Frédéric Gava Université Paris 12 Val de Marne Laboratoire d’Algorithmique, Complexité et Logique. Contexte. Cadre général :

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

More Related