[petsc-users] Terminating a process running petsc via petsc4py without mpi_abort
Hudson, Stephen Tobias P
shudson at anl.gov
Thu Jun 4 15:39:50 CDT 2020
Lisandro,
I don't see an interface to set this through petsc4py. Is it possible?
Thanks,
Steve
________________________________
From: Hudson, Stephen Tobias P <shudson at anl.gov>
Sent: Thursday, June 4, 2020 2:47 PM
To: Balay, Satish <balay at mcs.anl.gov>
Cc: petsc-users at mcs.anl.gov <petsc-users at mcs.anl.gov>; Lisandro Dalcin <dalcinl at gmail.com>
Subject: Re: Terminating a process running petsc via petsc4py without mpi_abort
Sounds good. I will have a look at how to set this through petsc4py.
Thanks
Steve
________________________________
From: Satish Balay <balay at mcs.anl.gov>
Sent: Thursday, June 4, 2020 2:32 PM
To: Hudson, Stephen Tobias P <shudson at anl.gov>
Cc: petsc-users at mcs.anl.gov <petsc-users at mcs.anl.gov>; Lisandro Dalcin <dalcinl at 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200604/6d82d38f/attachment.html>
More information about the petsc-users
mailing list