[posted on behalf of frank808]
I am writing this email to look for you kind help about implementing ILU+PGMRES modules from MAGMA to solve sparse matrix.
Because of the zero entries on the diagonal position of matrix, ILU preconditioner crashed in executing dcumilu.cpp and returned MAGMA_ERR_CUSPARSE_ZERO_PIVOT. Is there a way that I can avoid this problem in MAGMA, for example, option to do partial pivoting automatically, or replaced zeros on the diagonal of the upper triangular factor with the local drop tolerance, or other options available?
Meanwhile, I found there is another ILU kernel in the source code (diterilu_kernels.cu), but it seems not being integrated into the testing example of solver. Is this ILU working? Or, can I use it to solve my problem?
Any help or suggestions would be greatly appreciated!
Best Regards,
Li
Sparse Solver Preconditioner
Re: Sparse Solver Preconditioner
Briefly, the problem is how to do incompleteLU factorization with partial pivoting...
mgates3 wrote:[posted on behalf of frank808]
I am writing this email to look for you kind help about implementing ILU+PGMRES modules from MAGMA to solve sparse matrix.
Because of the zero entries on the diagonal position of matrix, ILU preconditioner crashed in executing dcumilu.cpp and returned MAGMA_ERR_CUSPARSE_ZERO_PIVOT. Is there a way that I can avoid this problem in MAGMA, for example, option to do partial pivoting automatically, or replaced zeros on the diagonal of the upper triangular factor with the local drop tolerance, or other options available?
Meanwhile, I found there is another ILU kernel in the source code (diterilu_kernels.cu), but it seems not being integrated into the testing example of solver. Is this ILU working? Or, can I use it to solve my problem?
Any help or suggestions would be greatly appreciated!
Regards,

 Posts: 90
 Joined: Tue Sep 02, 2014 5:44 pm
Re: Sparse Solver Preconditioner
Dear Li,
indeed, it might happen that the cusparse ILU crashes in case of a zero diagonal entry. The implementation of the iterative ILU is according to the paper
http://www.cc.gatech.edu/~echow/pubs/isc2015.pdf
It might also fail due to a zero diagonal, but you may give it a try by passing the argument ''precond AILU'', respectively coding ''precond.solver = Magma_AILU;''
If you can provide me with the linear system, I can also take a look.
Regards, Hartwig
indeed, it might happen that the cusparse ILU crashes in case of a zero diagonal entry. The implementation of the iterative ILU is according to the paper
http://www.cc.gatech.edu/~echow/pubs/isc2015.pdf
It might also fail due to a zero diagonal, but you may give it a try by passing the argument ''precond AILU'', respectively coding ''precond.solver = Magma_AILU;''
If you can provide me with the linear system, I can also take a look.
Regards, Hartwig