我正在学习Python的multiprocessing模块。
我有两个情况:
Ex. 1
Ex. 1
def Foo(nbr_iter):
for step in xrange(int(nbr_iter)) :
print random.uniform(0,1)
...
from multiprocessing import Pool
if __name__ == "__main__":
...
pool = Pool(processes=nmr_parallel_block)
pool.map(Foo, nbr_trial_per_process)
例2(使用numpy)
def Foo_np(nbr_iter):
np.random.seed()
print np.random.uniform(0,1,nbr_iter)
在这两种情况下,随机数生成器都是在它们的分叉进程中被初始化的。
为什么我在numpy示例中必须显式地初始化种子,而在Python示例中不需要?