This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Need Suggestion on SuperLU or Umfpack for Sparse Solver

Tags: None
(comma "," separated)
toycoming2u
Registered Member
Posts
11
Karma
0
OS
All,

Could anyone share experience on performance and ease of implementation into Eigen from using SuperLU and Umfpack module?

I am looking for a linear solver for a square sparse which will be hugh in dimension but may contains only 30%-50% of non-zero element.

I notice many sparse solver people using Umfpack. Is this mean SuperLU is inferior?

Best,
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
from my experience, SuperLU is often faster than UmfPack but it might exhibit some numerical issues due to static pivoting. Note that 30%-50% of non-zero is rather very dense, not sparse. Typical sparse matrices for non-distributed solvers go from 10k^2 to 1M^2 in sizes, with 6 to 100 non-zeros per column (or row).
toycoming2u
Registered Member
Posts
11
Karma
0
OS
ggael wrote:from my experience, SuperLU is often faster than UmfPack but it might exhibit some numerical issues due to static pivoting. Note that 30%-50% of non-zero is rather very dense, not sparse. Typical sparse matrices for non-distributed solvers go from 10k^2 to 1M^2 in sizes, with 6 to 100 non-zeros per column (or row).


Geal,

Thks for your sharing. Good to know the line between dense and sparse in order to gain performance benefit.

In the near future when my 2D numerical problem will have a lot more elements (more than 10k-by-10k with 5 - 6 non-zero per row). I started off with small problem to gain more familiarity with Eigen.

I have some few more questions:

1.) Did you Eigen team happen to revert back the contents in "Tutorial Page 9 - Sparse Matrix" yesterday? I accessed the link yesterday and noticed the it has changed to one older version.

2.) With messing with Eigen 3.1.0Alpha whole day, I still can't get either SuperLU or UmfPack working. I am using department facilities so I prefer to add all header files in my project folder instead of complier folder (I use #include "Eigen/,,,," instead of <Eigen/...>. Can anyone guide me how to do this and what additional library I need to download in order to allow me using sparse solver?

What I did is download SuperLU and SparseSuit. Look into what SuperLUSupport.h and UmfPackSupport.h call for. Then copy any headers required by SuperLUSupport.h and UmfPackSupport.h from downloaded SuperLU/SparseSuit into Eigen/src/SuperLUSupport or Eigen/src/UmfPackSupport. Is this a possible method to get this work?

Big Thanks...
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
You should rather configure your build system to add include paths. How to do this depends on your build system. If you directly call gcc, the option is -I/path/to/SuperLU/include/. You also have to link against libsuperlu and a blas library, e.g., you can compile the Eigen's one:

$ make blas


Bookmarks



Who is online

Registered users: Bing [Bot], Google [Bot], Yahoo [Bot]