Sounds good. I will have a look at how to set this through petsc4py.

Thanks
Steve
________________________________
From: Satish Balay <ba...@mcs.anl.gov>
Sent: Thursday, June 4, 2020 2:32 PM
To: Hudson, Stephen Tobias P <shud...@anl.gov>
Cc: petsc-users@mcs.anl.gov <petsc-users@mcs.anl.gov>; Lisandro Dalcin 
<dalc...@gmail.com>
Subject: Re: Terminating a process running petsc via petsc4py without mpi_abort

I don't completely understand the issue here. How is sequential run different 
than parallel run?

In both cases - a PetscErrorHandler is likely getting invoked. One can change 
this behavior with:

https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscPushErrorHandler.html

And there are a few default error handlers to choose


PETSC_EXTERN PetscErrorCode PetscTraceBackErrorHandler(MPI_Comm,int,const 
char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*);
PETSC_EXTERN PetscErrorCode PetscIgnoreErrorHandler(MPI_Comm,int,const 
char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*);
PETSC_EXTERN PetscErrorCode PetscEmacsClientErrorHandler(MPI_Comm,int,const 
char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*);
PETSC_EXTERN PetscErrorCode PetscMPIAbortErrorHandler(MPI_Comm,int,const 
char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*);
PETSC_EXTERN PetscErrorCode PetscAbortErrorHandler(MPI_Comm,int,const 
char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*);
PETSC_EXTERN PetscErrorCode PetscAttachDebuggerErrorHandler(MPI_Comm,int,const 
char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*);
PETSC_EXTERN PetscErrorCode PetscReturnErrorHandler(MPI_Comm,int,const 
char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*);

Some of the are accessible via command line option. for ex: -on_error_abort or 
-on_error_mpiabort

Or perhaps you want to completely disable error handler with: -no_signal_handler

cc: petsc-users

Satish

On Thu, 4 Jun 2020, Hudson, Stephen Tobias P wrote:

> Satish,
>
> We are having issues caused by MPI_abort getting called when we try to 
> terminate a sub-process running petsc4py. Ideally we would always use a 
> serial build of petsc/petsc4py in this mode, but many users will have a 
> parallel build. We need to be able to send a terminate signal that just kills 
> the process.
>
> Is there a way to turn off the mpi_abort?
>
> Thanks,
>
> Steve
>
>

Reply via email to