主要内容

使用并行计算提高优化性能

这个例子展示了如何使用并行计算工具箱™提高优化性能。该示例讨论了使用并行计算优化复杂的Simulink®模型时所看到的加速。万博1manbetx该实例还说明了使用并行计算时参数个数和模型仿真时间的影响。

需要并行计算工具箱™

一个例子说明优化加速

在使用Simulink Design Optimization时,主要的计算负万博1manbetx荷是模型的仿真。优化方法通常需要在每次优化迭代中进行多次模拟。由于许多模拟是独立的,因此使用并行计算将这些独立模拟分布到不同的处理器上是有益的。

考虑与Aerospace 万博1manbetxBlockset™一起发货的HL20飞机的Simulink模型。HL20模型是一个复杂的模型,包括机械、电气、航空电子设备和环境组件。HL20模型的典型模拟大约需要60秒。

在着陆时,飞机从不同的方向从跑道上的标称轨迹导致飞机偏离进行两次阵风。万博1manbetx使飞机的来自阵风的存在的标称轨道横向偏离保持五米之内的Simulink设计优化用于调谐控制器的3个参数。

该优化是具有和不具有双核的64位AMD®,2.4GHz的,3.4GB Linux和四核64位AMD,2.5GHz的,7.4GB Linux机器使用并行计算来执行。针对此问题了观察到的速度如下所示。

HL20示例演示了使用并行计算时的潜在加速。下一节将讨论其他优化问题所需的加速。

优化什么时候能从并行计算中获益?

前面的部分显示了在优化期间分布模拟可以减少总的优化时间。本节量化预期的加速。

在一般情况下,以下因素可能表明,并行计算将导致更快的优化:

  • 有大量的参数正在被优化

  • 使用了模式搜索方法

  • 一个复杂的Simul万博1manbetxink模型,需要很长时间来模拟

  • 模型中存在大量的不确定参数

下面几节将对每一个问题进行研究。

参数个数及其对并行计算的影响

用优化方法进行的模拟次数与参数的数量密切相关。

梯度下降法与并行计算

考虑通过在每一次迭代基于梯度的优化方法所需的模拟:

  • 仿真当前溶液点

  • 模拟来计算目标的梯度相对于该优化的参数

  • 一旦计算出梯度,模拟沿着梯度的方向评估目标(所谓的直线搜索评估)

这些模拟的,模拟所需的计算梯度是独立的并且被分布。让我们在这个看起来更密切:

Np = 1:16;%参数个数(16 = 4个滤波PID控制器)NLS = 1;%行搜索模拟数,现在假设为1Nss = 1;%串行模拟的总数,仅从标称开始

梯度是用中心差来计算的。每个参数有2个模拟,并包括线搜索模拟,以给出每次迭代的模拟总数:

Nss = 1 + Np * 2 + Nls;

作为梯度的相对于每个参数计算上述可分布或并行运行。这减少了模拟的总数,在当使用并行计算如下系列运行:

NW = 4;并行处理器的%数Nps = 1 +Nls (Np/Nw)*2+Nls;

Nss/Nps的比值给出了我们下面画的加速度

