[Numpy-discussion] numpy vs numeric benchmarks
Eric Jonas
jonas at mwl.mit.edu
Fri Jun 2 07:58:50 CDT 2006
Hello! I've been using numeric for a while, and the recent list traffic
prompted me to finally migrate all my old code. On a whim, we were
benchmarking numpy vs numeric and have been lead to the conclusion that
numpy is at least 50x slower; a 1000x1000 matmul takes 16 sec in numpy
but 300 ms in numeric.
Now, of course, I don't believe this, but I can't figure out what we're
doing wrong; I'm not the only person who has looked at this code, so can
anyone tell me what we're doing wrong?
We run both benchmarks twice to try and mitigate any start-up and cache
effects. This is with debian-amd64's packaged numeric 24.2-2 and a
locally built numpy-0.9.8.
/usr/bin/python
import time
import numpy
import random
import Numeric
def numpytest():
N = 1000
x = numpy.zeros((N,N),'f')
y = numpy.zeros((N,N),'f')
for i in range(N):
for j in range(N):
x[i, j] = random.random()
y[i, j] = random.random()
t1 = time.clock()
z = numpy.matrixmultiply(x, y)
t2 = time.clock()
print (((t2 - t1)*1000))
def numerictest():
N = 1000
x = Numeric.zeros((N,N),'f')
y = Numeric.zeros((N,N),'f')
for i in range(N):
for j in range(N):
x[i, j] = random.random()
y[i, j] = random.random()
t1 = time.clock()
z = Numeric.matrixmultiply(x, y)
t2 = time.clock()
print (((t2 - t1)*1000))
numerictest()
numpytest()
numpytest()
numerictest()
on our hardware a call to numerictest() takes 340 ms and a numpytest
takes around 13 sec (!).
Any advice on what we're doing wrong would be very helpful.
...Eric
More information about the Numpy-discussion
mailing list