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