## LOBPCG single precision fails to converge for most problems

Open discussion for MAGMA library (Matrix Algebra on GPU and Multicore Architectures)
eduardotsimoes
Posts: 6
Joined: Wed Aug 28, 2019 3:28 am

### LOBPCG single precision fails to converge for most problems

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.

Eduardo.

mgates3
Posts: 902
Joined: Fri Jan 06, 2012 2:13 pm

### 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

eduardotsimoes
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.