From 1edffb686928fc8914f50b2ea266a7e4dc094af4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=88=E5=AE=87=E9=9A=86?= Date: Thu, 11 Dec 2025 14:07:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B0=83=E7=94=A8spawn?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ompi/dpm/dpm.c | 2 ++ orte/mca/regx/base/regx_base_default_fns.c | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/ompi/dpm/dpm.c b/ompi/dpm/dpm.c index 435b5ce96ec..5382639bfe3 100644 --- a/ompi/dpm/dpm.c +++ b/ompi/dpm/dpm.c @@ -952,6 +952,8 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[], opal_argv_append_unique_nosize(&app->env, params, true); } + opal_argv_append_unique_nosize(&app->env, "OMPI_MCA_async_mpi_finalize=true", true); + /* see if user specified what to do with stdin - defaults to * not forwarding stdin to child processes - job-level key */ diff --git a/orte/mca/regx/base/regx_base_default_fns.c b/orte/mca/regx/base/regx_base_default_fns.c index 4e1645d16b5..6f1226f30b9 100644 --- a/orte/mca/regx/base/regx_base_default_fns.c +++ b/orte/mca/regx/base/regx_base_default_fns.c @@ -888,6 +888,17 @@ int orte_regx_base_parse_ppn(orte_job_t *jdata, char *regex) opal_list_t trk; int rc = ORTE_SUCCESS; + /* when performing a spawn, bookmark is first placed into the map + * condition is fucntion is called for the second time and map->mapping is round-robin */ + static bool re_enter = false; + + if (re_enter && ORTE_MAPPING_RR >= ORTE_GET_MAPPING_POLICY(jdata->map->mapping) && + jdata->bookmark != NULL && !ORTE_FLAG_TEST(jdata->bookmark, ORTE_NODE_FLAG_MAPPED)) { + OBJ_RETAIN(jdata->bookmark); + ORTE_FLAG_SET(jdata->bookmark, ORTE_NODE_FLAG_MAPPED); + opal_pointer_array_add(jdata->map->nodes, jdata->bookmark); + } + /* split the regex by app_context */ tmp = opal_argv_split(regex, '@'); @@ -971,6 +982,7 @@ int orte_regx_base_parse_ppn(orte_job_t *jdata, char *regex) } } + re_enter = true; return rc; } -- Gitee