next up previous contents
Next: 1.6.3 ゴール優先度指定プラグマ Up: 1.6 プログラム動作の指定 Previous: ふたつの並列性を分離する

1.6.2 ゴール分散プラグマ

計算の分散には実行ノード指定のためのプラグマを用いる. 指定には

のような形式でボディ・ゴールにプラグマを付加する. ここで指定する ノード (node) とは, 個別のプロセサ, または内部では自動負荷分 散するようなプロセサの集まりである. 現在のところ, 指定にはノードにつ いた一連番号を用いている.

ゴール分散を用いる具体例をあげると, たとえば以下のようになる.

p([One|Rest],N,State) :- q(One,State,New)@node(N), N1:=N+1, p(Rest,N1,New).
この例では, 次々に到着するメッセージについての処理 ( q) を, 順番 に各ノードに分散しているわけである. 何も指定のないゴール (この場合な ら足し算と再帰呼び出しのゴール) は, 元のゴールを実行したのと同じノード で実行する.



next up previous contents
Next: 1.6.3 ゴール優先度指定プラグマ Up: 1.6 プログラム動作の指定 Previous: ふたつの並列性を分離する



KLIC