[Numpy-discussion] random state not portable?

Pietro Berkes berkes@gatsby.ucl.ac...
Mon Mar 26 05:55:39 CDT 2007


Dear Numpy devels,

First of all, thank you for the great job done so far! We've been
updating our MDP module, and had a chance to appreciate it.

We found an issue in the random module: the random state contains an
array of int32 or int64 depending on the architecture, making
it not portable.

For example, try the following on two machines with different
architecures:

Python 2.4.4 (#2, Jan 13 2007, 17:50:26)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> import platform
>>> import pickle
>>>
>>> platform.architecture()
('32bit', '')
>>>
>>> state = numpy.random.get_state()
>>> pickle.dump(state, file('/tmp/random_state.pic','w'))
>>> numpy.random.permutation(numpy.arange(10))
array([8, 6, 3, 1, 0, 5, 7, 4, 2, 9])
>>>

Python 2.5 (r25:51908, Mar 19 2007, 13:41:07)
[GCC 4.1.0 (SUSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> import platform
>>> import pickle
>>>
>>> platform.architecture()
('64bit', 'ELF')
>>>
>>> state = pickle.load(file('/tmp/random_state.pic','r'))
>>> numpy.random.set_state(state)
>>> numpy.random.permutation(numpy.arange(10))
array([3, 9, 4, 8, 1, 6, 2, 0, 5, 7])
>>>

Is there any known workaround?
Thanks!


--

 Tiziano Zito
 Institute for Theoretical Biology
 Humboldt-Universitaet zu Berlin
 Invalidenstrasse, 43
 10115 Berlin, Germany

 Pietro Berkes
 Gatsby Computational Neuroscience Unit
 Alexandra House, 17 Queen Square
 London WC1N 3AR, United Kingdom



More information about the Numpy-discussion mailing list