<div dir="ltr"><div dir="ltr">On Sun, Apr 14, 2019 at 9:12 PM Sajid Ali <<a href="mailto:sajidsyed2021@u.northwestern.edu">sajidsyed2021@u.northwestern.edu</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Just to confirm, there's no error when running with one rank. The error occurs only with mpirun -np x (x>1). <br></div></div></blockquote><div><br></div><div>This is completely broken. I attached a version that will work in parallel, but its ugly.</div><div><br></div><div>PETSc People:</div><div>The MatCreateVecsFFT()  calls fftw_malloc()!!! in parallel. What possible motivation could there be?</div><div>This causes a failure because the custom destroy calls fftw_free(). VecDuplicate calls PetscMalloc(),</div><div>but then the custom destroy calls fftw_free() on that thing and chokes on the header we put on all</div><div>allocated blocks. Its not easy to see who wrote the fftw_malloc() lines, but it seems to be at least 8 years</div><div>ago. I can convert them to PetscMalloc(), but do we have any tests that would make us confident that</div><div>this is not wrecking something? Is anyone familiar with this part of the code?</div><div><br></div><div>  Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div>Attaching the error log.<br></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>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><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>