<div class="gmail_quote">On Mon, Nov 21, 2011 at 23:46, Andrej Mesaros <span dir="ltr"><<a href="mailto:andrej.mesaros@bc.edu">andrej.mesaros@bc.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div id=":1ua">My code has a function which, when given a fixed matrix row index, calculates one by one values of all non-zero matrix elements in this row, while also returning the column index of each of these elements. So, all I need to do is put that the 1st process has a loop for row index going from 1 to 60k, the 2nd process has the loop going from 60k+1 to 120k, etc. Inside the loops, the row index is given, so it finds the non-zero elements and their column indices.</div>
</blockquote><div><br></div><div>That is fine, but the error circumnstance indicated that a huge number of entries were being computed by a different process. It is possible that memory was corrupted earlier. You can try smaller problems with valgrind or -malloc_debug -malloc_dump, but if these don't work, it could be difficult to track down.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div id=":1ua"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
To clarify, is "n" the matrix dimension? So that's memory for 100 vectors (the Krylov space) plus the memory already taken by PETSc when assembly is done?</blockquote></div></div></blockquote></div><br><div>
Yeah, roughly that used by PETSc plus those additional vectors needed by SLEPc.</div>