NLS = 0:5;%变化线搜索的模拟次数图;甘氨胆酸hAx =;xlim ([min (Np)马克斯(Np)]);CT = 1:numel(NLS)RF =(1 + NLS(CT)+ NP * 2)./(1 + NLS(CT)+小区(NP / NW)* 2);HLINE =行(“父”hAx,“xdata”、Np、“ydata”中,Rf);如果ct == 1 hLine。线型=' - ';hLine.Color = [0 0 1];hLine.LineWidth = 1;其他的hLine.LineStyle =“-”。;线。颜色= [0.6 0.6 1];hLine.LineWidth = 1;结束结束网格标题(“基于相对加速的梯度下降”)包含(的参数的数量) ylabel (“串行/并行时间”)注释(“箭头”,[0.55 .55],[5/6 2/6])文本(8.5,1.75,“增加线上搜索次数”

从图中可以看出,随着参数的增加,相对加速效果会越来越好。上面的实线是最好的加速,没有线搜索模拟,而较轻的虚线增加线搜索模拟的数量。

该图还显示了在4、8、12、16个参数处的局部最大值,这对应于参数梯度计算可以在并行处理器之间均匀分布的情况。回想一下,对于具有3个参数的HL20飞机问题,观察到的四核处理器加速为2.14,这与这张图非常吻合。

模式搜索法和并行计算

模式搜索优化方法本质上适合于并行实现。这是因为在每次迭代都可以候选解决方案的一组或两组。万博 尤文图斯该算法计算所有这些候选的解决方案,然后生成下一个迭代新的候选方案。万博 尤文图斯评估候选解决方案可以并行,因为它们是独立完成。万博 尤文图斯让我们在这个看起来更密切:

模式搜索使用两个候选解决方案集:搜索集和投票集。这些集合中元素的数量与优化参数的数量成正比

Nsearch = 15 * Np;%解集中元素的默认数量Npoll = 2 * Np;%使用2N轮询方法的轮询集中的元素数

每次迭代模拟的总数为候选解的搜索和调查组的数量的总和。万博 尤文图斯当分配候选解集仿真并行处理器之间均匀地分布。在串联运行后分布因而降低了的模拟次数:

Nps =装天花板(Nsearch / Nw) +装天花板(Npoll / Nw);

当评估在不使用并行计算候选解,迭代终止,一旦一个候选解决方案万博 尤文图斯,比当前的解决方案中找到。如果没有更多的信息,最好的办法是,对候选解决方案的一半将被评估。万博 尤文图斯串行模拟数量是这样的:

NSS = 0.5 *(n搜索+ Npoll);

还要注意,搜索集只在前两个优化迭代中使用,之后只使用轮询集。在这两种情况下,比率Nss/Nps给出了加速度,如图所示。

图;甘氨胆酸hAx =;xlim ([min (Np)马克斯(Np)]);一国= (Nss)。/ (Nps);Rp2 = (Npoll)。/(装天花板(Npoll / Nw));线(“父”hAx,“xdata”、Np、“ydata”一国,'颜色', 0 0 1);线(“父”hAx,“xdata”、Np、“ydata”Rp2,'颜色', 0.6 0.6 1);网格标题(“基于模式搜索的相对加速”)包含(的参数的数量) ylabel (串行时间/并行时间)传说(“搜索和投票集”“调查只设置”

暗曲线表示在评估解决方案和轮询集时的加速速度,较轻的较低曲线表示仅评估轮询集时的加速速度。对优化的预期加速应该位于两条曲线之间。注意,即使只有一个参数,模式搜索方法也受益于分布。还记得,对于HL20飞机问题,它有3个参数,观察到的四核加速是2.81,这与这个图很匹配。

架空分发优化

在前面的章节中,与并行执行优化相关的开销被忽略。包括这方面的开销使模拟将从分布式优化受益的复杂性的指示。

与并行运行优化相关的开销主要来自两个来源:

  • 打开并行池

  • 加载Simulink模型万博1manbetx并在模型上执行更新图

与远程处理器之间的数据传输也有一些开销。万博1manbetxSimulink Design Optimization依赖于共享路径来提供对模型的远程处理器访问,返回的数据被限制为客观的和约束违背的值。因此,这种开销通常比打开MATLAB®池并加载模型要小得多。这对HL20飞机优化是正确的,但可能不是在所有情况下都是正确的。但是,可以对下面所示的分析进行扩展,以涵盖额外的开销。

findOverhead = FALSE;%设置为true以计算系统开销。如果findOverhead%计算开销。wState =警告(“关闭”“MATLAB:调度员:pathWarning”);t0 =时钟;parpool%打开平行池load_system('airframe_demo'%打开一个模型set_param ('airframe_demo'“SimulationCommand”“更新”%运行模型的更新关系图Toverhead = etime(clock,t0)'airframe_demo')删除(GCP)关闭并行池警告(wState);其他的%用途开销从实验中观察到。Toverhead = 28.6418;结束

让我们考虑一个基于梯度的算法,每次迭代的串行模拟数如下:

NW = 4;% 4个并行处理器Np = 4;%四个参数优化NLS = 2;%假设2个搜索模拟Nss = 1 + Np * 2 + Nls;没有并行计算的串行模拟NPS = 1个+小区(NP / NW)* 2 + NLS;%串行模拟与并行计算

现在计算的加速是总并行时间(包括开销)与总串行时间的比率。对于最坏情况分析,假设优化在一次迭代后终止,迭代结果如下:

硝石= 1;Ts = 10:10:60;%一次模拟模型的时间结核菌素=硝石* Nss * Ts;%总串行优化时间Tpt =硝石* Nps * Ts + Toverhead;总并行优化时间图;甘氨胆酸hAx =;XLIM([分钟(Ts)的最大值(TS)]);RP =(TST)./(TPT);线(“父”hAx,“xdata”Ts,“ydata”Rp,'颜色', 0 0 1);硝石= 2 ^ 1:4;CT = 1:numel(硝石)RP =(硝石(CT)* * Nss为TS)./(硝石(CT)* * NPS TS + Toverhead);线(“父”hAx,“xdata”Ts,“ydata”Rp,'颜色', 0.6 0.6 1);结束网格标题(“并行开销对优化加速的影响”)包含(“该模拟一次模型了”) ylabel (串行时间/并行时间)注释(“箭头”[0.55 - 0.55], [0.45 - 0.85]);文本(38,2.05,“不断增加的迭代次数”

较暗的下部曲线显示了一次迭代的加速,而较轻的上部曲线显示了多达16次迭代的加速。

可以对基于模式搜索的优化执行类似的分析。经验表明,对于运行时间超过40秒的复杂模拟的优化通常可以从并行优化中受益。

不确定参数及其对并行优化的影响

当使用Simulink万博1manbetx设计优化,你可以改变某些参数(说一个弹簧刚度)和优化的参数在这些变化的脸。不确定参数定义需要在每次迭代进行评估附加的模拟。然而,在概念上你可以认为这些额外的模拟为无不确定参数扩展模拟。这意味着,一个地方进行模拟,目前多个仿真进行。其结果是,不确定参数不影响开销的优化加速,并在前面章节的计算是有效的。

在我们考虑开销的情况下,不确定参数会增加模拟时间,并减少与创建并行优化相关的开销的影响。要了解这一点,请考虑以下内容

Nu = [0 10];%不确定情景的数量Nss =(1 +ν)* (1 + Np * 2 + Nls);没有并行计算的串行模拟Nps =(1 +ν)*(1 +装天花板(Np / Nw) * 2 + Nls);%串行模拟与并行计算图;甘氨胆酸hAx =;XLIM([分钟(Ts)的最大值(TS)]);ct = 1:元素个数(ν)Rp = (Ts * Nss (ct))。/ (Ts * Nps (ct) + Toverhead);线(“父”hAx,“xdata”Ts,“ydata”Rp,'颜色', 0 0 1);结束网格标题(不确定参数对优化加速的影响)包含(“该模拟一次模型了”) ylabel (串行时间/并行时间)注释(“箭头”,[0.45 0.45],[0.4 0.9])文本(31,2.05,不断增长的不确定变量的数目“

下面的曲线是没有不确定参数的情况,而上面的曲线是有一个不确定参数的情况,可以取10个不同的值。