Hi, really nice to have a sparse cholesky solver which is compatible with windows out of the box!
Can you please verify I'm doing everything correctly? I have a lot longer runtime compared to scikit-sparse ~ factor 15.
I am not using any TPU / GPU, just plane CPU and numpy / scipy.
I use a lower triangle sparse matrix K_iso in CSC format (I also tested COO, same results) and a sparse load vector f_csc
K_iso
<39624x39624 sparse array of type '<class 'numpy.float64'>'
with 848667 stored elements in Compressed Sparse Column format>
f_csc
<39624x1 sparse array of type '<class 'numpy.float64'>'
with 3033 stored elements in Compressed Sparse Column format>
scikit-sparse run takes 0.82 s
from timeit import default_timer
from sksparse.cholmod import cholesky
start_time = default_timer()
factor = cholesky(K_iso)
u_iso = factor.solve_A(f_csc)
print(f"Done ({default_timer() - start_time:.2f} s)")
# Done (0.82 s)
cholespy run (double precision) takes 13.19 s - of which CholeskySolverD takes allmost time (13.18 s)
from timeit import default_timer
from cholespy import CholeskySolverD, MatrixType
x = np.empty(K_iso.shape[0])
f = f_csc.todense().squeeze()
start_time = default_timer()
solver = CholeskySolverD(K_iso.shape[0], K_iso.indptr, K_iso.indices, K_iso.data, MatrixType.CSC)
solver.solve(f, x)
print(f"Done ({default_timer() - start_time:.2f} s)")
# Done (13.19 s)
The result is exactly the same
np.allclose(x, u_iso.todense().squeeze())
# True
Hi, really nice to have a sparse cholesky solver which is compatible with windows out of the box!
Can you please verify I'm doing everything correctly? I have a lot longer runtime compared to scikit-sparse ~ factor 15.
I am not using any TPU / GPU, just plane CPU and numpy / scipy.
I use a lower triangle sparse matrix
K_isoin CSC format (I also tested COO, same results) and a sparse load vectorf_cscscikit-sparse run takes
0.82 scholespy run (double precision) takes
13.19 s- of whichCholeskySolverDtakes allmost time (13.18 s)The result is exactly the same