I am studing the multiprocessing module of Python. I have two cases:
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)
Ex 2. (using numpy)
def Foo_np(nbr_iter):
np.random.seed()
print np.random.uniform(0,1,nbr_iter)
In both cases the random number generators are seeded in their forked processes.
Why do I have to do the seeding explicitly in the numpy example, but not in the Python example?
Aucun commentaire:
Enregistrer un commentaire