У меня распределенный процесс случайного процесса.Для этого я использую numpy.random.RandomState
для заполнения чисел.Проблема в том, что я должен использовать другую функцию numpy.random
внутри моей оболочки.Теперь я теряю воспроизводимость начального числа, потому что не могу контролировать порядок вызовов функций.
Краткая версия этой проблемы:
import numpy as np
import multiprocessing
def function(N):
return RDS.choice(range(N))
def wrapper(ic):
return ic,function(ic)
RDS = np.random.RandomState(0)
inputlist = []
for i in range(30):
inputlist.append((RDS.randint(1,100),))
pool = multiprocessing.Pool(4)
solutions_list = pool.starmap(wrapper, inputlist)
pool.close()
pool.join()
print(solutions_list)
Я не могу запустить function(ic)
за пределами обертки, потому что в моем коде это также зависит от результатов расчета.
Есть ли другой способ правильно установить начальное число?