Моя проблема, кажется, простая, но пока я не нашел удовлетворительного ответа. Код, который я запускаю, занимает очень много времени, и мне нужно запускать его много раз (в идеале 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). Конечная цель состоит в том, чтобы просто запустить каждое испытание одновременно (или как можно большее количество одновременно, и как только оно закончится, начать другое испытание и т. Д.) И поместить результаты в список, который затем будет усреднен. Я попробовал это, и оно продолжалось несколько часов, гораздо дольше, чем одно испытание, и никогда не заканчивалось.