预测 Python 中差异进化的并行性能

Predicting Parallel Performance of Differential Evolution in Python

我是一名工程专业的学生,​​正在实习遗传算法。最近,我一直在研究差异进化。由于我实习的责任,我们决定直接使用scipy.optimize.differential_evolution()来测试差异进化。

文档中提到并行是可能的,但我们不确定它是否真的会产生很大的不同。这就是为什么我们决定寻找是否有一种方法可以预测性能的提高。我发现使用 Amdahl's Law 可以实现这样的事情。我的问题是,为了使用阿姆达尔定律,我必须知道 "portion of the program can be parallelized"。有没有人可以帮我找到这部分?或者可能以另一种方式预测改进?

提前致谢!

Q : "...such a thing could be possible by using Amdahl's Law. ( SER v/s PAR portion ) Or another way?"

首先,了解更多关于修订的细节,至少 overhead-strict Amdahl's Law,
更好 overhead-strict & resources -aware 重新制定,
作为 开销 和原子性期间的资源(非)可用性-工作时期(在进化时期)将在您的用例中决定更多方式,而不是开销天真的 SER/PAR 部分。

如果需要以动态和交互方式查看这些效果,另请阅读 this,其中第一张图链接到交互式演示,说明用户可选择 [SERIAL][PARALLEL] 部分以及选择设置和终止 + 所有 SER/DES-related 附加开销 ,这可能会变得非常疯狂,如果你选择进入 workers = -1 或 RAM-thrashing 开始把事情搞得一团糟。