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

Is Eigen working with SuperLU5.0

Tags: None
(comma "," separated)
cglwdm
Registered Member
Posts
18
Karma
0

Is Eigen working with SuperLU5.0

Mon Aug 10, 2015 1:28 pm
Hi, everyone

Eigen is totally working with SuperLU4.3, but I have a problem using Eigen with SuperLU5.0.

Am I compiling SuperLU5.0 wrong, all Eigen cannot support SuperLU5.0 now?
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
Right. It seems that they changed the api of some functions. Anyway, in most cases built-in SparseLU class performs better than superlu and without the pain of building and linking to an external lib.
cglwdm
Registered Member
Posts
18
Karma
0
ggael wrote:Right. It seems that they changed the api of some functions. Anyway, in most cases built-in SparseLU class performs better than superlu and without the pain of building and linking to an external lib.



I have a test using P3-P2 element solving Stokes equations, below:
Code: Select all
   2   4   8   16   32   64   128
SparseLU   0.00079    0.00380    0.02082    0.17657    2.13465    19.87958    369.3392156
SuperLU   0.00073    0.00242    0.01467    0.12909    1.65339    17.85144    355.9399051
UMFPACKLU   0.00068    0.00355    0.01387    0.09780    0.95672    7.05281    81.98844582




The SuperLU is version 4.3 with openblas.
The UMFPACKLU is in the SuiteSparse 4.4.4 with LAPACK and BLAS.

In this case, the UMFPACKLU perform much better than other two cases and the SparseLU is a little slower than SuperLU.
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
Make sure you are using Eigen 3.2.5 (there was a perf regression in SparseLU in the previous version http://eigen.tuxfamily.org/index.php?ti ... igen_3.2.5)

UmfPack uses a different LU algorithm that is indeed significantly faster for some kind of problems, however, for this kind of problems, iterative solvers like BiCGSTAB are usually much faster than direct methods anyway.
cglwdm
Registered Member
Posts
18
Karma
0

Re: Is Eigen working with SuperLU5.0

Wed Aug 12, 2015 12:48 am
ggael wrote:Make sure you are using Eigen 3.2.5 (there was a perf regression in SparseLU in the previous version http://eigen.tuxfamily.org/index.php?ti ... igen_3.2.5)

UmfPack uses a different LU algorithm that is indeed significantly faster for some kind of problems, however, for this kind of problems, iterative solvers like BiCGSTAB are usually much faster than direct methods anyway.


I'm using the latest Dev branch, and don't know why the BiCGSTAB perform much worse than direct methods in my codes. Are there some settings to be taken care of?
The settings of BiCGSTAB are default.

Code: Select all
   2   4   8   16   32   64   128
SparseLU   0.00079    0.00380    0.02082    0.17657    2.13465    19.87958    369.3392156
SuperLU   0.00073    0.00242    0.01467    0.12909    1.65339    17.85144    355.9399051
UMFPACKLU   0.00068    0.00355    0.01387    0.09780    0.95672    7.05281    81.98844582
BiCG   0.00230    0.02316    0.21557    1.31317    23.83573    530.66718    N/A

User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
For very sparse problems iterative methods are indeed slower. You might also try BiCGSTAB with the IncompleteLUT<> preconditioners....


Bookmarks



Who is online

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