[petsc-users] Preconditioner for LSQR
Jose E. Roman
jroman at dsic.upv.es
Tue Mar 1 04:49:08 CST 2022
To use SLEPc's TSQR one would do something like this:
ierr = BVCreateFromMat(A,&X);CHKERRQ(ierr);
ierr = BVSetFromOptions(X);CHKERRQ(ierr);
ierr = BVSetOrthogonalization(X,BV_ORTHOG_CGS,BV_ORTHOG_REFINE_IFNEEDED,PETSC_DEFAULT,BV_ORTHOG_BLOCK_TSQR);CHKERRQ(ierr);
ierr = BVOrthogonalize(X,R);CHKERRQ(ierr);
But then one would have to use BVDotVec() to obtain Q'*b and finally solve a triangular system with R.
Jose
> El 1 mar 2022, a las 8:36, Pierre Jolivet <pierre at joliv.et> escribió:
>
> Hello Lucas,
> In your sequence of systems, is A changing?
> Are all right-hand sides available from the get-go?
> In that case, you can solve everything in a block fashion and that’s how you could get real improvements.
> Also, instead of PCCHOLESKY on A^T * A + KSPCG, you could use PCQR on A + KSPPREONLY, but this may not be needed, cf. Jed’s answer.
>
> Thanks,
> Pierre
>
>> On 1 Mar 2022, at 12:54 AM, Lucas Banting <bantingl at myumanitoba.ca> wrote:
>>
>> Hello,
>>
>> I have an MPIDENSE matrix of size about 200,000 x 200, using KSPLSQR on my machine a solution takes about 15 s. I typically run with six to eight processors.
>> I have to solve the system several times, typically 4-30, and was looking for recommendations on reusable preconditioners to use with KSPLSQR to increase speed.
>>
>> Would it make the most sense to use PCCHOLESKY on the smaller system A^T * A?
>>
>> Thanks,
>> Lucas
>
More information about the petsc-users
mailing list