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

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é

<

v

0

,

.

.

.

,

v

p

−

1

>

{\displaystyle <v_{0},...,v_{p-1}>}

où

v

i

{\displaystyle 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
Primitive d'application parallèle : apply
Primitive de communication globale : put
Primitive de projection : proj (duale de mkpar)

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.

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

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

La liste des mots commençant par Bsml est la suivante :