New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SuperLU is too slow #3831
Comments
This is due to It probably does not actually hang, but the SuperLU performance for this problem is too slow to be practical. Probable culprit is column ordering algorithm, as |
Got it. I didn't realize umfpack support is gone since |
I am not sure why SuperLU is too slow in your case. On my machine:
The timings for the various re-orderings, averaged over five runs, are as follows:
The last case uses the RCM ordering from #3751. So it seems that the default 'COLAMD' ordering is the fastest. RCM would be the fastest, but the timing includes the amount of time it takes to find the correct permutation. These results are not so surprising as COLAMD is a fill-in minimizing reordering and the solution time scales with the amount of fill-in (NNZ) in the LU factors. |
I take my last post back, I forgot that I had scikits.umfpack installed and it is called by default if present. Indeed switching to SuperLU one finds that the solution takes much much longer to find. Update: The only solution I could get to finish is the MMD_AT_PLUS_A method that was ~220 times slower than the same ordering using umfpack. |
Ok, it seems then that the issue in Superlu is not only in the column ordering. |
@rc are you still planning to look at scikits.umfpack? |
Yes, but not before beginning of October. I have several deadlines to meet by the end of September. |
I'm not sure what were the plans mentioned here, but I just thought I'd bump/ping this old discussion... |
Probably the plan is to give sufficient amount of polish to https://github.com/rc/scikit-umfpack Alternatively, there might be other license-compatible and more efficient sparse lu codes out there, but this doesn't seem super likely... |
FYI: The umfpack scikit is living: https://scikits.appspot.com/scikit-umfpack |
Recently, the Anaconda Python distro and Intel distro make use of the Intel MKL by default. It is possible to use ctypes to access the MKL sparse solver. In our work, we see timings many times faster than SuperLU, even when doing single-thread comparisons. |
Yes, and as noted above, UMFPACK is also faster and moreover free software and has existing bindings. |
Apparently, there are multiple free and non-free alternatives, all external. There's not much to do within scipy, so closing. |
I have noticed that spsolve hangs during solve. Here are my system setting:
OS: mac 10.9.4
Python version: 2.7.6
Scipy version: 0.14.0
I have created a simple test script to illustrate the bug:
https://dl.dropboxusercontent.com/u/29899857/scipy_test.zip
With scipy 0.13, the script finishes within seconds:
However, with scipy 0.14, it hangs after printing "Before solve". I have tried other matrices as well, besides the simple matrices (diagonal matrix), scipy hangs every time.
I have also observed this problem on Linux systems.
The text was updated successfully, but these errors were encountered: