Re: Code with random module faster on the vm than the vm host...
On 9/11/2013 3:48 AM, Pascal Bit wrote: from random import random [...] Running on win7 python 2.7 32 bit it uses around 30 seconds avg. Running on xubuntu, 32 bit, on vmware on windows 7: 20 seconds! The code runs faster on vm, than the computer itself... The python version in this case is 1.5 times faster... I don't understand. What causes this? The random module uses os.urandom, which relies on OS implementations of randomness functionality: On a UNIX-like system this will query /dev/urandom, and on Windows it will use CryptGenRandom(). http://docs.python.org/2/library/os.html#miscellaneous-functions The linux implementation appears to be faster. -- https://mail.python.org/mailman/listinfo/python-list
Re: Code with random module faster on the vm than the vm host...
On 2013-11-11 00:49, alex23 wrote: On 9/11/2013 3:48 AM, Pascal Bit wrote: from random import random [...] Running on win7 python 2.7 32 bit it uses around 30 seconds avg. Running on xubuntu, 32 bit, on vmware on windows 7: 20 seconds! The code runs faster on vm, than the computer itself... The python version in this case is 1.5 times faster... I don't understand. What causes this? The random module uses os.urandom, No, it doesn't. random.random() is an alias to the random() method on the random.Random class, which uses the Mersenne Twister to generate values. os.urandom() gets called in the initial default seeding, but not for each value. -- Robert Kern I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth. -- Umberto Eco -- https://mail.python.org/mailman/listinfo/python-list
Re: Code with random module faster on the vm than the vm host...
On Friday, November 8, 2013 12:48:04 PM UTC-5, Pascal Bit wrote: Here's the code: from random import random from time import clock s = clock() for i in (1, 2, 3, 6, 8): M = 0 N = 10**i for n in xrange(N): r = random() if 0.5 r 0.6: M += 1 k = (N, float(M)/N) print (clock()-s) Running on win7 python 2.7 32 bit it uses around 30 seconds avg. Running on xubuntu, 32 bit, on vmware on windows 7: 20 seconds! The code runs faster on vm, than the computer itself... The python version in this case is 1.5 times faster... I don't understand. What causes this? The docs for time.clock() make clear that the meaning on Windows and Unix are different: On Unix, return the current processor time as a floating point number expressed in seconds. On Windows, this function returns wall-clock seconds elapsed since the first call to this function... Try the experiment again with time.time() instead. --Ned. -- https://mail.python.org/mailman/listinfo/python-list
Re: Code with random module faster on the vm than the vm host...
On 11/11/2013 01:15, Ned Batchelder wrote: On Friday, November 8, 2013 12:48:04 PM UTC-5, Pascal Bit wrote: Here's the code: from random import random from time import clock s = clock() for i in (1, 2, 3, 6, 8): M = 0 N = 10**i for n in xrange(N): r = random() if 0.5 r 0.6: M += 1 k = (N, float(M)/N) print (clock()-s) Running on win7 python 2.7 32 bit it uses around 30 seconds avg. Running on xubuntu, 32 bit, on vmware on windows 7: 20 seconds! The code runs faster on vm, than the computer itself... The python version in this case is 1.5 times faster... I don't understand. What causes this? The docs for time.clock() make clear that the meaning on Windows and Unix are different: On Unix, return the current processor time as a floating point number expressed in seconds. On Windows, this function returns wall-clock seconds elapsed since the first call to this function... Try the experiment again with time.time() instead. --Ned. http://www.python.org/dev/peps/pep-0418/ for some related reading about Python time functions. -- Python is the second best programming language in the world. But the best has yet to be invented. Christian Tismer Mark Lawrence -- https://mail.python.org/mailman/listinfo/python-list
Re: Code with random module faster on the vm than the vm host...
On 11/11/2013 11:19 AM, Robert Kern wrote: On 2013-11-11 00:49, alex23 wrote: The random module uses os.urandom, No, it doesn't. random.random() is an alias to the random() method on the random.Random class, which uses the Mersenne Twister to generate values. os.urandom() gets called in the initial default seeding, but not for each value. That's what I get for rapidly skimming the module rather than looking at it carefully. Cheers. -- https://mail.python.org/mailman/listinfo/python-list
Code with random module faster on the vm than the vm host...
Here's the code: from random import random from time import clock s = clock() for i in (1, 2, 3, 6, 8): M = 0 N = 10**i for n in xrange(N): r = random() if 0.5 r 0.6: M += 1 k = (N, float(M)/N) print (clock()-s) Running on win7 python 2.7 32 bit it uses around 30 seconds avg. Running on xubuntu, 32 bit, on vmware on windows 7: 20 seconds! The code runs faster on vm, than the computer itself... The python version in this case is 1.5 times faster... I don't understand. What causes this? -- https://mail.python.org/mailman/listinfo/python-list