平行对于
-循环
您必须使用支持打开多处理(OpenMP)应用程序界面的编译万博1manbetx器。看到万博1manbetx支持的编译器。如果您使用不支持OpenMP的编译器,万博1manbetxMatlab编码器对待议案
- 乐队对于
- 砍伐。在生成的MEX函数或C / C ++代码中,循环迭代在单个线程上运行。
OpenMP应用程序界面与JIT MEX编译不兼容。看到JIT汇编不支持OpenMP万博1manbetx。
不要在内部使用以下构造议案
- 砍伐:
您无法使用外部功能编码器.Extrinsic.
在一个身体议案
-循环。
您无法在A内写入全局变量议案
-循环。
Matlab编码器不支持使用万博1manbetx编码器.CEVAL.
减少。例如,您无法为以下内生成代码议案
-循环:
议案i = 1:4 y = coder.ceval('mycfcn',义);结束
编码器.CEVAL.
并致电这个功能议案
-循环。例如:议案i = 1:4 y = callmycfcn(y,i);结束功能y = callmycfcn(y,i)y = coder.ceval('mcyfcn', 义);结束
你不能使用varargin.
要么varargout.
在议案
- 砍伐。
循环索引的类型必须通过目标硬件上的整数类型表示。使用生成的代码中不需要多字类型的类型。
议案
对于独立代码生成,需要工具链方法来构建可执行文件或库。不要更改导致代码生成器使用模板Makefile方法的设置。看到项目或配置使用模板makefile。
有关限制的全面列表,请参阅限制。
用一个议案
- 辛:
您需要许多简单计算的循环迭代。议案
将循环迭代划分为组,以便每个线程可以执行一组迭代。
您有需要很长时间才能执行的循环迭代。
不要使用议案
- 循环中的迭代取决于其他迭代的结果时。
减少是此规则的一个例外。一种减少变量累积取决于所有迭代的值,但与迭代顺序无关。
输入论点numthreads.
设置OpenMP.num_threads()
生成代码中的子句。OpenMP还支持通过设万博1manbetx置环境变量全局限制C / C ++中的线程数OMP_NUM_THREADS.
或者使用OMP_SET_NUM_THREADS()
。有关更多信息,请参阅OpenMP规范。https://www.openmp.org/specifications/