<div dir="ltr">On Mon, May 6, 2013 at 4:00 PM, Shaohao Chen <span dir="ltr"><<a href="mailto:shchen@www.phys.lsu.edu" target="_blank">shchen@www.phys.lsu.edu</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear managers and users,<br>
<br>
I got a problem when using PETSc to make parallel codes. Could you please help me out?<br>
<br>
Basically, I need to do is to update the values of some blocks of a large matrix (not the whole matrix),<br>
and I need to do it many times in a big loop. These blocks could be assembled to the same or<br>
different processors. If using "MatSetValues", it would spend much time for the data transfer between<br></blockquote><div><br></div><div style>Are you guessing, or have you measured this?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

different processors. I expect "MatSubMatrixUpdate" could do the job better. Am I correct? But I can<br></blockquote><div><br></div><div style>Almost certainly not. It cannot do less communication than MatSetValues(), its just easier sometimes.</div>
<div style><br></div><div style>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
not find an example of using "MatSubMatrixUpdate" on the website. It is said that the<br>
"MatSubMatrixUpdate" is only in a "developer" level and the users should use some other functions to<br>
replace it. What other functions should I use?<br>
<br>
Thank you for your attention!<br>
<br>
--<br>
Shaohao Chen<br>
Department of Physics & Astronomy,<br>
Louisiana State University,<br>
Baton Rouge, LA<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
</div></div>