Main Content

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 コンパイラを使用する。

参考

関連するトピック