: プログラミングモデル
: VPE-p基本構成
: VPE-p基本構成
VIOSでは,複数のユーザにより利用されることを想定しているため,各モジュー
ルファイルの統合は行わず,個別に識別するスタイルを取っている.
そのため,1VPE-pプログラムファイル辺り,1つのモジュールが記述されている
ことを想定している.そのため,以下のような制限が存在する.
- コンパイル時指定するファイルに,指定する形式でvs_module
構文が1つ宣言されていること.
なおこれは,あくまでコンパイル時に指定するファイルに対する制限であり,こ
のメインファイルから複数のファイルをインクルードすることに制限はないが,
VPE-pは,インクルードファイルを辿り解析することはしないため,指定するファ
イル以外(#includeなどで引用するファイル)ではVPE-pの拡張表現,変数,な
どは利用できない.
またvs_module構文は次の様に定義される.
vs_module モジュール名(
VIOS型 変数名, ...) {
/******** 本文 *********/
}
|
- vs_moduleはtypedefされた予約型である.
- 引数は,メインフローから自動分割され渡されるため,ivalue, fvalue,
iImage, fImage, iCube, fCubeのいずれか(またはその最適化変数:
1)をとる必要がある.
- 引数0でも問題ないが,その場合parallel構文は利用できない
(vios_childを実行するホスト数での並列処理になる).
注意)
VIOSでは実行効率向上を図るため,モジュール実行開始時点において引
数データの受け渡し(メインプロセスからの分割・転送)が終了していない.
引数データの到着状況は local_heigh関数などにより,随時確認する
ことが可能であるが,次の関数以降の構文では完全にデータがそろっていること
が保証される.
- vsDataWait2D() などの明示的データ待ち関数.
- parallel, parallel_ie構文(構文内の処理に関しても全ての
データに対し処理されることが保証される).
Tomohide Kawawaki
平成14年3月22日