VIOSでは,任意のワーキングセットに対する処理を,以下に示すparallel構文を 利用し記述することにより,全ワーキングセットに対する処理を並列に行うプロ グラミング,および実行スタイルを従来より定義している.
parallel![]() ![]() /******** 本文 *********/ } |
まず引数について,に囲まれた,第1引数となる
WSサイズは,1ワーキングセットに含まれる要素の数を示す.
これは,あるデータ``ブロック''を1ワーキングセットとして扱う場合
に利用する.
次に,に囲まれた,第2引数となるindex変数は,
並列処理中,各ワーキングセットが自身を特定するための変数名を指定
するもので,任意の名前(事前に宣言されている必要はない)が利用可
能である.
また並列処理のベースとなる変数は,以下に従い決定される.
parallel_ie![]() ![]() /******** 本文 *********/ } |
こちらの並列処理構文は,全てのワーキングセットを同等に扱うことが 出来ない場合に利用する.具体的には,
なお詳しい書式に関しては,以下の制約は加わるが,基本的な書式は parallel構文のものと同様である.
example:
vs_module sample(iImage data1, iImage data2) { parallel<2,3>(lx, ly) { if((lx == 0) && (ly == 0)) .... } .... |
この例では,2次元変数に対するparallel構文を利用している.
parallel構文内では,モジュール sample()の最初の引数であるVIOS変
数data1をベース変数とし,各次元の識別変数には lx, lyという名前を利用して
いる.また,各ワーキングセットの大きさはピクセルとなる.