バルク同期並列 MLについて詳しく解説

導入

バルク同期並列 ML
このソフトウェアのロゴをインポートします
開発者オルレアン大学のオルレアン基礎コンピュータ科学研究所 (LIFO)、パリ第 12 大学のアルゴリズム・複雑性・論理研究所 (LACL)
環境GNU/Linux、 Unix
親切ソフトウェアライブラリ
ライセンスGNU LGPL 2.1
Webサイトhttp://frederic.loulergue.eu/research/bsmllib/

BSML は、 Objective Camlのソフトウェア ライブラリです。これにより、基礎となるアーキテクチャの BSP パラメータ、特に並列マシンのプロセッサpへのアクセスが可能になります ( int型のbsp_pを介してアクセス可能)。

バルク同期並列 MLについて詳しく解説

建築

平行ベクトル

'a Bsml.par'aのオブジェクトを含むサイズpの並列ベクトルを表します。

これは< v 0 ,…, v p − 1 >で表されます。ここで、 v i はプロセッサi上のタイプ'aの値です。

モジュール

  • Bsml : ライブラリ プリミティブと実行時間計算関数が含まれています
  • Stdlib :標準ライブラリの関数が含まれています
    • Base : 一般的な並列関数が含まれています
    • Comm : パラレル通信機能が含まれています
    • Sort : 並列ソート関数が含まれています
    • 戻る: ライブラリの以前のバージョンとの互換性を確保します。
  • ツール: 一般的なシーケンシャル関数が含まれています
  • スケルトン: 分散構造を操作するための関数が含まれています
    • Array : 分散配列の操作
    • List : 分散リストの操作

プリミティブ

バルク同期並列 MLについて詳しく解説

並列化プリミティブ: mkpar

 val mkpar : ( int -> ' a ) -> ' a par

並列アプリケーション プリミティブ: apply

 val apply : ( ' a -> ' b ) par -> ' a par -> ' b par

グローバルコミュニケーションプリミティブ: put

 val put : ( int -> ' a ) by -> ( int -> ' a ) by

射影プリミティブ: proj ( mkparの双対)

 val proj : ' a by -> int -> ' a

代替構文

バージョン 0.5 以降、BSML はプログラムの可読性を向上させることを目的とした代替構文を提供します。この構文により、命令を各プロセッサーでローカルに実行できるようになり、プリミティブの抽象化が提供され、各プロセッサーのローカル値へのアクセスが簡素化されます。

構文<< >>を使用してローカル セクションを表し、山かっこ内のコードがローカルで実行されます。この構造は、 p 回のローカル実行から構成される並列ベクトルを返します。

 (* 各プロセッサーでの非並列 v 値の複製 *) << v >>

$v$構文はローカル セクション内で使用でき、ベクトルvのローカル コンポーネントにアクセスできます。ローカル プロセッサ番号 (ローカル セクションから) には、 $this$変数を使用してアクセスできます。

 (* 各プロセッサがその番号を格納する並列ベクトル *) << $this$ >> (* 並列ベクトル v の各成分への非並列関数 f の適用 *) << f $v$ >> ( * アプリケーション並列関数 f の並列ベクトル v の各成分への変換 *) << $f$ $v$ >>

公共事業

  • bsml は対話型ループを提供します。
  • bsmlc は、 bsmlrunによって解釈されるバイトコードファイルを生成します。
  • bsmlopt はネイティブ コードで実行可能ファイルを生成します。
  1. Bulk – allemand
  2. Bulk purchasing – anglais
  3. Bulk – italien
  4. 大量購入 – japonais
  5. Stortgoed – néerlandais
  6. Bulk – polonais

バルク同期並列 MLについて詳しく解説・関連動画

サイエンス・ハブ

知識の扉を開け、世界を変える。