有什么方法可以并行执行scipy.optimize.minimize(或功能相同的东西)吗?

时间:2016-10-11 16:21:28

标签: python parallel-processing scipy

我有一个我想要运行的多变量优化问题。每次评估都很慢。很明显,将它线程化到多台机器的能力会非常好。编写代码以将作业分派给其他计算机时我没有遇到任何问题。但是,scipy.optimize.minimize按顺序调用每个评估调用;在前一个参数返回之前,它不会给我另一组参数进行评估。

现在,我知道对此的“简单”解决方案是“以并行方式运行您的评估任务 - 打破 it up”。实际上,尽管可以在某种程度上做到这一点,但它只能走到这一步;带宽越高,分裂得越多,直到将其分开,实际上开始减慢你的速度。拥有另一个并行化的轴 - 也就是最小化函数本身 - 将大大提高可扩展性。

使用scipy.optimize.minimize无法做到这一点吗?或者以大致功能相同的方式执行的任何其他实用程序(尽量找到尽可能低的最低值)?当然,最小化实用程序可能可以使用并行性,特别是在多变量优化问题上,其中有许多轴需要检查给定数据点处相对于彼此的梯度。

0 个答案:

没有答案