parfor ループのコンパイルの制御
既定では、MATLAB® Coder™ は複数のスレッド上で parfor
ループを実行できるコードを生成します。parfor
ループを単一スレッド上で実行される for ループとして扱うには、以下のいずれかの方法で parfor
を無効にします。
コマンド ラインで
-O disable:openmp
オプションを指定して関数codegen
を使用する。プロパティ
EnableOpenMP
を false に設定してコード生成構成オブジェクトを使用する。次に例を示します。cfg = coder.config('lib'); cfg.EnableOpenMP = false; codegen myFunction -config cfg
[プロジェクトの設定] ダイアログ ボックスの [すべての設定] タブで、[可能な場合は OpenMP ライブラリを有効にする] を
[いいえ]
に設定する。
parfor を無効にする場合
以下の操作を行う場合は、parfor を無効にします。
生成されたコードの逐次バージョンと並列バージョンの実行時間を比較する。
障害を調査する。生成されたコードの並列バージョンが失敗する場合、
parfor
を無効にして逐次バージョンを生成してデバッグを容易にする。OpenMP をサポートしない C コンパイラを使用する。