Bulk Synchronous Parallel ML Sommaire Architecture | Utilitaires | Syntaxe alternative | Notes et références | Voir aussi | Liens externes | Menu de navigationmodifiermodifier le codeSite officielManuel de BSML 0.4m
Logiciel libre sous licence LGPLLogiciel pour UnixProgrammation concurrenteCalcul parallèleML
projets correspondantsbibliothèque logicielleOCamlBSP(en)
.mw-parser-output .entete.informatiquebackground-image:url("//upload.wikimedia.org/wikipedia/commons/a/ae/Picto-infoboxinfo.png")
Développé par | Laboratoire d'Informatique Fondamentale d'Orléans (LIFO) de l'Université d'Orléans, Laboratory of Algorithms, Complexity and Logic (LACL) de l'Université Paris-Est Créteil Val-de-Marne |
---|---|
Environnement | GNU/Linux, Unix |
Type | Bibliothèque logicielle |
Licences | GNU LGPL 2.1 |
Site web | http://traclifo.univ-orleans.fr/BSML |
BSML est une bibliothèque logicielle pour OCaml. Elle donne accès aux paramètres BSP (en) de l'architecture sous-jacente, en particulier au nombre de processeurs p de la machine parallèle (accessible par le biais de bsp_p
de type int
).
Sommaire
1 Architecture
1.1 Type vecteur parallèle
1.2 Modules
1.3 Primitives
1.3.1 Primitive de parallélisation : mkpar
1.3.2 Primitive d'application parallèle : apply
1.3.3 Primitive de communication globale : put
1.3.4 Primitive de projection : proj (duale de mkpar)
2 Utilitaires
3 Syntaxe alternative
4 Notes et références
5 Voir aussi
6 Liens externes
Architecture |
Type vecteur parallèle |
Le type 'a Bsml.par
représente un vecteur parallèle de taille p contenant des objets de type 'a
.
Il est noté <v0,...,vp−1>displaystyle <v_0,...,v_p-1> où vidisplaystyle v_i est la valeur de type 'a
sur le processeur i.
Modules |
Bsml : contient les primitives de la bibliothèque et les fonctions de calcul du temps d'exécution
Stdlib : contient les fonctions de la bibliothèque standard
Base : contient des fonctions parallèles usuelles
Comm : contient les fonctions parallèles de communication
Sort : contient des fonctions parallèles de tri
Back : assure la compatibilité avec les versions antérieures de la bibliothèque
Tools : contient des fonctions séquentielles usuelles
Skeleton : contient des fonctions de manipulation des structures réparties
Array : manipulation de tableaux répartis
List : manipulation de listes réparties
Primitives |
Primitive de parallélisation : mkpar
|
val mkpar : (int -> 'a) -> 'a par
Primitive d'application parallèle : apply
|
val apply : ('a -> 'b) par -> 'a par -> 'b par
Primitive de communication globale : put
|
val put : (int -> 'a) par -> (int -> 'a) par
Primitive de projection : proj
(duale de mkpar
) |
val proj : 'a par -> int -> 'a
Utilitaires |
bsml fournit une boucle interactive.
bsmlc produit un fichier bytecode interprété par bsmlrun.
bsmlopt produit un exécutable en code natif.
Syntaxe alternative |
À partir de sa version 0.5, BSML propose une syntaxe alternative visant à améliorer la lisibilité des programmes.
Cette syntaxe permet d'exécuter des instructions de manière locale sur chaque processeur, elle fournit une abstraction des primitives et simplifie l'accès aux valeurs locales de chaque processeur.
On utilise la syntaxe << >>
pour représenter une section locale, le code entre chevrons étant exécuté localement. Cette construction retourne un vecteur parallèle constitué des p exécutions locales.
(* réplication d'une valeur v non-parallèle sur chaque processeur *)
<< v >>
La syntaxe $v$
, disponible à l'intérieur des sections locales, donne accès à la composante locale du vecteur v
. On peut accéder au numéro de processeur local (depuis une section locale) à l'aide de la variable $this$
.
(* vecteur parallèle où chaque processeur stocke son numéro *)
<< $this$ >>
(* application d'une fonction f non-parallèle à chaque composante d'un vecteur parallèle v *)
<< f $v$ >>
(* application d'une fonction f parallèle à chaque composante d'un vecteur parallèle v *)
<< $f$ $v$ >>
Notes et références |
- Gaétan Hains, Algorithmes et programmation parallèles. Théorie avec BSP et pratique avec OCaml, Collection références sciences, Ellipses, Paris 2018.
Voir aussi |
OCaml, le langage d'implémentation de BSML
Modèle BSP (en)
Liens externes |
(en) Site officiel
(en) Manuel de BSML 0.4
- Portail de la programmation informatique
- Portail des logiciels libres