预测 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 开始把事情搞得一团糟。
我是一名工程专业的学生,正在实习遗传算法。最近,我一直在研究差异进化。由于我实习的责任,我们决定直接使用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 开始把事情搞得一团糟。