mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Instead of unconditionally issuing MPI_Abort if we encounter a fatal exception, we try to test whether all processes have experienced this exception and if this is the case just terminate nomally with a exit code that signals an error. We still use MPI_Abort if not all processes get an exception as this is the only way to make sure that the program aborts. This approach also works around issues in some MPI implementations that might not correctly return the error. Multiple messages like this are gone now: ``` -------------------------------------------------------------------------- MPI_ABORT was invoked on rank 1 in communicator MPI_COMM_WORLD with errorcode 1. NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes. You may or may not see output from other processes, depending on exactly when Open MPI kills them. -------------------------------------------------------------------------- [smaug.dr-blatt.de:129359] 1 more process has sent help message help-mpi-api.txt / mpi-abort [smaug.dr-blatt.de:129359] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages ``` Bu we still see something like this: ``` -------------------------------------------------------------------------- Primary job terminated normally, but 1 process returned a non-zero exit code. Per user-direction, the job has been aborted. -------------------------------------------------------------------------- -------------------------------------------------------------------------- mpirun detected that one or more processes exited with non-zero status, thus causing the job to be terminated. The first process to do so was: Process name: [[35057,1],0] Exit code: 1 -------------------------------------------------------------------------- ``` |
||
---|---|---|
.. | ||
python | ||
Banners.cpp | ||
Banners.hpp | ||
BlackoilModelEbos.hpp | ||
BlackoilModelEbosNldd.hpp | ||
BlackoilModelParametersEbos.hpp | ||
ConvergenceOutputConfiguration.cpp | ||
ConvergenceOutputConfiguration.hpp | ||
countGlobalCells.cpp | ||
countGlobalCells.hpp | ||
ExtraConvergenceOutputThread.cpp | ||
ExtraConvergenceOutputThread.hpp | ||
FlowMainEbos.cpp | ||
FlowMainEbos.hpp | ||
KeywordValidation.cpp | ||
KeywordValidation.hpp | ||
Main.cpp | ||
Main.hpp | ||
NonlinearSolverEbos.cpp | ||
NonlinearSolverEbos.hpp | ||
partitionCells.cpp | ||
partitionCells.hpp | ||
SimulatorFullyImplicitBlackoilEbos.cpp | ||
SimulatorFullyImplicitBlackoilEbos.hpp | ||
SubDomain.hpp | ||
ValidationFunctions.cpp | ||
ValidationFunctions.hpp |