open Bsml (* Implantation d'un schéma de communication simple Le premier processeur envoie sa donnée au dernier. < v0; ... , v(p-1) > \ \ \ \ < None; ...;None; Some v0 > *) let communication v = (* fonction calculant la valeur à envoyer de [de] à [a] si la valeur locale est [v] *) let communicator de v a = if de = 0 then if a = (bsp_p -1) then Some v else None else None in (* construction du vecteur de fonction *) let sender_vect = mkpar communicator in (* utilisation des valeur du vecteur [v] comme valeur à envoyer *) let sender_with_val = apply sender_vect v in (* Communication des valeurs entre les processeurs *) let communicated =put sender_with_val in (* Application des fonctions construites pour obtenir la valeur obtenue du processeur 0 *) apply communicated (mkpar (fun _ -> 0)) let _ = communication (mkpar (fun i-> i))