Hello,
I have been testing the LOBPCG. On double precision, it works fine. On single precision, it seems quite sensitive.
I tried some examples from the matrix market :
https://math.nist.gov/MatrixMarket/data ... stm06.html
https://math.nist.gov/MatrixMarket/data ... stk01.html
https://math.nist.gov/MatrixMarket/data ... stk01.html
The command I tried was :
.\testing_ssolver.exe --solver LOBPCG --ev 1 --maxiter 10000 --rtol 1e-6 --verbose 1 --precond ILU /path/to/mtx
In doesn't converge. I tried a simple identity matrix with dimension five, and I played with the minimum value. The value lower than 1e-3 was already enough not to converge.
Is there any set of option that can improve this? I think I might be using it the wrong way.
Thanks in advance,
Eduardo.
LOBPCG single precision fails to converge for most problems
-
- Posts: 6
- Joined: Wed Aug 28, 2019 3:28 am
Re: LOBPCG single precision fails to converge for most problems
These problems have condition numbers >= 1e6, which mean they likely won't work well in single precision, which has a precision of only 1e-7. Roughly, single precision has 7 digits of accuracy, and a problem loses log10( cond ) digits of accuracy, in this case about 6, meaning there is at most 1 correct digit left. Whereas double precision has roughly 16 digits of accuracy, in this case leaving about 10 correct digits.
I'm not sure what you mean by "identity matrix with dimension five ... with the minimum value". What minimum value?
The identity matrix is just 1's on the diagonal and 0's elsewhere.
-mark
I'm not sure what you mean by "identity matrix with dimension five ... with the minimum value". What minimum value?
The identity matrix is just 1's on the diagonal and 0's elsewhere.
-mark
-
- Posts: 6
- Joined: Wed Aug 28, 2019 3:28 am
Re: LOBPCG single precision fails to converge for most problems
Hello,
thank you for the answer. Sorry, I was not quite specific. I tried this matrix:
%%MatrixMarket matrix coordinate real general
5 5 5
1 1 1.000e+00
2 2 1.000e+00
3 3 1.000e+00
4 4 1.000e+00
5 5 1.000e-3
It is a identity matrix which the component A(5,5) was changed to control the conditioning number. If A(5,5) is lower 1e-2, it doesn't converge.
thank you for the answer. Sorry, I was not quite specific. I tried this matrix:
%%MatrixMarket matrix coordinate real general
5 5 5
1 1 1.000e+00
2 2 1.000e+00
3 3 1.000e+00
4 4 1.000e+00
5 5 1.000e-3
It is a identity matrix which the component A(5,5) was changed to control the conditioning number. If A(5,5) is lower 1e-2, it doesn't converge.