diff --git a/3rd-party/openpmix b/3rd-party/openpmix index 8ab6d680b90afd6e61766220a8724065a1b554a7..5bd785db8a3f21efd472bebf78ce063171d7e586 160000 --- a/3rd-party/openpmix +++ b/3rd-party/openpmix @@ -1 +1 @@ -Subproject commit 8ab6d680b90afd6e61766220a8724065a1b554a7 +Subproject commit 5bd785db8a3f21efd472bebf78ce063171d7e586 diff --git a/3rd-party/prrte b/3rd-party/prrte index b68a0acb32cfc0d3c19249e5514820555bcf438b..7b0d8defa460a69956abf673ee33d467e28f98d8 160000 --- a/3rd-party/prrte +++ b/3rd-party/prrte @@ -1 +1 @@ -Subproject commit b68a0acb32cfc0d3c19249e5514820555bcf438b +Subproject commit 7b0d8defa460a69956abf673ee33d467e28f98d8 diff --git a/README.md b/README.md index 8915e4847b09096c337562de403db6775d329873..5cf58b3c21b015c09509f015aad27acf9da229d0 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +Copyright (c) 2025 Huawei Technologies Co., Ltd. All rights + reserved. # Open MPI [The Open MPI Project](https://www.open-mpi.org/) is an open source diff --git a/config/oac b/config/oac index dfff67569fb72dbf8d73a1dcf74d091dad93f71b..add67c2ea77a5bbda9361e741107ea5544e66b1d 160000 --- a/config/oac +++ b/config/oac @@ -1 +1 @@ -Subproject commit dfff67569fb72dbf8d73a1dcf74d091dad93f71b +Subproject commit add67c2ea77a5bbda9361e741107ea5544e66b1d diff --git a/ompi/instance/instance.c b/ompi/instance/instance.c index 31df5a37592d60b7b50cc14518e28c3e66fc205c..34182e33f8f7671a4731f0813e07f5fae4e60906 100644 --- a/ompi/instance/instance.c +++ b/ompi/instance/instance.c @@ -114,7 +114,7 @@ OBJ_CLASS_INSTANCE(ompi_instance_t, opal_infosubscriber_t, ompi_instance_constru static mca_base_framework_t *ompi_framework_dependencies[] = { &ompi_hook_base_framework, &ompi_op_base_framework, &opal_allocator_base_framework, &opal_rcache_base_framework, &opal_mpool_base_framework, &opal_smsc_base_framework, - &ompi_bml_base_framework, &ompi_pml_base_framework, NULL, + &ompi_bml_base_framework, &ompi_pml_base_framework, &ompi_coll_base_framework, &ompi_osc_base_framework, NULL, }; static mca_base_framework_t *ompi_lazy_frameworks[] = { @@ -403,6 +403,10 @@ static int ompi_mpi_instance_init_common (int argc, char **argv) /* open the ompi hook framework */ for (int i = 0 ; ompi_framework_dependencies[i] ; ++i) { + if (ompi_framework_dependencies[i] == &ompi_coll_base_framework || + ompi_framework_dependencies[i] == &ompi_osc_base_framework) { + continue; + } ret = mca_base_framework_open (ompi_framework_dependencies[i], 0); if (OPAL_UNLIKELY(OPAL_SUCCESS != ret)) { char error_msg[256]; @@ -470,13 +474,6 @@ static int ompi_mpi_instance_init_common (int argc, char **argv) return ompi_instance_print_error ("ompi_info_init_env() failed", ret); } - /* declare our presence for interlib coordination, and - * register for callbacks when other libs declare. XXXXXX -- TODO -- figure out how - * to specify the thread level when different instances may request different levels. */ - if (OMPI_SUCCESS != (ret = ompi_interlib_declare(MPI_THREAD_MULTIPLE, OMPI_IDENT_STRING))) { - return ompi_instance_print_error ("ompi_interlib_declare", ret); - } - /* initialize datatypes. This step should be done early as it will * create the local convertor and local arch used in the proc * init. @@ -536,6 +533,12 @@ static int ompi_mpi_instance_init_common (int argc, char **argv) return ompi_instance_print_error (error_msg, ret); } + /* declare our presence for interlib coordination, and + * register for callbacks when other libs declare. XXXXXX -- TODO -- figure out how + * to specify the thread level when different instances may request different levels. */ + if (OMPI_SUCCESS != (ret = ompi_interlib_declare(MPI_THREAD_MULTIPLE, OMPI_IDENT_STRING))) { + return ompi_instance_print_error ("ompi_interlib_declare", ret); + } OMPI_TIMING_IMPORT_OPAL("orte_init"); OMPI_TIMING_NEXT("rte_init-commit");