主要内容

改善与并行计算的性能

影响速度的因素

一些因素可能影响并行处理的执行速度:

  • 并行开销。在调用开销parfor而不是。如果函数评估快速,这可能成为明显的开销。特别是,并行解决问题可以低于连续解决问题。

  • 没有嵌套parfor循环。这是描述的嵌套并行功能parfor不能并行工作,从另一个parfor循环。如果你设定你的目标或约束函数利用并行处理,没有嵌套的限制parfor循环可能导致解算器运行比你想象的更慢。特别是,并行计算差分优先,因为这是一个外循环。这将导致任何并行代码在目标或约束函数连续执行。

  • 当串行执行,parfor循环运行慢循环。因此,为了获得最佳性能,确保只有你最外层并行循环调用parfor。例如,假设您的代码调用fmincon在一个parfor循环。最佳性能在这种情况下,设置fminconUseParallel选项

  • 传递参数。机器参数自动传递给工人在并行计算的执行。如果有大量的参数,或者他们需要大量的内存,通过他们可能会减缓你的执行计算。

  • 争用资源:网络和计算。如果工人的机器的网络带宽较低或高延时,计算可能会放缓。

影响结果的因素

一些因素可能影响数值结果当使用并行处理。有更多相关的警告parfor中列出的并行for循环(parfor)(并行计算工具箱)

  • 持续或全局变量。如果你的目标或约束函数使用持久或全局变量,这些变量可能需要不同的值在不同的工人处理器。此外,他们可能无法正确清理工人处理器。连接器可以抛出错误,如尺寸不匹配。

  • 访问外部文件。外部文件可能在并行计算以不可预知的方式访问。计算的顺序是不能保证在并行处理,所以外部文件可能在不可预知的访问顺序,导致不可预知的结果。

  • 访问外部文件。如果两个或多个处理器同时试图读取外部文件,该文件可能会锁定,导致读取错误,停止执行优化。

  • 如果你的目标函数调用模型金宝app®与并行梯度估计结果可能是不可靠的。

  • Noncomputational功能,例如输入,情节,键盘表现很差,可能在目标或约束功能。当被称为parfor循环,这些函数是在工人的机器上执行。这可能会导致一个工人成为停止响应,因为它是等待输入。

  • parfor不允许打破返回语句。

寻找全球最适条件

寻找全球最佳状态,一种方法是评估各种初始点的解算器。如果你分发这些评估使用的处理器数量parfor功能,您禁用并行梯度估计,因为parfor不能嵌套循环。你的优化通常运行更快如果你分发评估所有处理器,而不是运行串行与并行梯度估计,所以禁用并行估计可能不会减缓你的计算。如果你有更多的处理器比初始点,不过,目前还不清楚是否更好的分配初始点或启用并行梯度估计。

如果你有一个全局优化工具箱许可证,您可以使用MultiStart(全局优化工具箱)并行解算器检查多个开始点。看到并行计算(全局优化工具箱)平行MultiStart(全局优化工具箱)

相关的话题