void shmem_runtime_abort(int exit_code, const char msg[]) { PMI2_Abort(exit_code, msg); /* PMI_Abort should not return */ abort(); }
/* gasneti_bootstrapAbort */ void gasneti_bootstrapAbort_pmi(int exitcode) { #if USE_PMI2_API PMI2_Abort(1, "GASNet abnormal exit"); #else PMI_Abort(exitcode, "GASNet abnormal exit"); #endif gasneti_fatalerror("PMI_Abort failed."); /* NOT REACHED */ }
void mca_common_pmi_abort(int status, char *msg) { #if WANT_PMI2_SUPPORT if( mca_common_pmi_version == 2){ PMI2_Abort(status, msg); } else #endif { PMI_Abort(status, msg); } }
int MPID_Abort(MPIR_Comm * comm, int mpi_errno, int exit_code, const char *error_msg) { char sys_str[MPI_MAX_ERROR_STRING + 5] = ""; char comm_str[MPI_MAX_ERROR_STRING] = ""; char world_str[MPI_MAX_ERROR_STRING] = ""; char error_str[2 * MPI_MAX_ERROR_STRING + 128]; MPIR_FUNC_VERBOSE_STATE_DECL(MPID_STATE_MPIDI_ABORT); MPIR_FUNC_VERBOSE_ENTER(MPID_STATE_MPIDI_ABORT); if (MPIR_Process.comm_world) { int rank = MPIR_Process.comm_world->rank; snprintf(world_str, sizeof(world_str), " on node %d", rank); } if (comm) { int rank = comm->rank; int context_id = comm->context_id; snprintf(comm_str, sizeof(comm_str), " (rank %d in comm %d)", rank, context_id); } if (!error_msg) error_msg = "Internal error"; if (mpi_errno != MPI_SUCCESS) { char msg[MPI_MAX_ERROR_STRING] = ""; MPIR_Err_get_string(mpi_errno, msg, MPI_MAX_ERROR_STRING, NULL); snprintf(sys_str, sizeof(msg), " (%s)", msg); } MPL_snprintf(error_str, sizeof(error_str), "Abort(%d)%s%s: %s%s\n", exit_code, world_str, comm_str, error_msg, sys_str); MPL_error_printf("%s", error_str); MPIR_FUNC_VERBOSE_EXIT(MPID_STATE_MPIDI_ABORT); fflush(stderr); fflush(stdout); if (NULL == comm || (MPIR_Comm_size(comm) == 1 && comm->comm_kind == MPIR_COMM_KIND__INTRACOMM)) MPL_exit(exit_code); if (comm != MPIR_Process.comm_world) { MPIDIG_comm_abort(comm, exit_code); } else { #ifdef USE_PMIX_API PMIx_Abort(exit_code, error_msg, NULL, 0); #elif defined(USE_PMI2_API) PMI2_Abort(TRUE, error_msg); #else PMI_Abort(exit_code, error_msg); #endif } return 0; }
static int cray_abort(int status, const char *msg) { return PMI2_Abort(status, msg); }
static int cray_abort(int flag, const char *msg, opal_list_t *procs) { PMI2_Abort(flag, msg); return OPAL_SUCCESS; }
static int s2_abort(int flag, const char msg[]) { PMI2_Abort(flag, msg); return OPAL_SUCCESS; }
static int s2_abort(int flag, const char msg[], opal_list_t *procs) { PMI2_Abort(flag, msg); return OPAL_SUCCESS; }