Re-ran using Scipy's sparse matrix solver.
Average run time: 0.085s
Standard deviation: 0.005s
Code:
import sys
import numpy
import time
import scipy
import scipy.sparse
import scipy.sparse.linalg
import psutil
n_runs = 1000
print ""
print ""
print "Python version %s" % (sys.version)
print "Numpy version %s" % (numpy.__version__)
print "Scipy version %s" % (scipy.__version__)
print "Psutil version %s" % (psutil.__version__)
print ""
N = numpy.loadtxt(open('N.dat'))
d = numpy.loadtxt(open('d.dat'))
Ns = scipy.sparse.csr_matrix(N)
data = []
for i in range(1,n_runs+1):
start = time.time()
x = scipy.sparse.linalg.spsolve(Ns,d)
end = time.time()
row = [end - start]
row.extend(psutil.cpu_percent(interval=1,percpu=True))
s = "\t".join([str(item) for item in row])
data.append(s)
f = open('times2.dat','w')
f.write("\n".join(data))
f.close()
_x = scipy.sparse.linalg.spsolve(Ns,d)
print ", ".join([str(f) for f in _x])
print ""