各ワーキングセットにおいて、境界条件などの例外処理、およびインデックス情報などを利用するために使用する関数群の説明です。
各計算機が持っている分割データ中でのindexと,統合された全データにおけるindexの変換を行うための関数群とななります。アドレスの絶対指定などの場合に利用します。
vios_valueのx軸における、ローカルindex numを、全体データでのindexに変換します。(local to global)
上記関数のy軸版。vsImage、vsCube変数のみ利用可能です。
上記関数のz軸版。vsCube変数のみ利用可能です。
vios_valueのx軸における、グローバルindex num を、ローカルデータでのindexに変換します。(global to local)
上記関数のy軸版。vsImage、vsCube変数のみ利用可能です。
上記関数のz軸版。vsCube変数のみ利用可能です。
VIOS変数における、幅や高さなどの全体の情報を得るための関数群です。
vios_value全体における、x軸方向のローカル最大値を得ます。
vios_value全体における、y軸方向の最大値を得ます。
vios_value全体における、z軸方向の最大値を得ます。
ローカル計算機が保有する、vios_valueのx軸方向の最大値 を得ます。(ただしキャッシュ領域を含む)
ローカル計算機が保有する、vios_valueのy軸方向の最大値 を得ます。(ただしキャッシュ領域を含む)
ローカル計算機が保有する、vios_valueのz軸方向の最大値 を得ます。(ただしキャッシュ領域を含む)
ローカル計算機が保有する、vios_valueに対して、処理を行うワーキングセットのローカル最小x値を得ます。
ローカル計算機が保有する、vios_valueに対して、処理を行うワーキングセットのローカル最大x値を得ます。
ローカル計算機が保有する、vios_valueに対して、処理を行うワーキングセットのローカル最小y値を得ます。
ローカル計算機が保有する、vios_valueに対して、処理を行うワーキングセットのローカル最大y値を得ます。
ローカル計算機が保有する、vios_valueに対して、処理を行うワーキングセットのローカル最小z値を得ます。
ローカル計算機が保有する、vios_valueに対して、処理を行うワーキングセットのローカル最大z値を得ます。
型全体のデータを同型式、同サイズの変数へコピーするための関数(ただし,キャッシュ領域のデータも上書きされます)
vsvalue型(ivalue, fvalue)の変数2から変数1へ全データ領域をコピーする。
vsImage型(iImage, fImage)の変数2から変数1へ全データ領域をコピーする。
vsCube型(iCube, fCube)の変数2から変数1へ全データ領域をコピーする。
特定ワーキングセットに対する処理の抑制や、キャッシュ領域の更新などを行う関数。
1次元parallel構文により並列処理を行う際、全体デー タでの外周numをその処理対象から外します。
上記関数の2次元版
上記関数の3次元版
example:
上記図は、2次元変数を4分割した場合のイメージしています。本来、 各計算機が担当する処理領域は、図中心の十文字で区切られた各領域全てですが、vsSetBoundaryにより、それぞれ、L字状に処理を行わない領域が出来ています。
全計算機間において同期が取られます。
vios_valueにおけるキャッシュ領域を最新のものに更新します。またこの際、全計算機間において同期が取られます。
指定したTYPEによりvios_valueの統合を行います。
なお、vios_valueは分割タイプとしてALLが指定されていることを前提とします。
vios_valueのindex pos に値 value を代入します。(ただし、vios_value は1次元,かつ分割タイプはALLである必要があります) また、vsUnion(vios_value,vsAGGRIGATE)を行うまで値valueの反映はされません。
ワーキングセット間で値の交換を行うための関数。
自身から相対アドレス指定されるワーキングセットよりデータを入力変数に受信します。また処理はデータの入力がある までブロックされます。
例) comm_in(-1, 0, &value); 相対座標(-1, 0)のワー キングセットから値を入力し、変数valueへ代入します。
自身から相対アドレス指定されるワーキングセットへデータ valを送信します。
なおこれら命令の使用例は、サンプルdp_matchingを参照してください。