parfor
平行为
循环
描述
例子
输入参数
限制
你必须使用一个编译器,它支持开放的多处理(OpenMP)应金宝app用程序接口。看到金宝app支持编译器。如果你使用一个不支持OpenMP的编译器,金宝appMATLAB编码器将
parfor
循环,为
循环。在生成的墨西哥人或C / c++代码函数,循环迭代运行在单独的线程中。OpenMP与墨西哥人JIT编译应用程序接口不兼容。看到JIT编译不支持OpenMP金宝app。
不要使用以下结构在里面
parfor
循环:你不能调用外部函数使用
coder.extrinsic
在的身体parfor
循环。你不能写一个全局变量中
parfor
循环。MATLAB编码器不支持使用吗金宝app
coder.ceval
在减少。例如,您不能为以下生成代码parfor
循环:parfor我= 1:4 y = coder.ceval (“myCFcn”,y,我);结束
coder.ceval
和调用这个函数parfor
循环。例如:parfor我= 1:4 y = callMyCFcn (y,我);结束函数y = callMyCFcn(我)y, y = coder.ceval (“mCyFcn”,y,我);结束
循环索引的类型必须由一个整数表示的类型在目标硬件。使用一个类型,不需要多字输入生成的代码。
parfor
独立的代码生成需要的工具链方法构建可执行文件或库。不改变设置导致代码生成器使用makefile的模板方法。看到项目或配置是使用模板Makefile。使用
parfor
在MATLAB代码中,您需要一个并行计算工具箱™许可证。
全面的限制列表,请参阅parfor限制。
提示
使用一个
parfor
循环时间:你需要很多循环迭代的一个简单的计算。
parfor
将循环迭代划分为组,每个线程可以执行一组迭代。你有循环迭代,需要很长时间来执行。
不使用
parfor
循环当迭代循环的结果取决于其他迭代。削减是一个例外。一个减少变量积累的值取决于一起迭代,但独立于迭代顺序。
输入参数
NumThreads
集OpenMPnum_threads ()
子句在生成的代码中。OpenMP还支持在全球金宝app范围内限制线程的数量在C / c++中通过设置环境变量OMP_NUM_THREADS
或使用omp_set_num_threads ()
。有关更多信息,请参见openMP规范。https://www.openmp.org/specifications/
版本历史
介绍了R2012b