On Mon, Aug 29, 2011 at 8:51 PM, Likun Tan <span dir="ltr">&lt;<a href="mailto:likunt@andrew.cmu.edu">likunt@andrew.cmu.edu</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Instead of solving Ax=b with different right-hand-side sequentially, we<br>
can also form a sparse block diagonal matrix A and a vector b composed of<br>
all the elements. Then we can set values to each section of b concurrently<br>
and solve the enlarged system in parallel, is this an efficient way?<br>
<br>
And also, I found MatCreateMPIBDiag() is used to define a sparse block<br>
diagonal matrix, in my case, each block has the same format and elements,<br>
how could i set values efficiently?<br></blockquote><div><br></div><div>There is no reason to introduce synchronization across these problems. Just</div><div>split the communicator, put a KSP in each subcommunicator, and solve.</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;">
Thanks,<br>
Likun<br>
<br>
<br>
On Mon, August 29, 2011 11:14 am, Jed Brown wrote:<br>
&gt; On Mon, Aug 29, 2011 at 10:08, Matthew Knepley &lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;&gt; As I said, no one knows<br>
&gt;&gt; how to do this for Krylov methods (and everyone has tried).<br>
&gt;&gt;<br>
&gt;<br>
&gt; There are methods and even simply running multiple independent Krylov<br>
&gt; solves concurrently would be good for memory traffic (matrix entries get<br>
&gt; reused for multiple vectors). The problem with block Krylov methods (that<br>
&gt; try to share information between multiple simultaneous solves) is loss of<br>
&gt; orthogonality between the subspaces generated by each vector. And it&#39;s not<br>
&gt; so much that there are no ways to detect and account for this, but<br>
&gt; robustness is still a problem and making efficient software for it is more<br>
&gt; tricky and AFAIK, has not been done.<br>
&gt;<br>
<br>
<br>
<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>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<br>