Main Content

並列 for ループ (parfor) を使用するコードの生成

この例は、parfor ループを含む MATLAB® アルゴリズムの C コードを生成する方法を示しています。

  1. parfor ループを含む MATLAB 関数を記述します。次に例を示します。

    function a = test_parfor %#codegen
    a=ones(10,256);
    r=rand(10,256);
    parfor i=1:10
      a(i,:)=real(fft(r(i,:)));
    end
  2. test_parfor の C コードを生成します。MATLAB コマンド ラインで次のように入力します。

    codegen -config:lib test_parfor

    使用するスレッドの最大数を指定しなかったため、生成された C コードはループの反復処理を、使用可能な数のコア上で並列に実行します。

  3. スレッドの最大数を指定するには、以下のように関数 test_parfor を書き直します。

    function a = test_parfor(u) %#codegen
    a=ones(10,256);
    r=rand(10,256);
    parfor (i=1:10,u)
      a(i,:)=real(fft(r(i,:)));
    end
  4. test_parfor の C コードを生成します。-args 0 を使用して、入力 u がスカラーの double であることを指定します。MATLAB コマンド ラインで次のように入力します。

    codegen -config:lib test_parfor -args 0 

    生成コードで、多くても入力 u で指定されたコア数で parfor ループの反復処理が実行されます。使用可能なコアが u 個に満たない場合、呼び出し時に使用可能なコア上で反復処理が実行されます。

関連するトピック