<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks everyone, QR makes the most sense for my application. <br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Jose, <br>
Once I get R from BVOrthogonalize, how I should I solve the upper triangular system?<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Is the returned Mat R setup to be used in MatBackwardSolve?<br>
<br>
Pierre, <br>
I can reuse A for many iterations, but I cannot do a matmatsolve as I need the resulting solution to produce the next right hand side vector.<br>
<br>
Thanks again,<br>
Lucas<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Jose E. Roman <jroman@dsic.upv.es><br>
<b>Sent:</b> Tuesday, March 1, 2022 4:49 AM<br>
<b>To:</b> Pierre Jolivet <pierre@joliv.et><br>
<b>Cc:</b> Lucas Banting <bantingl@myumanitoba.ca>; petsc-users@mcs.anl.gov <petsc-users@mcs.anl.gov><br>
<b>Subject:</b> Re: [petsc-users] Preconditioner for LSQR</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Caution: This message was sent from outside the University of Manitoba.<br>
<br>
<br>
To use SLEPc's TSQR one would do something like this:<br>
<br>
  ierr = BVCreateFromMat(A,&X);CHKERRQ(ierr);<br>
  ierr = BVSetFromOptions(X);CHKERRQ(ierr);<br>
  ierr = BVSetOrthogonalization(X,BV_ORTHOG_CGS,BV_ORTHOG_REFINE_IFNEEDED,PETSC_DEFAULT,BV_ORTHOG_BLOCK_TSQR);CHKERRQ(ierr);<br>
  ierr = BVOrthogonalize(X,R);CHKERRQ(ierr);<br>
<br>
But then one would have to use BVDotVec() to obtain Q'*b and finally solve a triangular system with R.<br>
Jose<br>
<br>
> El 1 mar 2022, a las 8:36, Pierre Jolivet <pierre@joliv.et> escribió:<br>
><br>
> Hello Lucas,<br>
> In your sequence of systems, is A changing?<br>
> Are all right-hand sides available from the get-go?<br>
> In that case, you can solve everything in a block fashion and that’s how you could get real improvements.<br>
> 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.<br>
><br>
> Thanks,<br>
> Pierre<br>
><br>
>> On 1 Mar 2022, at 12:54 AM, Lucas Banting <bantingl@myumanitoba.ca> wrote:<br>
>><br>
>> Hello,<br>
>><br>
>> 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.<br>
>> 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.<br>
>><br>
>> Would it make the most sense to use PCCHOLESKY on the smaller system A^T * A?<br>
>><br>
>> Thanks,<br>
>> Lucas<br>
><br>
<br>
</div>
</span></font></div>
</body>
</html>