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 correspondantsConsultez la documentation du modèlebibliothèque logicielleOCamlBSP(en)







.mw-parser-output .entete.informatiquebackground-image:url("//upload.wikimedia.org/wikipedia/commons/a/ae/Picto-infoboxinfo.png")
Bulk Synchronous Parallel ML

















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




  1. 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 de la programmation informatique
  • Portail des logiciels libres Portail des logiciels libres

Popular posts from this blog

Do these spellcasting foci from Xanathar's Guide to Everything have to be held in a hand?How do foci and somatic+material components interact when it comes to occupying a hand?Can you cast spells with a Somatic component if you're holding a two-handed weapon?Crafting an Improvised Spellcasting Focus?Can a multiclass Cleric/Warlock hold a Holy Shield and an Arcane Staff and still cast spells?Where should I report printing errors in Xanathar's Guide to Everything?Where can I purchase a legal Xanathar's Guide to Everything PDF?Can I use a hand holding a focus from one class to cover somatic components for a spell from another class?Do you need a “gameplay-wise” free hand to handle material components?Portent, as it relates to the Gambling downtime rules from Xanathar's Guide to EverythingWhat is the correct interpretation of the Gambling Results table in Xanathar's Guide to Everything?

Can I stretch or expand an entire standalone document to fit the page? The Next CEO of Stack Overflow

Why do some congregations only make noise at certain occasions of Haman?Purim and Shushan PurimParashat TzavSource to make noise when Haman's name is mentioned?Does anyone say not to make noise for Haman?Why is Megillat Esther the only one to receive a bracha after reading it?Why did Haman change his mind and decide to immediately hang Mordechai?Chazal empty barrels make the most noiseWhy is Megillat Esther the only Megillah that is still read from parchment?Why is v'acharei added in some siddurim?is there some significance in their relationship between Haman and Daniel?Why is only Purim to be celebrated “forever”?Why didn't Haman just kill Mordechai?