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>

Reply via email to