diff --git a/ompi/runtime/ompi_mpi_init.c b/ompi/runtime/ompi_mpi_init.c index af03192735..34616380f3 100644 --- a/ompi/runtime/ompi_mpi_init.c +++ b/ompi/runtime/ompi_mpi_init.c @@ -17,7 +17,7 @@ * Copyright (c) 2008-2009 Sun Microsystems, Inc. All rights reserved. * Copyright (c) 2011 Sandia National Laboratories. All rights reserved. * Copyright (c) 2012-2013 Inria. All rights reserved. - * Copyright (c) 2014-2016 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. * Copyright (c) 2014-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 Mellanox Technologies Ltd. All rights reserved. @@ -640,10 +640,10 @@ int ompi_mpi_init(int argc, char **argv, int requested, int *provided) * if data exchange is required. The modex occurs solely across procs * in our job. If a barrier is required, the "modex" function will * perform it internally */ - active = true; opal_pmix.commit(); if (!opal_pmix_base_async_modex) { if (NULL != opal_pmix.fence_nb) { + active = true; opal_pmix.fence_nb(NULL, opal_pmix_collect_all_data, fence_release, (void*)&active); OMPI_LAZY_WAIT_FOR_COMPLETION(active); diff --git a/ompi/runtime/ompi_mpi_params.c b/ompi/runtime/ompi_mpi_params.c index 13b4c1e1bd..6d799032c7 100644 --- a/ompi/runtime/ompi_mpi_params.c +++ b/ompi/runtime/ompi_mpi_params.c @@ -14,7 +14,7 @@ * Copyright (c) 2007-2015 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2013 NVIDIA Corporation. All rights reserved. - * Copyright (c) 2013-2016 Intel, Inc. All rights reserved + * Copyright (c) 2013-2017 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 Research Organization for Information Science @@ -37,6 +37,7 @@ #include "ompi/runtime/params.h" #include "ompi/mca/rte/rte.h" +#include "opal/mca/pmix/base/base.h" #include "opal/util/argv.h" #include "opal/util/output.h" #include "opal/util/show_help.h" @@ -286,7 +287,11 @@ int ompi_mpi_register_params(void) MCA_BASE_VAR_SCOPE_READONLY, &ompi_mpi_dynamics_enabled); - ompi_async_mpi_init = false; + if (opal_pmix_base_async_modex) { + ompi_async_mpi_init = true; + } else { + ompi_async_mpi_init = false; + } (void) mca_base_var_register("ompi", "async", "mpi", "init", "Do not perform a barrier at the end of MPI_Init", MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0,