<div dir="ltr">Please always use "reply-all" so that your messages go to the list.<br>
This is standard mailing list etiquette.  It is important to preserve<br>
threading for people who find this discussion later and so that we do<br>
not waste our time re-answering the same questions that have already<br>
been answered in private side-conversations.  You'll likely get an<br><div>
answer faster that way too.</div><div><br></div><div><br></div><br><div class="gmail_extra"><br><div class="gmail_quote">On 6 August 2018 at 17:17, Moritz Cygorek <span dir="ltr"><<a href="mailto:mcygorek@uottawa.ca" target="_blank">mcygorek@uottawa.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div>

<div id="m_5229467629642641963divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif">
<p>Hi,</p>
<p><br>
</p>
<p>I have found that the memory corruption takes place at the end of the first iteration or the beginning of the second iteration, i.e., at a time where I expect the harmonic extraction part to do some calculations.
<br></p></div></div></blockquote><div><br></div><div>Where is the report from valgrind indicating the exact file/function/line where the problem occurred?<br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div id="m_5229467629642641963divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif"><p>
</p>
<p>
</p>
<p>
</p>
<p>I've then played around with the command line options and I found that harmonic extraction works when -eps_ncv is set to smaller values.</p><p>
</p>
<p>I have the feeling that the memory needs to sustain this number of vectors and the eigenvectors for all processes individually. If I run multiple processes on a single computer, much more memory is required for storage than when I only use a single process,
 eventually allocating all of the available memory<br>
</p>
<p><br>
</p>
<p>Do you know if this behavior of the harmonic extraction routine intended/necessary?
<br>
</p>
<p><br>
</p>
<p>Regards,<br>
Moritz<br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
</div>
<hr style="display:inline-block;width:98%">
<div id="m_5229467629642641963divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>From:</b> Dave May <<a href="mailto:dave.mayhem23@gmail.com" target="_blank">dave.mayhem23@gmail.com</a>><br>
<b>Sent:</b> Friday, August 3, 2018 12:59:54 AM<br>
<b>To:</b> Moritz Cygorek<br>
<b>Cc:</b> <a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a><br>
<b>Subject:</b> Re: [petsc-users] memory corruption when using harmonic extraction with SLEPc</font>
<div> </div>
</div><div><div class="h5">
<div>
<div>
<div>
<div class="gmail_quote">
<div dir="ltr">On Thu, 2 Aug 2018 at 21:32, Moritz Cygorek <<a href="mailto:mcygorek@uottawa.ca" target="_blank">mcygorek@uottawa.ca</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div id="m_5229467629642641963m_7080143599383414480m_7083151968027740131divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif">
<p>Hi, <br>
</p>
<p><br>
</p>
<p>I want to diagonalize a huge sparse matrix and I'm using the Kryov-Schur method with harmonic extraction (command line option -eps_harmonic ) implemented in SLEPc.
<br>
</p>
<p><br>
</p>
<p>I manually distribute a sparse matrix across several CPUs and everything works fine when:</p>
<p>- I do _not_ use harmonic extraction<br>
</p>
<p>- I use harmonic extraction on only a single CPU <br>
</p>
<p><br>
</p>
<p>If I try do use harmonic extraction on multiple CPUs, I get a memory corruption.</p>
<p>I'm not quite sure where to look at, but somewhere in the output, I find:</p>
<p><br>
</p>
<p><br>
</p>
<p></p>
<div>[1]PETSC ERROR: PetscMallocValidate: error detected at PetscSignalHandlerDefault() line 145 in /home/applications/sources/<wbr>libraries/petsc-3.9.3/src/sys/<wbr>error/signal.c<br>
[1]PETSC ERROR: Memory [id=0(9072)] at address 0x145bcd0 is corrupted (probably write past end of array)<br>
[1]PETSC ERROR: Memory originally allocated in DSAllocateWork_Private() line 74 in /home/applications/sources/<wbr>libraries/slepc-3.9.2/src/sys/<wbr>classes/ds/interface/dspriv.c<br>
<br>
</div>
<p></p>
<p><br>
</p>
<p>Now, I have the feeling that this might be a bug in SLEPc because, if I had messed up the matrix initialization and distribution, I should also get a memory corruption when I don't use harmonic extraction, right?</p>
</div>
</div>
</blockquote>
<div dir="auto"><br>
</div>
</div>
</div>
</div>
<div>
<div>
<div class="gmail_quote">
<div dir="auto">Not necessarily</div>
</div>
</div>
</div>
<div>
<div>
<div class="gmail_quote">
<div dir="auto"><br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div id="m_5229467629642641963m_7080143599383414480m_7083151968027740131divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif">
<p></p>
<p><br>
Any suggestions what might be going on?</p>
</div>
</div>
</blockquote>
<div dir="auto"><br>
</div>
</div>
</div>
</div>
<div>
<div>
<div class="gmail_quote">
<div dir="auto">Run your code through valgrind and make sure that your application code is clean. See here </div>
<div dir="auto"><br>
</div>
<div dir="auto">
<div><a href="http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind" target="_blank">http://www.mcs.anl.gov/petsc/<wbr>documentation/faq.html#<wbr>valgrind</a></div>
<br>
</div>
<div dir="auto">If errors are detected in your application code, fix them and see if the slepc errors go away. If your code is valgrind clean, send through the relevant chunk of the valgrind report indicating exactly where the error is occurring</div>
<div dir="auto"><br>
</div>
<div dir="auto">Thanks,</div>
<div dir="auto">  Dave</div>
<div dir="auto"><br>
</div>
<div dir="auto"><br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div id="m_5229467629642641963m_7080143599383414480m_7083151968027740131divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif">
<p></p>
<p><br>
</p>
<p>Regards, <br>
</p>
<p>Moritz<br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div></div></div>

</blockquote></div><br></div></div>