I cannot stop myself. I have pushed this change. Now PetscError() and SETERRX() take a comm as the first argument, pass PETSC_COMM_SELF if you don't know what to use.
Barry On May 7, 2010, at 3:15 PM, Barry Smith wrote: > > I think you have to admit that > > [bsmith-laptop:snes/examples/tutorials] barrysmith% petscmpiexec -n 5 ./ex19 > -pc_type ilu > [0]PETSC ERROR: --------------------- Error Message > ------------------------------------ > [0]PETSC ERROR: Argument out of range! > [0]PETSC ERROR: Partition in y direction is too fine! 4 5! > [0]PETSC ERROR: > ------------------------------------------------------------------------ > [0]PETSC ERROR: Petsc Development HG revision: > c1b45858b86e4eb019634112f9645ee58d756dfa HG Date: Thu May 06 11:15:08 2010 > -0500 > [0]PETSC ERROR: See docs/changes/index.html for recent updates. > [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > [0]PETSC ERROR: See docs/index.html for manual pages. > [0]PETSC ERROR: > ------------------------------------------------------------------------ > [0]PETSC ERROR: ./ex19 on a arch-gnu named > anlextwls002-207.wl.anl-external.org by barrysmith Fri May 7 15:10:42 2010 > [0]PETSC ERROR: Libraries linked from > /Users/barrysmith/Src/petsc-dev/arch-gnu/lib > [0]PETSC ERROR: Configure run at Thu May 6 12:52:19 2010 > [0]PETSC ERROR: Configure options --download-scalapack --download-mpich > --download-parmetis --download-mumps PETSC_ARCH=arch-gnu > --download-superlu_dist --download-hypre --download-blacs --with-fc="gfortran > -m64" > [0]PETSC ERROR: > ------------------------------------------------------------------------ > [0]PETSC ERROR: DACreate_2D() line 1342 in src/dm/da/src/da2.c > [0]PETSC ERROR: DASetType() line 48 in src/dm/da/src/dareg.c > [0]PETSC ERROR: DASetTypeFromOptions_Private() line 65 in > src/dm/da/src/dacreate.c > [0]PETSC ERROR: DASetFromOptions() line 131 in src/dm/da/src/dacreate.c > [0]PETSC ERROR: DACreate2d() line 1847 in src/dm/da/src/da2.c > [0]PETSC ERROR: main() line 107 in src/snes/examples/tutorials/ex19.c > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 0 > [cli_0]: aborting job: > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 0 > Killed (signal 9) > > I s a much better message than > > > [bsmith-laptop:snes/examples/tutorials] barrysmith% petscmpiexec -n 5 ./ex19 > -pc_type ilu > [0]PETSC ERROR: --------------------- Error Message > ------------------------------------ > [0]PETSC ERROR: Argument out of range! > [0]PETSC ERROR: Partition in y direction is too fine! 4 5! > [0]PETSC ERROR: > ------------------------------------------------------------------------ > [0]PETSC ERROR: Petsc Development HG revision: > c1b45858b86e4eb019634112f9645ee58d756dfa HG Date: Thu May 06 11:15:08 2010 > -0500 > [0]PETSC ERROR: See docs/changes/index.html for recent updates. > [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > [0]PETSC ERROR: See docs/index.html for manual pages. > [0]PETSC ERROR: > ------------------------------------------------------------------------ > [0]PETSC ERROR: ./ex19 on a arch-gnu named > anlextwls002-207.wl.anl-external.org by barrysmith Fri May 7 15:05:55 2010 > [0]PETSC ERROR: Libraries linked from > /Users/barrysmith/Src/petsc-dev/arch-gnu/lib > [0]PETSC ERROR: Configure run at Thu May 6 12:52:19 2010 > [0]PETSC ERROR: Configure options --download-scalapack --download-mpich > --download-parmetis --download-mumps PETSC_ARCH=arch-gnu > --download-superlu_dist --download-hypre --download-blacs --with-fc="gfortran > -m64" > [0]PETSC ERROR: > ------------------------------------------------------------------------ > [0]PETSC ERROR: DACreate_2D() line 1342 in src/dm/da/src/da2.c > [0]PETSC ERROR: DASetType() line 48 in src/dm/da/src/dareg.c > [0]PETSC ERROR: DASetTypeFromOptions_Private() line 65 in > src/dm/da/src/dacreate.c > [0]PETSC ERROR: DASetFromOptions() line 131 in src/dm/da/src/dacreate.c > [0]PETSC ERROR: DACreate2d() line 1847 in src/dm/da/src/da2.c > [0]PETSC ERROR: main() line 107 in src/snes/examples/tutorials/ex19.c > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 0 > [cli_0]: aborting job: > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 0 > [1]PETSC ERROR: --------------------- Error Message > ------------------------------------ > [1]PETSC ERROR: Argument out of range! > [1]PETSC ERROR: Partition in y direction is too fine! 4 5! > [1]PETSC ERROR: > ------------------------------------------------------------------------ > [1]PETSC ERROR: Petsc Development HG revision: > c1b45858b86e4eb019634112f9645ee58d756dfa HG Date: Thu May 06 11:15:08 2010 > -0500 > [1]PETSC ERROR: See docs/changes/index.html for recent updates. > [1]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > [1]PETSC ERROR: See docs/index.html for manual pages. > [1]PETSC ERROR: > ------------------------------------------------------------------------ > [1]PETSC ERROR: ./ex19 on a arch-gnu named > anlextwls002-207.wl.anl-external.org by barrysmith Fri May 7 15:05:55 2010 > [1]PETSC ERROR: Libraries linked from > /Users/barrysmith/Src/petsc-dev/arch-gnu/lib > [1]PETSC ERROR: Configure run at Thu May 6 12:52:19 2010 > [1]PETSC ERROR: Configure options --download-scalapack --download-mpich > --download-parmetis --download-mumps PETSC_ARCH=arch-gnu > --download-superlu_dist --download-hypre --download-blacs --with-fc="gfortran > -m64" > [1]PETSC ERROR: > ------------------------------------------------------------------------ > [1]PETSC ERROR: DACreate_2D() line 1342 in src/dm/da/src/da2.c > [1]PETSC ERROR: DASetType() line 48 in src/dm/da/src/dareg.c > [1]PETSC ERROR: DASetTypeFromOptions_Private() line 65 in > src/dm/da/src/dacreate.c > [1]PETSC ERROR: DASetFromOptions() line 131 in src/dm/da/src/dacreate.c > [1]PETSC ERROR: DACreate2d() line 1847 in src/dm/da/src/da2.c > [1]PETSC ERROR: main() line 107 in src/snes/examples/tutorials/ex19.c > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 1 > [cli_1]: aborting job: > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 1 > [2]PETSC ERROR: --------------------- Error Message > ------------------------------------ > [2]PETSC ERROR: Argument out of range! > [2]PETSC ERROR: Partition in y direction is too fine! 4 5! > [2]PETSC ERROR: > ------------------------------------------------------------------------ > [2]PETSC ERROR: Petsc Development HG revision: > c1b45858b86e4eb019634112f9645ee58d756dfa HG Date: Thu May 06 11:15:08 2010 > -0500 > [2]PETSC ERROR: See docs/changes/index.html for recent updates. > [2]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > [2]PETSC ERROR: See docs/index.html for manual pages. > [2]PETSC ERROR: > ------------------------------------------------------------------------ > [2]PETSC ERROR: ./ex19 on a arch-gnu named > anlextwls002-207.wl.anl-external.org by barrysmith Fri May 7 15:05:55 2010 > [2]PETSC ERROR: Libraries linked from > /Users/barrysmith/Src/petsc-dev/arch-gnu/lib > [2]PETSC ERROR: Configure run at Thu May 6 12:52:19 2010 > [2]PETSC ERROR: Configure options --download-scalapack --download-mpich > --download-parmetis --download-mumps PETSC_ARCH=arch-gnu > --download-superlu_dist --download-hypre --download-blacs --with-fc="gfortran > -m64" > [2]PETSC ERROR: > ------------------------------------------------------------------------ > [2]PETSC ERROR: DACreate_2D() line 1342 in src/dm/da/src/da2.c > [2]PETSC ERROR: DASetType() line 48 in src/dm/da/src/dareg.c > [2]PETSC ERROR: DASetTypeFromOptions_Private() line 65 in > src/dm/da/src/dacreate.c > [2]PETSC ERROR: DASetFromOptions() line 131 in src/dm/da/src/dacreate.c > [2]PETSC ERROR: DACreate2d() line 1847 in src/dm/da/src/da2.c > [2]PETSC ERROR: main() line 107 in src/snes/examples/tutorials/ex19.c > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 2 > [cli_2]: aborting job: > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 2 > [4]PETSC ERROR: --------------------- Error Message > ------------------------------------ > [4]PETSC ERROR: Argument out of range! > [4]PETSC ERROR: Partition in y direction is too fine! 4 5! > [4]PETSC ERROR: > ------------------------------------------------------------------------ > [4]PETSC ERROR: Petsc Development HG revision: > c1b45858b86e4eb019634112f9645ee58d756dfa HG Date: Thu May 06 11:15:08 2010 > -0500 > [4]PETSC ERROR: See docs/changes/index.html for recent updates. > [4]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > [4]PETSC ERROR: See docs/index.html for manual pages. > [4]PETSC ERROR: > ------------------------------------------------------------------------ > [4]PETSC ERROR: ./ex19 on a arch-gnu named > anlextwls002-207.wl.anl-external.org by barrysmith Fri May 7 15:05:55 2010 > [4]PETSC ERROR: Libraries linked from > /Users/barrysmith/Src/petsc-dev/arch-gnu/lib > [4]PETSC ERROR: Configure run at Thu May 6 12:52:19 2010 > [4]PETSC ERROR: Configure options --download-scalapack --download-mpich > --download-parmetis --download-mumps PETSC_ARCH=arch-gnu > --download-superlu_dist --download-hypre --download-blacs --with-fc="gfortran > -m64" > [4]PETSC ERROR: > ------------------------------------------------------------------------ > [4]PETSC ERROR: DACreate_2D() line 1342 in src/dm/da/src/da2.c > [4]PETSC ERROR: DASetType() line 48 in src/dm/da/src/dareg.c > [4]PETSC ERROR: DASetTypeFromOptions_Private() line 65 in > src/dm/da/src/dacreate.c > [4]PETSC ERROR: DASetFromOptions() line 131 in src/dm/da/src/dacreate.c > [4]PETSC ERROR: DACreate2d() line 1847 in src/dm/da/src/da2.c > [4]PETSC ERROR: main() line 107 in src/snes/examples/tutorials/ex19.c > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 4 > [cli_4]: aborting job: > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 4 > [3]PETSC ERROR: --------------------- Error Message > ------------------------------------ > [3]PETSC ERROR: Argument out of range! > [3]PETSC ERROR: Partition in y direction is too fine! 4 5! > [3]PETSC ERROR: > ------------------------------------------------------------------------ > [3]PETSC ERROR: Petsc Development HG revision: > c1b45858b86e4eb019634112f9645ee58d756dfa HG Date: Thu May 06 11:15:08 2010 > -0500 > [3]PETSC ERROR: See docs/changes/index.html for recent updates. > [3]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > [3]PETSC ERROR: See docs/index.html for manual pages. > [3]PETSC ERROR: > ------------------------------------------------------------------------ > [3]PETSC ERROR: ./ex19 on a arch-gnu named > anlextwls002-207.wl.anl-external.org by barrysmith Fri May 7 15:05:55 2010 > [3]PETSC ERROR: Libraries linked from > /Users/barrysmith/Src/petsc-dev/arch-gnu/lib > [3]PETSC ERROR: Configure run at Thu May 6 12:52:19 2010 > [3]PETSC ERROR: Configure options --download-scalapack --download-mpich > --download-parmetis --download-mumps PETSC_ARCH=arch-gnu > --download-superlu_dist --download-hypre --download-blacs --with-fc="gfortran > -m64" > [3]PETSC ERROR: > ------------------------------------------------------------------------ > [3]PETSC ERROR: DACreate_2D() line 1342 in src/dm/da/src/da2.c > [3]PETSC ERROR: DASetType() line 48 in src/dm/da/src/dareg.c > [3]PETSC ERROR: DASetTypeFromOptions_Private() line 65 in > src/dm/da/src/dacreate.c > [3]PETSC ERROR: DASetFromOptions() line 131 in src/dm/da/src/dacreate.c > [3]PETSC ERROR: DACreate2d() line 1847 in src/dm/da/src/da2.c > [3]PETSC ERROR: main() line 107 in src/snes/examples/tutorials/ex19.c > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 3 > [cli_3]: aborting job: > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 3 > > [bsmith-laptop:snes/examples/tutorials] barrysmith% petscmpiexec -n 5 ./ex19 > -pc_type ilu > [0]PETSC ERROR: --------------------- Error Message > ------------------------------------ > [0]PETSC ERROR: Argument out of range! > [0]PETSC ERROR: Partition in y direction is too fine! 4 5! > [0]PETSC ERROR: > ------------------------------------------------------------------------ > [0]PETSC ERROR: Petsc Development HG revision: > c1b45858b86e4eb019634112f9645ee58d756dfa HG Date: Thu May 06 11:15:08 2010 > -0500 > [0]PETSC ERROR: See docs/changes/index.html for recent updates. > [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > [0]PETSC ERROR: See docs/index.html for manual pages. > [0]PETSC ERROR: > ------------------------------------------------------------------------ > [0]PETSC ERROR: ./ex19 on a arch-gnu named > anlextwls002-207.wl.anl-external.org by barrysmith Fri May 7 15:05:55 2010 > [0]PETSC ERROR: Libraries linked from > /Users/barrysmith/Src/petsc-dev/arch-gnu/lib > [0]PETSC ERROR: Configure run at Thu May 6 12:52:19 2010 > [0]PETSC ERROR: Configure options --download-scalapack --download-mpich > --download-parmetis --download-mumps PETSC_ARCH=arch-gnu > --download-superlu_dist --download-hypre --download-blacs --with-fc="gfortran > -m64" > [0]PETSC ERROR: > ------------------------------------------------------------------------ > [0]PETSC ERROR: DACreate_2D() line 1342 in src/dm/da/src/da2.c > [0]PETSC ERROR: DASetType() line 48 in src/dm/da/src/dareg.c > [0]PETSC ERROR: DASetTypeFromOptions_Private() line 65 in > src/dm/da/src/dacreate.c > [0]PETSC ERROR: DASetFromOptions() line 131 in src/dm/da/src/dacreate.c > [0]PETSC ERROR: DACreate2d() line 1847 in src/dm/da/src/da2.c > [0]PETSC ERROR: main() line 107 in src/snes/examples/tutorials/ex19.c > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 0 > [cli_0]: aborting job: > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 0 > [1]PETSC ERROR: --------------------- Error Message > ------------------------------------ > [1]PETSC ERROR: Argument out of range! > [1]PETSC ERROR: Partition in y direction is too fine! 4 5! > [1]PETSC ERROR: > ------------------------------------------------------------------------ > [1]PETSC ERROR: Petsc Development HG revision: > c1b45858b86e4eb019634112f9645ee58d756dfa HG Date: Thu May 06 11:15:08 2010 > -0500 > [1]PETSC ERROR: See docs/changes/index.html for recent updates. > [1]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > [1]PETSC ERROR: See docs/index.html for manual pages. > [1]PETSC ERROR: > ------------------------------------------------------------------------ > [1]PETSC ERROR: ./ex19 on a arch-gnu named > anlextwls002-207.wl.anl-external.org by barrysmith Fri May 7 15:05:55 2010 > [1]PETSC ERROR: Libraries linked from > /Users/barrysmith/Src/petsc-dev/arch-gnu/lib > [1]PETSC ERROR: Configure run at Thu May 6 12:52:19 2010 > [1]PETSC ERROR: Configure options --download-scalapack --download-mpich > --download-parmetis --download-mumps PETSC_ARCH=arch-gnu > --download-superlu_dist --download-hypre --download-blacs --with-fc="gfortran > -m64" > [1]PETSC ERROR: > ------------------------------------------------------------------------ > [1]PETSC ERROR: DACreate_2D() line 1342 in src/dm/da/src/da2.c > [1]PETSC ERROR: DASetType() line 48 in src/dm/da/src/dareg.c > [1]PETSC ERROR: DASetTypeFromOptions_Private() line 65 in > src/dm/da/src/dacreate.c > [1]PETSC ERROR: DASetFromOptions() line 131 in src/dm/da/src/dacreate.c > [1]PETSC ERROR: DACreate2d() line 1847 in src/dm/da/src/da2.c > [1]PETSC ERROR: main() line 107 in src/snes/examples/tutorials/ex19.c > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 1 > [cli_1]: aborting job: > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 1 > [2]PETSC ERROR: --------------------- Error Message > ------------------------------------ > [2]PETSC ERROR: Argument out of range! > [2]PETSC ERROR: Partition in y direction is too fine! 4 5! > [2]PETSC ERROR: > ------------------------------------------------------------------------ > [2]PETSC ERROR: Petsc Development HG revision: > c1b45858b86e4eb019634112f9645ee58d756dfa HG Date: Thu May 06 11:15:08 2010 > -0500 > [2]PETSC ERROR: See docs/changes/index.html for recent updates. > [2]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > [2]PETSC ERROR: See docs/index.html for manual pages. > [2]PETSC ERROR: > ------------------------------------------------------------------------ > [2]PETSC ERROR: ./ex19 on a arch-gnu named > anlextwls002-207.wl.anl-external.org by barrysmith Fri May 7 15:05:55 2010 > [2]PETSC ERROR: Libraries linked from > /Users/barrysmith/Src/petsc-dev/arch-gnu/lib > [2]PETSC ERROR: Configure run at Thu May 6 12:52:19 2010 > [2]PETSC ERROR: Configure options --download-scalapack --download-mpich > --download-parmetis --download-mumps PETSC_ARCH=arch-gnu > --download-superlu_dist --download-hypre --download-blacs --with-fc="gfortran > -m64" > [2]PETSC ERROR: > ------------------------------------------------------------------------ > [2]PETSC ERROR: DACreate_2D() line 1342 in src/dm/da/src/da2.c > [2]PETSC ERROR: DASetType() line 48 in src/dm/da/src/dareg.c > [2]PETSC ERROR: DASetTypeFromOptions_Private() line 65 in > src/dm/da/src/dacreate.c > [2]PETSC ERROR: DASetFromOptions() line 131 in src/dm/da/src/dacreate.c > [2]PETSC ERROR: DACreate2d() line 1847 in src/dm/da/src/da2.c > [2]PETSC ERROR: main() line 107 in src/snes/examples/tutorials/ex19.c > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 2 > [cli_2]: aborting job: > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 2 > [4]PETSC ERROR: --------------------- Error Message > ------------------------------------ > [4]PETSC ERROR: Argument out of range! > [4]PETSC ERROR: Partition in y direction is too fine! 4 5! > [4]PETSC ERROR: > ------------------------------------------------------------------------ > [4]PETSC ERROR: Petsc Development HG revision: > c1b45858b86e4eb019634112f9645ee58d756dfa HG Date: Thu May 06 11:15:08 2010 > -0500 > [4]PETSC ERROR: See docs/changes/index.html for recent updates. > [4]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > [4]PETSC ERROR: See docs/index.html for manual pages. > [4]PETSC ERROR: > ------------------------------------------------------------------------ > [4]PETSC ERROR: ./ex19 on a arch-gnu named > anlextwls002-207.wl.anl-external.org by barrysmith Fri May 7 15:05:55 2010 > [4]PETSC ERROR: Libraries linked from > /Users/barrysmith/Src/petsc-dev/arch-gnu/lib > [4]PETSC ERROR: Configure run at Thu May 6 12:52:19 2010 > [4]PETSC ERROR: Configure options --download-scalapack --download-mpich > --download-parmetis --download-mumps PETSC_ARCH=arch-gnu > --download-superlu_dist --download-hypre --download-blacs --with-fc="gfortran > -m64" > [4]PETSC ERROR: > ------------------------------------------------------------------------ > [4]PETSC ERROR: DACreate_2D() line 1342 in src/dm/da/src/da2.c > [4]PETSC ERROR: DASetType() line 48 in src/dm/da/src/dareg.c > [4]PETSC ERROR: DASetTypeFromOptions_Private() line 65 in > src/dm/da/src/dacreate.c > [4]PETSC ERROR: DASetFromOptions() line 131 in src/dm/da/src/dacreate.c > [4]PETSC ERROR: DACreate2d() line 1847 in src/dm/da/src/da2.c > [4]PETSC ERROR: main() line 107 in src/snes/examples/tutorials/ex19.c > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 4 > [cli_4]: aborting job: > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 4 > [3]PETSC ERROR: --------------------- Error Message > ------------------------------------ > [3]PETSC ERROR: Argument out of range! > [3]PETSC ERROR: Partition in y direction is too fine! 4 5! > [3]PETSC ERROR: > ------------------------------------------------------------------------ > [3]PETSC ERROR: Petsc Development HG revision: > c1b45858b86e4eb019634112f9645ee58d756dfa HG Date: Thu May 06 11:15:08 2010 > -0500 > [3]PETSC ERROR: See docs/changes/index.html for recent updates. > [3]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > [3]PETSC ERROR: See docs/index.html for manual pages. > [3]PETSC ERROR: > ------------------------------------------------------------------------ > [3]PETSC ERROR: ./ex19 on a arch-gnu named > anlextwls002-207.wl.anl-external.org by barrysmith Fri May 7 15:05:55 2010 > [3]PETSC ERROR: Libraries linked from > /Users/barrysmith/Src/petsc-dev/arch-gnu/lib > [3]PETSC ERROR: Configure run at Thu May 6 12:52:19 2010 > [3]PETSC ERROR: Configure options --download-scalapack --download-mpich > --download-parmetis --download-mumps PETSC_ARCH=arch-gnu > --download-superlu_dist --download-hypre --download-blacs --with-fc="gfortran > -m64" > [3]PETSC ERROR: > ------------------------------------------------------------------------ > [3]PETSC ERROR: DACreate_2D() line 1342 in src/dm/da/src/da2.c > [3]PETSC ERROR: DASetType() line 48 in src/dm/da/src/dareg.c > [3]PETSC ERROR: DASetTypeFromOptions_Private() line 65 in > src/dm/da/src/dacreate.c > [3]PETSC ERROR: DASetFromOptions() line 131 in src/dm/da/src/dacreate.c > [3]PETSC ERROR: DACreate2d() line 1847 in src/dm/da/src/da2.c > [3]PETSC ERROR: main() line 107 in src/snes/examples/tutorials/ex19.c > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 3 > [cli_3]: aborting job: > application called MPI_Abort(MPI_COMM_WORLD, 63) - process 3 > > x > On May 7, 2010, at 1:24 PM, Barry Smith wrote: > >> >> On May 7, 2010, at 1:04 PM, Matthew Knepley wrote: >> >>> On Thu, May 6, 2010 at 10:16 PM, Barry Smith <bsmith at mcs.anl.gov> wrote: >>> >>> I'd like to add a MPI_Comm as the first argument to PetscError() and >>> friends. >>> >>> In this way, if the same error is known over all the communicator ranks >>> it can print just one nice error message and stack instead of spewing out >>> many of the same messages all over the place. >>> >>> Does anyone object to this? >>> >>> I am just worried that it will introduce deadlocks. If an error occurs on >>> only one process >>> and not another (like a NaN), but we use the entire communicator, we can >>> get deadlock >>> on the error message which will be very confusing. >> >> The idea is that by default we would pass in PETSC_COMM_SELF. Only when >> we KNOW 100% that ALL ranks in a process WILL FOR ABSOLUTE sure generate the >> same error would be pass the entire comm to SETERRQ() For example, if the >> user has set an invalid PC type etc. So a process generating a NAN would use >> only a PETSC_COMM_SELF in the SETERRQ(). >> >> You are right that there is a chance when totally bizarre shit happens >> that rank 1 of a comm calls SETERRQ() but rank 0 does not; then no >> appropriate error message will be printed. I don't see a way to totally >> avoid this chance. So we can >> >> 1) ignore this chance and make the change and see what happens >> 2) leave things the same as they are now. >> >> Even if it turns out we cannot have only rank 0 of the SETERRQ() print >> the message because bizarre shit happens too often, I think conceptually it >> is the right thing to do to pass in the MPI_Comm over which the error >> happens. So I'd like to make the chance and we can always take out the >> control over printing by rank 0 if it is a problem (i.e. the default error >> handles could ignore the comm). >> >> I'm going to try this and see if I can work out the kinks before pushing. >> >>> Is there a nice MPI way of checking >>> whether everyone is present, and if not then just use the current method? >> >> No, absolutely not since that would require communication with everyone >> who may not be there. >> >> Barry >> >>> >>> Matt >>> >>> It does mean for each SETERRQXXX() we call we need to select the correct >>> comm that is passed in. I will do all that, worst case just use >>> MPI_COMM_SELF for some and get the same effect as today. >>> >>> Barry >>> -- >>> What most experimenters take for granted before they begin their >>> experiments is infinitely more interesting than any results to which their >>> experiments lead. >>> -- Norbert Wiener >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20100507/e1de866a/attachment.html>
