如何利用多处理在单独的核心上运行单独的试验



我的问题看起来很简单,但到目前为止我还没有找到满意的答案。我正在运行的代码非常耗时,我需要运行它很多次(最好是100次或更多(,并对每次测试的结果进行平均。我被告知要尝试multiprocessing,我(在JupyterLab(取得了一些进展。

#my_code.py
def Run_Code():
<code>
return result
import multiprocessing as mp
import numpy as np
import my_code as mc
trial_amount = 2
if __name__ == '__main__':
pool = mp.Pool(2)
result = pool.map(mc.Run_code, np.arange(trial_amount))
print(result)

这个介绍引导了我(https://sebastianraschka.com/Articles/2014_multiprocessing.html#sections)。最终目标是同时运行每个试验(或者一次运行尽可能多的试验,一旦完成就开始另一个试验,以此类推(,并将结果放入列表中,然后进行平均。我试过这个,它持续运行了几个小时,比一次试验长得多,但一直没有结束。

尝试mpi4py-https://stackoverflow.com/a/15717768/1021819给出了一个如何进行的例子。

这里有一个伟大而简单的教程:

https://mpi4py.readthedocs.io/en/stable/tutorial.html

它实际上只是几行字。以下内容也足以让你继续前进。它在核心上分割一个工作循环,然后在master上聚合结果:

https://stackoverflow.com/a/51318100/1021819

相关内容

最新更新