MATLAB R2014b 中的 MATLAB Coder 和 parfor

Posted

技术标签:

【中文标题】MATLAB R2014b 中的 MATLAB Coder 和 parfor【英文标题】:MATLAB Coder and parfor in MATLAB R2014b 【发布时间】:2015-09-16 11:06:44 【问题描述】:

MATLAB R2014b 中的 MATLAB Coder 是否支持parfor

如果我检查the documentation,它会报告:

在 MATLAB Function 模块中被视为 for 循环。

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

【问题讨论】:

【参考方案1】:

循环仅在"MATLAB Function" block 的上下文中以串行方式运行

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

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

你可以看到这些信息:

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

【讨论】:

【参考方案2】:

Matlab-r2014b 中的 Matlab Coder 是否支持 parfor?

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

这是否意味着没有减速?

是的。您从字面上引用“它被视为for 循环”。

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

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

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

【讨论】:

好吧,你基本上偷了我的编辑并更改了 1 个字。但是,是的,现在看起来不错。 这是正确的仅在“MATLAB 功能块”的上下文中 @Edric 感谢您提供的信息。我将其包含在答案中以使其完整。

以上是关于MATLAB R2014b 中的 MATLAB Coder 和 parfor的主要内容,如果未能解决你的问题,请参考以下文章

Matlab R2014b安装教程

在2014b中重绘2013b中保存的图

C中的Matlab引擎函数返回零

请问如何将下列C语言程序改成matlab中的m文件?

MATLAB中的struct操作

matlab中的plot函数怎样在c语言中实现