MATLAB编码器和MATLAB R2014b中的parfor

时间:2015-09-16 11:06:45

标签: matlab parfor matlab-coder

MATLAB R2014b中的MATLAB编码器是否支持parfor

如果我查看the documentation,则会报告:

  

在MATLAB功能块中作为for循环处理。

这是否意味着没有速度提升?

2 个答案:

答案 0 :(得分:4)

循环仅在"MATLAB Function" block

的上下文中以串行方式运行

如果您查看MATLAB Coder parfor参考页:

http://www.mathworks.com/help/coder/ref/parfor.html

您可以看到以下信息:

  

parfor ... ...在生成的MEX函数或在共享内存多核平台上并行运行的C / C ++代码中创建循环。

答案 1 :(得分:3)

  

Matlab-r2014b中的Matlab编码器是否支持parfor?

是的,您参考中提供的列表告诉您它是受支持的。

  

这是否意味着没有减速?

是。你的字面引用"它被视为for循环"。

因此严格意义上支持parfor这个词,因为它不会抛出错误。但是,它的处理方式与MATLAB在未安装parallellisation工具箱时将其视为常规for循环的方式相同。因此,是的,您可以编译包含parfor循环的MATLAB代码,但它们将被视为序列for循环。

请注意,以上仅适用于功能块;正如@Edric指出的那样:

  

parfor ... ...在生成的MEX函数或在共享内存多核平台上并行运行的C / C ++代码中创建循环。