From 2051bf762ac6e8a1f489989b46f70194aa0f33c5 Mon Sep 17 00:00:00 2001 From: Mike Dubman Date: Wed, 30 Sep 2015 12:22:11 +0300 Subject: [PATCH] OMPI: put a barrier inside finalize for mxm wa To make sure no rank will call mxm_ep_disconnect before others finish doing MPI communications. this could be removed after refactoring MXM disconnect flow. --- ompi/runtime/ompi_mpi_finalize.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ompi/runtime/ompi_mpi_finalize.c b/ompi/runtime/ompi_mpi_finalize.c index 183bbbd6fc..54a95d8619 100644 --- a/ompi/runtime/ompi_mpi_finalize.c +++ b/ompi/runtime/ompi_mpi_finalize.c @@ -95,6 +95,7 @@ int ompi_mpi_finalize(void) opal_list_item_t *item; struct timeval ompistart, ompistop; ompi_rte_collective_t *coll; + ompi_communicator_t *comm_world; ompi_proc_t** procs; size_t nprocs; @@ -117,6 +118,12 @@ int ompi_mpi_finalize(void) return MPI_ERR_OTHER; } + /* Extra barrier to flush MPI */ + comm_world = &ompi_mpi_comm_world.comm; + if (ompi_comm_size(comm_world) > 1) { + comm_world->c_coll.coll_barrier(comm_world, comm_world->c_coll.coll_barrier_module); + } + ompi_mpiext_fini(); /* Per MPI-2:4.8, we have to free MPI_COMM_SELF before doing