Page 1 of 1

LOBPCG single precision fails to converge for most problems

Posted: Fri Sep 20, 2019 10:24 am
by eduardotsimoes
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.

Re: LOBPCG single precision fails to converge for most problems

Posted: Fri Sep 20, 2019 12:57 pm
by mgates3
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

Re: LOBPCG single precision fails to converge for most problems

Posted: Mon Sep 23, 2019 2:41 am
by eduardotsimoes
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.