主要内容

什么是并行计算优化工具箱吗?

并行优化功能

并行计算是在一个问题上使用多个处理器的技术。使用并行计算的原因是为了加快计算速度。

以下优化工具箱™索盘可以自动将客观函数的梯度和非线性约束函数的数值估计分发给多个处理器:

  • fmincon

  • fminunc

  • fgoalattain

  • Fminimax.

  • fsolve

  • lsqcurvefit

  • lsqnonlin

这些求解器在以下条件下使用并行梯度估计:

  • 您拥有并行计算工具箱™软件的许可证。

  • 的选项SpecifyObjectiveGradient被设定为,或者,如果有一个非线性约束函数,选项SpecifyConstraintGradient被设定为。自是这些选项的默认值,您不必设置它们;只是不要把它们都设为真的

  • 支持并行计算parpool,一个并行计算工具箱功能。

  • 的选项UseParallel被设定为真的。该选项的默认值为

当这些条件保持时,求解器并行计算估计的梯度。

请注意

即使并行运行,求解器偶尔也会在主机上串行调用目标和非线性约束函数。因此,确保您的函数没有关于它们是串行还是并行计算的假设。

梯度的并行估计

一个求解器子程序可以自动并行计算:估计目标函数和约束函数梯度的子程序。这个计算涉及到计算当前位置附近点的函数值x。基本上,计算是

f ( x ) ( f ( x + δ. 1 e 1 ) f ( x ) δ. 1 , f ( x + δ. 2 e 2 ) f ( x ) δ. 2 , , f ( x + δ. n e n ) f ( x ) δ. n ] ,

在哪里

  • f表示目标函数或约束函数

  • e单位方向是向量吗

  • δ.一步的大小在哪里e方向

估计f(x)并行地,优化工具箱求解器分配评估(f(xe) -f(x)) /Δ额外的处理器。

平行的中央差异

您可以选择使用中心有限差分来估计梯度,而不是默认的前进有限差分。中心有限差分的基本公式是

f ( x ) ( f ( x + δ. 1 e 1 ) f ( x δ. 1 e 1 ) 2 δ. 1 , , f ( x + δ. n e n ) f ( x δ. n e n ) 2 δ. n ]

这需要的函数计算量是前向有限差分的两倍,但通常更准确。中心有限差分与正向有限差分完全相同。

通过使用启用中央有限差异optimoptions设置FiniteDifferenceType选择'中央'。要使用前向有限差​​异,请设置FiniteDifferenceType选择“前进”

嵌套并行功能

求解程序使用并行计算工具箱函数parfor(并行计算工具箱)对梯度进行并行估计。parfor当从另一个内部调用时不能并行工作parfor循环。因此,您不能在您的目标或约束函数中同时使用并行梯度估计和并行功能。

请注意

文档建议不要使用parfor或者parfeval当调用仿真软件金宝app®;看在parfor中使用sim功能(金宝app模型)。因此,在使用求解器的内置并行功能并行优化Simulink仿真时,可能会遇到问题。金宝app

例如,假设你的目标函数userfcn调用parfor,你想打电话fmincon在循环中。还假设并行梯度评估的条件fmincon,如并行优化功能,感到满意。当parfor并行运行时显示三种情况:

  1. 最外层的循环是parfor。只有该循环并行运行。

  2. 最外层的parfor循环在fmincon。只有fmincon并行运行。

  3. 最外层的parfor循环在userfcnuserfcn可以使用parfor并行执行。

当parfor并行运行时

另请参阅

||