<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hello Hong Zhang,<br>
<br>
thank you for your quick response. The petsc-dev did not solve the
segfault. I checked what the difference from ex5 to my code was and
after I changed my code to ex5 the segfault was gone when I used
MatZeroEntries instead of destroying and creating a new Matrix for the
second solve.&nbsp; This seems to be logical but, what I do not understand
is why it works with destroying and creating a new Matrix on more than
one processor fine?<br>
<br>
Thank you<br>
Manfred<br>
<br>
<br>
Hong Zhang schrieb:
<blockquote
 cite="mid:CAGCphBvSE3z4f=NbrJQAHW04a++kyJa2mq3ubcGgyRJmGZ1PjQ@mail.gmail.com"
 type="cite">Manfred :
  <div>I tested 'SAME_NONZERO_PATTERN' with sequential mumps using</div>
  <div>petsc-dev/src/ksp/ksp/examples/tutorials/ex5.c:</div>
  <div>petsc-dev/src/ksp/ksp/examples/tutorials&gt;./ex5 -ksp_monitor
-mat_type sbaij -pc_type cholesky -pc_factor_mat_solver_package mumps</div>
  <div>
  <div>&nbsp; 0 KSP Residual norm 7.416198487096e+00&nbsp;</div>
  <div>&nbsp; 1 KSP Residual norm 8.281965561733e-16&nbsp;</div>
  <div>&nbsp; 0 KSP Residual norm 7.416198487096e+00&nbsp;</div>
  <div>&nbsp; 1 KSP Residual norm 9.211962217404e-16&nbsp;</div>
  </div>
  <div><br>
  </div>
  <div>Can you switch to petsc-dev&nbsp;</div>
  <div>(<a moz-do-not-send="true"
 href="http://www.mcs.anl.gov/petsc/developers/index.html">http://www.mcs.anl.gov/petsc/developers/index.html</a>)
to see if you still get the same error?</div>
  <div><br>
  </div>
  <div>Hong</div>
  <div>
  <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;"><br>
    <br>
I am solving with cholesky finite element problems where I have to
solve multiple times. To improve the performance I use KSPSetOperators
and set the option SAME_NONZERO_PATTERN because the matrix structure is
always the same in successive solves. This works great as long I use
more than one processor. When I use MUMPS, only one processor and a
matrix made with MATSEQSBAIJ the solving segfaults in the second solve.
When I use spooles or use LU with AIJ it also works, but I need MUMPS
as MatGetInertia only works with MUMPS with multiple processors.<br>
    <br>
The segfault:<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation,
probably memory access out of range<br>
[0]PETSC ERROR: Try option -start_in_debugger or
-on_error_attach_debugger<br>
[0]PETSC ERROR: or see <a moz-do-not-send="true"
 href="http://www.mcs.anl.gov/petsc/petsc-as/documentation/faq.html#valgrind%5B0%5DPETSC"
 target="_blank">http://www.mcs.anl.gov/petsc/petsc-as/documentation/faq.html#valgrind[0]PETSC</a>
ERROR: or try <a moz-do-not-send="true" href="http://valgrind.org"
 target="_blank">http://valgrind.org</a> on GNU/linux and Apple Mac OS
X to find memory corruption errors<br>
[0]PETSC ERROR: likely location of problem given in stack below<br>
[0]PETSC ERROR: --------------------- &nbsp;Stack Frames
------------------------------------<br>
[0]PETSC ERROR: Note: The EXACT line numbers in the stack are not
available,<br>
[0]PETSC ERROR: &nbsp; &nbsp; &nbsp; INSTEAD the line number of the start of the
function<br>
[0]PETSC ERROR: &nbsp; &nbsp; &nbsp; is given.<br>
[0]PETSC ERROR: [0] MatFactorNumeric_MUMPS line 642
src/mat/impls/aij/mpi/mumps/mumps.c<br>
[0]PETSC ERROR: [0] MatCholeskyFactorNumeric line 3037
src/mat/interface/matrix.c<br>
[0]PETSC ERROR: [0] PCSetUp_Cholesky line 92 src/ksp/pc/impls/factor/cholesky/cholesky.c<br>
[0]PETSC ERROR: [0] PCSetUp line 797 src/ksp/pc/interface/precon.c<br>
[0]PETSC ERROR: [0] KSPSetUp line 184 src/ksp/ksp/interface/itfunc.c<br>
[0]PETSC ERROR: [0] KSPSolve line 331 src/ksp/ksp/interface/itfunc.c<br>
[0]PETSC ERROR: --------------------- Error Message
------------------------------------<br>
[0]PETSC ERROR: Signal received!<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: Petsc Release Version 3.2.0, Patch 6, Wed Jan 11
09:28:45 CST 2012<br>
[0]PETSC ERROR: See docs/changes/index.html for recent updates.<br>
[0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.<br>
[0]PETSC ERROR: See docs/index.html for manual pages.<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: ./icona on a linux-gnu named <a moz-do-not-send="true"
 href="http://sunray.dps.uibk.ac.at" target="_blank">sunray.dps.uibk.ac.at</a>
by manfred Thu Mar &nbsp;1 10:06:47 2012<br>
[0]PETSC ERROR: Libraries linked from /home/manfred/petsc-3.2-p6/linux-gnu-c/lib<br>
[0]PETSC ERROR: Configure run at Thu Mar &nbsp;1 09:11:08 2012<br>
[0]PETSC ERROR: Configure options --with-cc=/home/manfred/gcc-4.6.2/bin/gcc
--download-mpich=1 --with-blas-lapack=1 --download-f-blas-lapack=1
PETSC_ARCH=linux-gnu-c --with-clanguage=cxx
--with-cxx=/home/manfred/gcc-4.6.2/bin/g++
--with-fc=/home/manfred/gcc-4.6.2/bin/gfortran --with-scalapack=1
--download-scalapack=1 --with-blacs=1 --download-blacs=1
--with-parmetis=1 --download-parmetis=1 --with-spooles=1
--download-spooles=1 --with-mumps=1 --download-mumps=1 --with-blopex=1
--download-blopex=1 --with-debugging=1<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: User provided function() line 0 in unknown directory
unknown file<br>
application called MPI_Abort(MPI_COMM_WORLD, 59) - process 0<br>
[cli_0]: aborting job:<br>
application called MPI_Abort(MPI_COMM_WORLD, 59) - process 0<br>
    <br>
    <br>
with valgrind I get the error<br>
==6853== Invalid read of size 8<br>
==6853== &nbsp; &nbsp;at 0x11CDDAA: dmumps_148_ (dmumps_part1.F:1299)<br>
==6853== &nbsp; &nbsp;by 0x111093C: dmumps_142_ (dmumps_part5.F:5094)<br>
==6853== &nbsp; &nbsp;by 0x11C9754: dmumps_ (dmumps_part1.F:642)<br>
==6853== &nbsp; &nbsp;by 0x10B4DDB: dmumps_f77_ (dmumps_part3.F:6651)<br>
==6853== &nbsp; &nbsp;by 0x108E0FF: dmumps_c (mumps_c.c:422)<br>
==6853== &nbsp; &nbsp;by 0xAE6EB3: MatFactorNumeric_MUMPS(_p_Mat*, _p_Mat*,
MatFactorInfo const*) (mumps.c:667)<br>
==6853== &nbsp; &nbsp;by 0x9832D7: MatCholeskyFactorNumeric(_p_Mat*, _p_Mat*,
MatFactorInfo const*) (matrix.c:3050)<br>
==6853== &nbsp; &nbsp;by 0xDFFE2D: PCSetUp_Cholesky(_p_PC*) (cholesky.c:157)<br>
==6853== &nbsp; &nbsp;by 0xD7B390: PCSetUp(_p_PC*) (precon.c:819)<br>
==6853== &nbsp; &nbsp;by 0xE47BD2: KSPSetUp(_p_KSP*) (itfunc.c:260)<br>
==6853== &nbsp; &nbsp;by 0xE48C47: KSPSolve(_p_KSP*, _p_Vec*, _p_Vec*)
(itfunc.c:379)<br>
==6853== &nbsp; &nbsp;by 0x4914E0: Task::runCalc() (Task.cpp:1204)<br>
    <br>
Is this a bug or doing I am something wrong? Should I go to MUMPS with
this error? I have currently a workaround to simply not use
SAME_NONZERO_PATTERN if using only one processor but as a result it is
much slower in successive solves.<br>
    <br>
Thank you in advance<span><font color="#888888"><br>
Manfred Gratt<br>
    <br>
    </font></span></blockquote>
  </div>
  <br>
  </div>
</blockquote>
<br>
</body>
</html>