技术文章和通讯

与并行计算提高优化性能

斯图尔特Kozola MathWorks


工程师、科学家和金融分析师经常使用优化方法来解决计算量大的问题,如平滑的大型计算网格用于流体动力学模拟,进行图像配准,或分析高维金融投资组合。然而,计算一个解决方案可以从几个小时到几天。

并行计算技术可以帮助减少所花费的时间达成解决方案。获得并行的全部好处,重要的是要选择一个适合的方法优化问题。

本文描述了两种方法在优化问题中使用固有的并行性,以减少时间的解决方案。第一个例子使用并行计算选项解决一个数学问题的优化工具箱™,并且不需要修改代码。第二,实际工程优化问题,需要一个单行代码的变化。这两个示例使用并行计算工具箱™和MATLAB并行服务器™自动化和管理并行计算任务。

并行优化,优化工具箱

在一个典型的优化迭代搜索过程用于查找一个给定函数的最小值的例子,基于使用梯度算法来找到一个最小值的峰值在MATLAB函数®(图1)。

po_fig1_w.jpg
图1所示。基于使用梯度优化解算器搜索最小值。点击图片查看放大图。

梯度估计往往是最耗时的计算在优化。在一个迭代中,函数的优化求解估计当地的梯度,并使用这些信息来确定搜索的方向和步骤的大小在搜索下一个点。解决重复此过程,直到找到一个最小值或到达一个预定义的时间或迭代的限制。

梯度估计步骤中,通常使用一个近似执行方法,如有限的差异,需要几个函数评估当前点附近。通常,N函数需要评估,其中N是变量的数量,或问题的维数。随着N的增加,功能的数量为每个迭代和时间评估解决方案。

图2显示了如何执行计算并行加速梯度估计。N函数评估用于估算梯度当上执行一个MATLAB工人会连续执行。

po_fig2_w.gif
图2。串行和并行梯度估计方法。点击图片查看放大图。

而在串行方法N函数评估一个接一个发生,在并行方法计算分布在MATLAB的工人,和几个函数评估可以同时发生。我们可以加快梯度估计只要分布函数评估跨多个工人的成本小于N目标和约束函数的执行时间评估。实际解决时间取决于客观/约束函数的执行速度,计算机处理速度,可用内存,电流负荷和网络速度。

一个静电学的例子

这个例子演示了如何制定并在MATLAB解决优化问题。考虑N电子导电体(图3)。电子安排自己降到最低势能,躺在进行身体的约束。在最小总势能,所有的电子躺在身体的边界。因为电子是没有区别的,这个问题没有唯一的最小(交换电子在一个解决方案给了另一个有效的解决方案)。

po_fig3_w.jpg
图3。进行身体和电子。点击图片查看放大图。

优化目标是最小化总势能的电子受到的约束电子仍在进行的身体。势能,目标函数是逆之间的距离之和每个电子对(\ (i, j = 1, 2, 3,…N \)):
文本\[\{能源}= \ sum_ {i < j} \压裂{1}{| x_i——x_j |} \]

约束定义的边界进行的身体

\[\{方程}开始z \ leq - x | | | | \ \ x ^ 2 + y ^ 2 + (z + 1) ^ 2 \ leq 1 \{方程}结束\]

写,第一个不平等是一个非光滑非线性约束,因为绝对值\ (x \)和\ (y \)。绝对的值可以线性化来简化优化问题。这个约束可以用线性形式为一组四个约束每个电子\(我\)。

\[开始\{对齐}间{我3}-间的{1}我-间{我2}& \ leq 0 \ \间{我3}-间的{1}我+间{我2}& \ leq 0 \ \间{我3}+间的{1}我-间{我2}& \ leq 0 \ \间{我3}+间的{1}我+间{我2}& \ leq 0 \{对齐}结束\]

指标1、2和3参考x,y,z坐标,分别。

这个问题可以解决的非线性约束规划求解fmincon优化工具箱。图4显示了在MATLAB问题公式化。注意,在定义目标函数,sumInvDist,暂停(t)是补充道。这改变的时间执行sumInvDist,让我们确定解决方案的执行时间的变化。

po_fig4_w.jpg
图4。在MATLAB问题公式化。点击图片查看放大图。

我们执行优化问题在一个MATLAB工人。为了方便起见,我们将加速定义为所花费的时间比解决问题1日工人相对于时间N工人解决同样的问题。因此,对于任何问题上运行一个工人,加速被定义为1。当同样的问题是运行在多个工人,一个加速大于1表示降低解决方案的时间和加速不到一表示增加。

使用并行计算能力优化工具箱,我们改变UseParallel从默认的选项,“从来没有”,要“永远”,使所需的计算节点的数量matlabpool命令和运行优化解算器(图5)。

问题。选择= optimset (problem.options“UseParallel”,“总是”);matlabpool开放2 [x, fval exitflag、输出]= fmincon(问题);

