On Tue, May 19, 2009 at 11:02 AM,  <span dir="ltr">&lt;<a href="mailto:tribur@vision.ee.ethz.ch">tribur@vision.ee.ethz.ch</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Distinguished PETSc experts,<br>
<br>
Assuming processor k has defined N entries of a parallel matrix using MatSetValues. The half of the entries are in matrix rows belonging to this processor, but the other half are situated in rows of other processors.<br>

<br>
My question:<br>
<br>
When does MatAssemblyBegin+MatAssemblyEnd take longer, if the rows where the second half of the entries are situated belong all to one single other processor, e.g. processor k+1, or if these rows are distributed across several, let&#39;s say 4, other processors? Is there a significant difference?</blockquote>
<div><br>Since we aggregate the rows and send a single message per proc, this is probably dominated by bandwidth, not latency. It takes the<br>same bandwidth to send the messages, but if only one guys is sending, it is probably better to split the message. If everyone is doing<br>
the same thing, it will not matter at all. Generally, optimizing these things is WAY down the list of important things for runtime.<br><br>  Matt<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Thanks in advance for your answer,<br>
Trini<br></blockquote></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>