dspunfold
不同于parfor
?这dspunfold
和parfor
(MATLAB编码器)功能加速MATLAB®通过并行化算法。每个功能都有自己的优势和缺点。
当您使用时parfor
在入口点MATLAB功能中,并致电代码根
在此函数上,生成的MEX文件是多线程。有关更多信息,请参阅使用平行的横环(PARFOR)的算法加速度(MATLAB编码器)。然而,parfor
对于DSP算法不是理想的选择。原因是DSP算法涉及状态。
DSP System Toolbox™中的大多数算法都包含状态和流数据。MATLAB中的状态是使用持久变量建模的。因为parfor
不支持持久变量,您金宝app无法使用parfor
循环。看parfor-loop中的全球或持续声明(MATLAB编码器)。此外,您不能跨越任何数据依赖性parfor
循环。因此,您无法在这些循环中维护状态信息。看当不使用parfor-loops(MATLAB编码器)。dspunfold
通过支持持续变量来克服这些限制。金宝app
dspunfold
引入延迟如果您的应用程序不忍受延迟,请使用parfor
反而。parfor
不引入延迟。延迟是生成第一个输出帧之前处理的输入帧数。
parfor
需要重大重组代码parfor
要求您重组算法以独立于迭代的循环状结构。由于语义限制parfor
,更换为了
- 环parfor
- 环通常需要重大的代码重构。dspunfold
不需要您重组代码。
parfor
与dspunfold
你打电话时dspunfold
在包含的入口点MATLAB函数上parfor
,,,,parfor
多线程被禁用。dspunfold
呼叫代码根
与–o
选项设置为禁用:OpenMP
。使用此选项集,parfor
循环被视为为了
- 循环。生成的MEX文件的多线程行为完全归功于dspunfold
。