I've been doing some benchmarking of Julia vs Scipy for sparse matrix
multiplication and I'm finding that julia is significantly (~4X - 5X)
faster in some instances.
I'm wondering if I'm doing something wrong, or if this is really true.
Below are some code snippets for Julia and python. Any help would be very
appreciated!
----- Julia:
Elapsed Time on my laptop: 24.9 seconds -----
x_inds = Int[]
y_inds = Int[]
vals = Int[]
for n = 1:10000
inds = rand(1:2000,10,1)
for ind in inds
push!(x_inds, ind)
push!(y_inds, n)
push!(vals,1)
end
end
x = sparse(x_inds, y_inds, vals, 2000, 10000)
t = time()
for j = 1:250
y = x*transpose(x)
end
print(string(time() - t, "\n"))
-----
---- Python Elapsed Time on my laptop: 5.8 seconds -----
import numpy
import scipy.sparse
import time
x_inds = []
y_inds = []
vals = []
for n in xrange(10000):
inds = numpy.random.randint(0, 2000,10)
for ind in inds:
x_inds.append(ind)
y_inds.append(n)
vals.append(1)
x_inds = numpy.array(x_inds)
y_inds = numpy.array(y_inds)
vals = numpy.array(vals)
x = scipy.sparse.csc_matrix((vals, (x_inds, y_inds)), shape=(2000, 10000))
t = time.time()
for j in xrange(250):
y = x*x.transpose()
print time.time() - t