主要内容

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

这个例子展示了如何使用并行计算工具箱™提高优化性能。的例子探讨了加速当使用并行计算优化复杂模型®模型。万博1manbetx的示例还显示了影响参数的数量和模型仿真时使用并行计算。

需要并行计算工具箱™

一个例子说明优化加速

主要的计算负载在使用仿真软件优化设计™的仿真模型。万博1manbetx优化方法通常需要大量的模拟/优化迭代。尽可能多的模拟是独立的,它有利于使用并行计算分发这些独立的模拟在不同的处理器。

考虑HL20飞机的Simu万博1manbetxlink仿真模型,它附带航天Blockset™。HL20模型是一个复杂的模型,包括机械、电气、电子设备和环境组件。一个典型的HL20模型的仿真需要大约60秒。

在着陆过程中,飞机受到两个狂风从不同的方向导致飞机偏离跑道上标称轨迹。万博1manbetx仿真软件优化设计是用来调整控制器的三个参数,以便飞机的横向偏差从标称轨迹的阵风保持在五米。

执行优化都在使用和不使用并行计算64位双核AMD®上,2.4 ghz, 3.4 gb Linux®和四核64位AMD, 2.5 ghz, 7.4 gb的Linux机器。加快观察这个问题如下所示。

HL20示例说明了潜在的加速当使用并行计算。下一小节将讨论加速其他优化问题。

当一个优化将受益于并行计算?

前一节中表明,在优化分配模拟可以减少总优化时间。这部分量化预期的加速。

一般来说,下列因素可能表明,并行计算会导致更快的优化:

  • 有大量的参数优化

  • 模式搜索方法

  • 一个复杂的仿真软件模万博1manbetx型,需要很长时间来模拟

  • 有很多不确定模型中的参数

每一个在以下部分中进行讨论。

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

模拟的数量由一种优化方法是紧密耦合参数的数量。

梯度下降方法和并行计算

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

  • 一个模拟为当前点的解决方案

  • 模拟计算目标的梯度的优化参数

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

这些模拟,模拟计算梯度是独立和分布。让我们更仔细地看看这个:

Np = 1:16;%的参数(16 = 4过滤PID控制器)Nls = 1;%的线搜索模拟,假设1Nss = 1;%的串行模拟总数,开始只是名义上的

梯度计算使用中央差异。2模拟/参数,包括线搜索模拟给模拟每个迭代的总数:

Nss = 1 + Np * 2 + Nls;

正如上面提到的,计算梯度对每个参数可以分布或并行运行。这减少了运行的模拟系列总数当使用并行计算如下:

西北= 4;%的并行处理器Nps = 1 +装天花板(Np / Nw) * 2 + Nls;

比Nss / Nps使我们加速我们下面的情节

Nls = 0:5;%不同数量的线搜索模拟图;甘氨胆酸hAx =;xlim ([min (Np)马克斯(Np)]);ct = 1:元素个数(Nls)射频= (1 + Nls (ct) + Np * 2)。/ (1 + Nls (ct) +装天花板(Np / Nw) * 2);线=线(“父”hAx,“xdata”、Np、“ydata”、Rf);如果ct = = 1线。线型=“- - -”;线。颜色= (0 0 1);线。线宽= 1;其他的线。线型=“-”。;线。颜色= (0.6 - 0.6 (1);线。线宽= 1;结束结束网格标题(“基于梯度下降的相对加速”)包含(的参数的数量)ylabel (“串行/并行时间”)注释(“箭头”0.55[55],[5/6 2/6])文本(8.5,1.75,“越来越多的线搜索”)

情节表明相对加速变得更好更添加参数。上实线是最好的加速,没有线搜索模拟而轻曲线增加的点线搜索模拟。

情节还显示局部极大值在4、8、12、16参数对应参数梯度计算的情况下可以并行处理器之间均匀分布。记得HL20飞机的问题,有三个参数,观察到的四核处理器加速2.14匹配与这个阴谋。

模式搜索方法和并行计算

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

模式搜索使用两个候选解决方案集,搜索设置和调查。在这些集合元素的个数优化参数的数量成正比

Nsearch = 15 * Np;%违约解集的元素数量Npoll = 2 * Np;%的元素数量调查2 n的调查方法

模拟每个迭代的总数是候选人的数量的总和在搜索和调查集解决方案。万博 尤文图斯当分发候选解集之间的模拟是均匀分布并行处理器。模拟运行的数量分布从而减少后系列:

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

当评估候选解决方案不使用并行计算,尽快终止迭代的候选解决方案万博 尤文图斯比当前的解决方案被发现。没有额外的信息,最好的办法是,大约一半的候选解决方案将被评估。万博 尤文图斯串行模拟的数量:

Nss = 0.5 * (Nsearch + 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飞机的问题,有三个参数,观察到的四核加速2.81匹配与这个阴谋。

的开销分配的优化

在前面的部分中,并行执行优化的开销被忽视了。包括此开销了指示模拟的复杂性,将受益于分布式优化。

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

  • 打开平行池

  • 加载仿真软件模型和执行一万博1manbetx个更新图模型

也有一些开销传输数据和从远程处理器。万博1manbetx仿真软件优化设计依赖于共享路径提供远程处理器访问模型和返回的数据是有限的目标和约束违反价值观。因此,这个开销通常远小于打开MATLAB®池和加载模型。这HL20飞机优化是正确的,但可能不是真正的在所有的情况下。然而,如下所示的分析可以扩展到覆盖额外的开销。

findOverhead = false;%为您的系统设置正确的计算开销。如果findOverhead%计算开销。wState =警告(“关闭”,“MATLAB:调度员:pathWarning”);t0 = datetime (“现在”);%当前时间parpool%开放平行池load_system (“airframe_demo”)%打开一个模型set_param (“airframe_demo”,“SimulationCommand”,“更新”)%运行一个模型的更新图Toverhead = datetime (“现在”)t0;%时间Toverhead =秒(Toverhead)%转换为秒close_system (“airframe_demo”删除(gcp)%密切平行池警告(wState);其他的%使用开销从实验中观察到。Toverhead = 28.6418;结束

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

西北= 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 ([min (Ts)马克斯(Ts)]);Rp = (Tst)。/ (Tpt);线(“父”hAx,“xdata”Ts,“ydata”Rp,“颜色”,0 0 1);硝石= 2 ^ 1:4;ct = 1:元素个数(硝酸钠)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秒运行通常受益于并行优化。

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

当使用仿真软件优化设计万博1manbetx,可以改变一些参数(比如弹簧刚度)和面对这些变化的优化参数。不确定的参数定义额外的模拟需要评估在每个迭代。然而,在概念上可以认为这些额外的模拟扩展仿真没有不确定的参数。这意味着任何一个模拟,现在多个模拟进行。因此,不确定参数不影响自由优化加速和计算开销在早些时候的部分是有效的。

如果我们考虑开销,不确定参数的影响越来越仿真时间和减少开销的影响建立一个并行优化。看到这个考虑以下

ν= (10 0);%的数量不确定的场景Nss =(1 +ν)* (1 + Np * 2 + Nls);%串行模拟并行计算Nps =(1 +ν)*(1 +装天花板(Np / Nw) * 2 + Nls);%串行与并行计算模拟图;甘氨胆酸hAx =;xlim ([min (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个不同的值。