控制 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 编译器。