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 1e6 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 1e3 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 1e7. 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.000e3
It is a identity matrix which the component A(5,5) was changed to control the conditioning number. If A(5,5) is lower 1e2, 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.000e3
It is a identity matrix which the component A(5,5) was changed to control the conditioning number. If A(5,5) is lower 1e2, it doesn't converge.