On Tue, Sep 29, 2009 at 5:32 PM, Matt Funk <span dir="ltr">&lt;<a href="mailto:mafunk@nmsu.edu">mafunk@nmsu.edu</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;">
<div style="font-family: &#39;Arial&#39;; font-size: 12pt; font-weight: 400; font-style: normal;">Hi,<br>
<p style="margin: 0px; text-indent: 0px;"><br></p>i have another question regarding how petsc uses memory w.r.t caching in MatSetValues .<br>
<p style="margin: 0px; text-indent: 0px;"><br></p>My code does the standard stuff:<br>
1) i preallocate the memory<br>
2) i insert the values via MatSetValues<br>
3)i assemble it.<br>
<p style="margin: 0px; text-indent: 0px;"><br></p>Say, for example i declare a 100x100 matrix with 10 NZ entries per row.<br>
After 1), will the memory used for the matrix be 100^2*10*sizeof(double)?<br>
</div></blockquote><div><br>100*10<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div style="font-family: &#39;Arial&#39;; font-size: 12pt; font-weight: 400; font-style: normal;">
After 2), will the memory used be 100^2*10*sizeof(double) from the prealloc PLUS 100^2*10*sizeof(double) form the caching of values<br>
</div></blockquote><div><br>Not sure what caching you mean. No extra memory will be needed. Do you mean storing values<br>set for off-process rows? We refer to that as &quot;stashing&quot;. You can clear the stash by calling<br>
MatAssemblyEnd() with ASSEMBLY_FLUSH.<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;"><div style="font-family: &#39;Arial&#39;; font-size: 12pt; font-weight: 400; font-style: normal;">
After 3), will the memory then be reduced back to 100^2*10*sizeof(double)?<br>
<p style="margin: 0px; text-indent: 0px;"><br></p>My concern is step 2). If it is using memory for prealloc and seperately for caching, then is there a way to flush the cached values to the preallocated slots? I tried finding stuff in the manual pages but i am not quite sure if i can or not.<br>

<p style="margin: 0px; text-indent: 0px;"><br></p><p style="margin: 0px; text-indent: 0px;"><br></p>thanks<br><font color="#888888">
matt</font></div></blockquote></div><br><br clear="all"><br>-- <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>