<div dir="ltr">Indeed, I am pretty sure the bug is in ParMETIS.  A few years ago, I sent a sample matrix and debug trace to George Karypis, he was going to look at it, but never did. <div><br></div><div>This bug seems to show up when the graph is relatively dense.  Can you try to use serial symbolic factorization and Metis? </div><div><br></div><div>Sherry</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 22, 2018 at 8:41 AM, Smith, Barry F. <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
0x00007f96a2148e52 in libmetis__FM_2WayCutRefine (ctrl=0x2784d20, graph=0x2784940, ntpwgts=0x7ffdfa323060, niter=4)<br>
at /home/mefpp_ericc/petsc-3.9.2-<wbr>debug/arch-linux2-c-debug/<wbr>externalpackages/git.metis/<wbr>libmetis/fm.c:60<br>
<br>
</span>It appears the crash is in metis, not SuperLU_Dist.<br>
<br>
  So either a bug in Metis or a bug in our Metis is called by ParMetis or SuperLU_Dist.<br>
<span class="HOEnZb"><font color="#888888"><br>
   Barry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
> On May 22, 2018, at 10:37 AM, Hong <<a href="mailto:hzhang@mcs.anl.gov">hzhang@mcs.anl.gov</a>> wrote:<br>
> <br>
> Eric:<br>
> Likely, you encounter a zero pivot. Run your code with '-ksp_error_if_not_converged' would show it.<br>
> Adding option '-mat_superlu_dist_<wbr>replacetinypivot' might help.<br>
> Hong<br>
> <br>
> Hi,<br>
> <br>
> The given matrix+vector is bogus with SuperLU_Dist on some of our nighlty validation tests since I activated the parallel symbolic factorisation. (with -mat_superlu_dist_colperm PARMETIS -mat_superlu_dist_parsymbfact 1 )<br>
> <br>
> I extracted an example system and reproduced the bug with src/ksp/ksp/examples/tests/<wbr>ex6.c that I can run it with 2 or 3 processes, but with 4 it gives a FPE on process #1:<br>
> <br>
> mpirun -n 4 ./ex6 -f AssembleurGD_resolution_no_0_0 -ksp_view -ksp_type preonly -pc_type lu -pc_factor_mat_solver_type superlu_dist -mat_superlu_dist_colperm PARMETIS -mat_superlu_dist_parsymbfact 1<br>
> <br>
> ...<br>
> [1]PETSC ERROR: ------------------------------<wbr>------------------------------<wbr>------------<br>
> [1]PETSC ERROR: Caught signal number 8 FPE: Floating Point Exception,probably divide by zero<br>
> [1]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger<br>
> [1]PETSC ERROR: or see <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind" rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/<wbr>documentation/faq.html#<wbr>valgrind</a><br>
> [1]PETSC ERROR: or try <a href="http://valgrind.org" rel="noreferrer" target="_blank">http://valgrind.org</a> on GNU/linux and Apple Mac OS X to find memory corruption errors<br>
> [1]PETSC ERROR: likely location of problem given in stack below<br>
> [1]PETSC ERROR: ---------------------  Stack Frames ------------------------------<wbr>------<br>
> [1]PETSC ERROR: Note: The EXACT line numbers in the stack are not available,<br>
> [1]PETSC ERROR:       INSTEAD the line number of the start of the function<br>
> [1]PETSC ERROR:       is given.<br>
> [1]PETSC ERROR: [1] SuperLU_DIST:pdgssvx line 467 /home/mefpp_ericc/petsc-3.9.2-<wbr>debug/src/mat/impls/aij/mpi/<wbr>superlu_dist/superlu_dist.c<br>
> [1]PETSC ERROR: [1] MatLUFactorNumeric_SuperLU_<wbr>DIST line 314 /home/mefpp_ericc/petsc-3.9.2-<wbr>debug/src/mat/impls/aij/mpi/<wbr>superlu_dist/superlu_dist.c<br>
> [1]PETSC ERROR: [1] MatLUFactorNumeric line 3014 /home/mefpp_ericc/petsc-3.9.2-<wbr>debug/src/mat/interface/<wbr>matrix.c<br>
> [1]PETSC ERROR: [1] PCSetUp_LU line 59 /home/mefpp_ericc/petsc-3.9.2-<wbr>debug/src/ksp/pc/impls/factor/<wbr>lu/lu.c<br>
> [1]PETSC ERROR: [1] PCSetUp line 885 /home/mefpp_ericc/petsc-3.9.2-<wbr>debug/src/ksp/pc/interface/<wbr>precon.c<br>
> [1]PETSC ERROR: [1] KSPSetUp line 294 /home/mefpp_ericc/petsc-3.9.2-<wbr>debug/src/ksp/ksp/interface/<wbr>itfunc.c<br>
> [1]PETSC ERROR: --------------------- Error Message ------------------------------<wbr>------------------------------<wbr>--<br>
> [1]PETSC ERROR: Signal received<br>
> [1]PETSC ERROR: See <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html" rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/<wbr>documentation/faq.html</a> for trouble shooting.<br>
> [1]PETSC ERROR: Petsc Release Version 3.9.2, May, 20, 2018<br>
> [1]PETSC ERROR: ./ex6 on a  named lorien by eric Tue May 22 10:39:15 2018<br>
> [1]PETSC ERROR: Configure options --prefix=/opt/petsc-3.9.2_<wbr>debug_openmpi-1.10.2 --with-mpi-compilers=1 --with-mpi-dir=/opt/openmpi-1.<wbr>10.2 --with-make-np=12 --with-shared-libraries=1 --with-debugging=yes --with-memalign=64 --with-visibility=0 --with-64-bit-indices=0 --download-ml=yes --download-mumps=yes --download-superlu=yes --download-superlu_dist=yes --download-parmetis=yes --download-ptscotch=yes --download-metis=yes --download-suitesparse=yes --download-hypre=yes --with-blaslapack-dir=/opt/<wbr>intel/composer_xe_2015.2.164/<wbr>mkl/lib/intel64 --with-mkl_pardiso-dir=/opt/<wbr>intel/composer_xe_2015.2.164/<wbr>mkl --with-mkl_cpardiso-dir=/opt/<wbr>intel/composer_xe_2015.2.164/<wbr>mkl --with-scalapack=1 --with-scalapack-include=/opt/<wbr>intel/composer_xe_2015.2.164/<wbr>mkl/include --with-scalapack-lib="-L/opt/<wbr>intel/composer_xe_2015.2.164/<wbr>mkl/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64"<br>
> [1]PETSC ERROR: #1 User provided function() line 0 in  unknown file<br>
> ...<br>
> <br>
> The given Matrix+Vector are available here:<br>
> <br>
> <a href="http://www.giref.ulaval.ca/~ericc/bug_superlu_dist_parallel_factorisation/AssembleurGD_resolution_no_0_0" rel="noreferrer" target="_blank">http://www.giref.ulaval.ca/~<wbr>ericc/bug_superlu_dist_<wbr>parallel_factorisation/<wbr>AssembleurGD_resolution_no_0_0</a><br>
> <br>
> <a href="http://www.giref.ulaval.ca/~ericc/bug_superlu_dist_parallel_factorisation/AssembleurGD_resolution_no_0_0.info" rel="noreferrer" target="_blank">http://www.giref.ulaval.ca/~<wbr>ericc/bug_superlu_dist_<wbr>parallel_factorisation/<wbr>AssembleurGD_resolution_no_0_<wbr>0.info</a><br>
> <br>
> If I run with -on_error_attach_debugger, I can see a division by zero here:<br>
> <br>
> #8  <signal handler called><br>
> (gdb)<br>
> #9  0x00007f96a2148e52 in libmetis__FM_2WayCutRefine (ctrl=0x2784d20, graph=0x2784940, ntpwgts=0x7ffdfa323060, niter=4)<br>
>     at /home/mefpp_ericc/petsc-3.9.2-<wbr>debug/arch-linux2-c-debug/<wbr>externalpackages/git.metis/<wbr>libmetis/fm.c:60<br>
> 60        avgvwgt = gk_min((pwgts[0]+pwgts[1])/20, 2*(pwgts[0]+pwgts[1])/nvtxs);<br>
> <br>
> and nvtxs value is "0"...<br>
> <br>
> Thanks!<br>
> <br>
> Eric<br>
> <br>
<br>
</div></div></blockquote></div><br></div>