图5。运行优化解算器使用并行计算能力优化工具箱。

这个例子运行在两个工人和20%低于未婚职工的情况。N的目标和约束函数的评估时间是0.5毫秒。一个评价的目标函数和约束函数大约需要0.5毫秒。因为评估花太少时间,与农业相关的开销超过任何数据和计算收益,是并行运行的代码来实现的。因此,运行并行分布计算是低于连续运行问题。

这个例子表明,连续优化问题受益于并行计算,与函数相关的成本评估与梯度估计必须大于与数据和代码相关的开销成本转移。

进一步了解相关的权衡目标函数执行时间,MATLAB工人数量和数量的变量(电子),我们跑这个问题暂停时间(t)从0到0.4秒,工人从1到32岁,和电子的数量从8到20。图6和图6 b显示结果绘制t = 0和0.1秒,分别。

图6显示了如何改变加速电子的数量。8和10个电子,更多的工人的开销成本降低了加速。16电子,成本低于函数评估成本开销,我们看到一个积极的影响加速对大多数工人。评估一个目标函数的平均时间是在1毫秒的顺序在一个工人。的最大加速发生在大约8工人。增加工人的数量增加了通信开销,最终消除使用并行计算的好处。

po_fig6a_w.gif
图6 a。结果暂停时间t = 0秒。点击图片查看放大图。

图6 b显示了结果如何改变目标函数评价时间大大超过开销成本。快速增长加速再次观察8工人。注意到的最大减少曲线8-electron情况和16-electron情况是8和16个工人,分别。增加的数量是平衡的结果可以进行并行计算与相同数量的员工。对于8-electron 8工人导致最大的提高。类似的趋势是16-electron看到的情况。

po_fig6b_w.gif
图6 b。结果暂停时间t = 0.01秒。点击图片查看放大图。

用户定义的并行优化问题

正如我们所看到的,所需要的时间评估客观时间强烈影响的解决方案。因此,我们可以采取的方法之一是寻找并行在目标函数和约束函数,并行化的目标或约束函数。

我们将这种方法内部的分布计算问题的目标函数如图7所示。这个问题的目标是设计一个最小化的悬架系统不适司机在旅行时将经历的坎坷。与此同时,我们必须考虑不确定性的质量司机,乘客,树干载荷。我们可以修改四个参数定义前后悬架系统的刚度和阻尼率:kf,基米-雷克南,cf,cr。广大司机、乘客和树干载荷是不确定的,正态分布分配给他们。

po_fig7_w.jpg
图7。车辆悬架模型和仿真结果为空。点击图片查看放大图。

蒙特卡罗模拟执行捕获不同的车辆载荷。模型输出角加速度的重心(thetadotdot、图像)和垂直加速度(zdotdot、图像)。

目标函数,myCostFcnRR,包含了蒙特卡罗模拟用于评估加速度的平均值和标准偏差,乘客们将经历(图8)。我们的目标是最小化平均值和标准偏差。

po_fig8_w.gif
图8。目标函数用于运行中的蒙特卡罗模拟优化过程。点击图片查看放大图。

在蒙特卡罗模拟,每个独立运行,因此可以受益于并行计算。从串行并行转换问题,我们简单地取代循环结构的parfor(平行循环)构造(图9),内部的客观陈述parfor循环可以并行运行,加速目标函数评价时间。

po_fig9_w.jpg
图9。目标函数修改并行执行。点击图片查看放大图。

优化问题是三个不同的值nRuns,点的数量来评估的蒙特卡罗模拟。结果表明,并行目标函数产生可观的性能提升(图10)。

po_fig10_w.gif
图10。结果悬架系统设计问题。点击图片查看放大图。

选择一个并行化的方法

结果显示,最好是选择一个并行方法基于遇到计算费用的优化问题。第一个例子显示,可以看到减少性能即使在分布计算如果目标/约束函数执行时间不超过的通信开销。问题和硬件配置测试,我们需要至少一个毫秒的执行时间看到任何受益于并行问题。

第二个例子显示,通过执行并行计算获得的好处可以依赖的问题得到解决。使用目标函数中的并行性,parallelising目标函数itself-resulted更好的性能比可能使用并行计算选项优化工具箱。在这个例子中,目标函数的执行时间是最慢的优化问题的一部分,并加速减少目标函数导致最大的解决方案。

总之,当选择一个并行化的方法是很重要的考虑可用的工人的数量和目标/约束函数的执行时间相对于相关管理费用分配计算跨多个工人的内置支持优化工具箱是有益的问题客观/约束函数的执行时间大于网络开销。万博1manbetx然而,并行目标/约束函数本身可以是一个更好的方法如果是最昂贵的一步优化问题,目标函数可以通过并行加速。

2009 - 91710 v00出版

查看相关文章的能力