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 是双精度标量。在 MATLAB 命令行中输入:

    codegen -config:lib test_parfor -args 0 

    在生成的代码中,运行 parfor 循环迭代的内核数最多只能为输入 u 指定的内核数。如果可用的内核数小于 u 指定的内核数,则在调用时迭代会在可用的内核上运行。

相关主题