| 1 | initial version |
This is because numpy uses the same seed that was computed before. You can reset the seed in each process:
sage: @parallel
....: def foo(i):
....: np.random.seed()
....: print np.random.random()
sage: list(foo(range(4)))
0.0290924047484
0.491286471752
0.0812252231074
0.055948998056
[(((0,), {}), None),
(((1,), {}), None),
(((2,), {}), None),
(((3,), {}), None)]
| 2 | No.2 Revision |
This is because numpy uses the same random seed that was computed before. before (and given in each subprocess). You can reset the seed in each process:process, so that they will behave independently:
sage: @parallel
....: def foo(i):
....: np.random.seed()
....: print np.random.random()
sage: list(foo(range(4)))
0.0290924047484
0.491286471752
0.0812252231074
0.055948998056
[(((0,), {}), None),
(((1,), {}), None),
(((2,), {}), None),
(((3,), {}), None)]
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.