Personal tools
You are here: Home / openCMISS / Wiki / Running Libmesh examples on Bioeng22
Navigation
Log in


Forgot your password?
 

Running Libmesh examples on Bioeng22

  • Change directories to 'examples' and either (1) type 'make run' or (2) cd to a specific example (e.g. cg ex4) and

    then type 'make run'.

  • Problems with Parallel Runs

    • Example 4 works for 1 or 2 processors.

      But it fails for 3 or 4 processors with the following messages:

      ** On entry to DGEMV  parameter number  6 had an illegal value
      

      and the program then pauses. Others have had similar problems on Debian (see "this message":http://sourceforge.net/mailarchive/message.php?msg_id=10932317 and "this message":http://sourceforge.net/mailarchive/message.php?msg_id=10945009).

      Changing the solver with the command line option '-ksp_type cg' makes the example run fine for 1 to 4 processors.

      This suggests that the problem is in Ubuntu's libpetsc2.2.0 2.2.0-4. The example runs fine for 1 to 4 processors with petsc 2.3.1_p13 on a i686 system.

      Travis compiled using 'Recommended Configuration' and then reran this example. I observed that the problem described by Karl above only occurs for the 3D problem and only for 'n < 9'. The example uses 'n=6' and fails. If you run with 'n=10' or greater then it works. Note that this is for the default GMRES solver.

    • Example 14 fails at Solve 3 with the same message as above.

      With '-ksp_type cg', it runs fine for 1 to 3 processors, but for 4 processors, sometimes mpich reports:

      p0_6750:  p4_error: Child process exited while making connection to remote process on localhost: 0
      

      and sometimes petsc reports a SIGSEGV. 'Note that I (Travis) have observed this occuring for 3 processors too.' My recent observation is that ex14 only has 3 elements which is why it fails for 4 processors. So in general this example works fine.

      PETSc 2.3.1_p13 is similar. With 1 process on Solve 2:

      [0]PETSC ERROR: MatLUFactorNumeric_Inode() line 1425 in src/mat/impls/csr/inode/inode.c
      [0]PETSC ERROR: Detected zero pivot in LU factorization
      see http://www.mcs.anl.gov/petsc/petsc-as/documentation/troubleshooting.html#ZeroPivot!
      [0]PETSC ERROR: Zero pivot row 100 value 1 tolerance 1e-12 * rs 3.68356e+28 inode.size 2!
      [0]PETSC ERROR: MatLUFactorNumeric() line 2212 in src/mat/interface/matrix.c
      [0]PETSC ERROR: PCSetUp_ILU() line 551 in src/ksp/pc/impls/factor/ilu/ilu.c
      [0]PETSC ERROR: PCSetUp() line 798 in src/ksp/pc/interface/precon.c
      [0]PETSC ERROR: KSPSetUp() line 234 in src/ksp/ksp/interface/itfunc.c
      [0]PETSC ERROR: KSPSolve() line 334 in src/ksp/ksp/interface/itfunc.c
      [0]PETSC ERROR: User provided function() line 288 in unknowndirectory/src/numerics/petsc_linear_solver.C
      

      Changing the preconditioner with the command line option '-pc_type jacobi' is a workaround. With this option the example ran for 1 to 3 processes, but had a SIGSEGV for 4 processes. Again, problem is that there are only 3 elements and libMesh does not gracefully take care of case that you have more elements than processors.