<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Oct 2, 2017 at 10:11 PM, Florian Lindner <span dir="ltr"><<a href="mailto:mailinglists@xgm.de" target="_blank">mailinglists@xgm.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
Am 02.10.2017 um 21:04 schrieb Matthew Knepley:<br>
> On Mon, Oct 2, 2017 at 6:21 AM, Florian Lindner <<a href="mailto:mailinglists@xgm.de">mailinglists@xgm.de</a> <mailto:<a href="mailto:mailinglists@xgm.de">mailinglists@xgm.de</a>>> wrote:<br>
><br>
> Hello,<br>
><br>
> I have a matrix and vector that live on 4 ranks, but only rank 2 and 3 have values:<br>
><br>
> Doing a simple LSQR solve does not converge. However, when the values are distributed equally, it converges within 3<br>
> iterations.<br>
><br>
> What can I do about that?<br>
><br>
> I have attached a simple program and creates the matrix and vector or loads them from a file.<br>
><br>
><br>
> There are a few problems with this program. I am attaching a cleaned up version. However, convergence still differs starting<br>
> at iteration 2. It appears that LSQR has a problem with this system, or we have a bug that I cannot see.<br>
<br>
Thanks for having a look at it!<br>
<br>
And good to hear it's not by design. If I can be of any more help tracking this down, pleae let me know.<br>
<br>
In the meantime, what could be a good way to work around this? This is admittedly a very malformed example. Is there a<br>
way to force solving on a single CPU and then distribute the results resp. KSP object to the original parallel layout?<br>
Of course, we would first try to solve in parallel, but we have little influence about the actual parallel layout, since<br>
we are just a library and other solvers give us the data.<br></blockquote><div><br></div><div>I need to be more clear. I do not think convergence has anything to do with being on 1 process. I think this is an ill-conditioned</div><div>example and convergence is an accident in one case. Unless you see this in a bunch of cases, I would not worry about gathering</div><div>to a single process. However, that can be done using PCREDUNDANT if this is really a problem.</div><div><br></div><div> Thanks,</div><div><br></div><div> Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Best,<br>
Florian<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>