Merge pull request #7168 from wbailey2/pr/fix-yield_when_idle
v4.0.x: schizo/ompi: correctly handle the yield_when_idle option
Этот коммит содержится в:
Коммит
93c879962e
@ -17,7 +17,7 @@
|
|||||||
* Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
|
* Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
|
||||||
* Copyright (c) 2015 Mellanox Technologies, Inc.
|
* Copyright (c) 2015 Mellanox Technologies, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2016 Research Organization for Information Science
|
* Copyright (c) 2016-2019 Research Organization for Information Science
|
||||||
* and Technology (RIST). All rights reserved.
|
* and Technology (RIST). All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
@ -82,6 +82,7 @@ static bool show_default_mca_params = false;
|
|||||||
static bool show_file_mca_params = false;
|
static bool show_file_mca_params = false;
|
||||||
static bool show_enviro_mca_params = false;
|
static bool show_enviro_mca_params = false;
|
||||||
static bool show_override_mca_params = false;
|
static bool show_override_mca_params = false;
|
||||||
|
static bool ompi_mpi_oversubscribe = false;
|
||||||
|
|
||||||
int ompi_mpi_register_params(void)
|
int ompi_mpi_register_params(void)
|
||||||
{
|
{
|
||||||
@ -108,13 +109,18 @@ int ompi_mpi_register_params(void)
|
|||||||
* opal_progress: decide whether to yield and the event library
|
* opal_progress: decide whether to yield and the event library
|
||||||
* tick rate
|
* tick rate
|
||||||
*/
|
*/
|
||||||
/* JMS: Need ORTE data here -- set this to 0 when
|
ompi_mpi_oversubscribe = false;
|
||||||
exactly/under-subscribed, or 1 when oversubscribed */
|
(void) mca_base_var_register("ompi", "mpi", NULL, "oversubscribe",
|
||||||
ompi_mpi_yield_when_idle = false;
|
"Internal MCA parameter set by the runtime environment when oversubscribing nodes",
|
||||||
|
MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0,
|
||||||
|
OPAL_INFO_LVL_9,
|
||||||
|
MCA_BASE_VAR_SCOPE_READONLY,
|
||||||
|
&ompi_mpi_oversubscribe);
|
||||||
|
ompi_mpi_yield_when_idle = ompi_mpi_oversubscribe;
|
||||||
(void) mca_base_var_register("ompi", "mpi", NULL, "yield_when_idle",
|
(void) mca_base_var_register("ompi", "mpi", NULL, "yield_when_idle",
|
||||||
"Yield the processor when waiting for MPI communication (for MPI processes, will default to 1 when oversubscribing nodes)",
|
"Yield the processor when waiting for MPI communication (for MPI processes, will default to 1 when oversubscribing nodes)",
|
||||||
MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0,
|
MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0,
|
||||||
OPAL_INFO_LVL_9,
|
OPAL_INFO_LVL_5,
|
||||||
MCA_BASE_VAR_SCOPE_READONLY,
|
MCA_BASE_VAR_SCOPE_READONLY,
|
||||||
&ompi_mpi_yield_when_idle);
|
&ompi_mpi_yield_when_idle);
|
||||||
|
|
||||||
|
@ -15,8 +15,8 @@
|
|||||||
* Copyright (c) 2011-2017 Oak Ridge National Labs. All rights reserved.
|
* Copyright (c) 2011-2017 Oak Ridge National Labs. All rights reserved.
|
||||||
* Copyright (c) 2017 UT-Battelle, LLC. All rights reserved.
|
* Copyright (c) 2017 UT-Battelle, LLC. All rights reserved.
|
||||||
* Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
* Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||||
* Copyright (c) 2015 Research Organization for Information Science
|
* Copyright (c) 2015-2019 Research Organization for Information Science
|
||||||
* and Technology (RIST). All rights reserved.
|
* and Technology (RIST). All rights reserved.
|
||||||
* Copyright (c) 2018 IBM Corporation. All rights reserved.
|
* Copyright (c) 2018 IBM Corporation. All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
@ -914,9 +914,9 @@ static int setup_fork(orte_job_t *jdata,
|
|||||||
|
|
||||||
/* setup yield schedule - do not override any user-supplied directive! */
|
/* setup yield schedule - do not override any user-supplied directive! */
|
||||||
if (oversubscribed) {
|
if (oversubscribed) {
|
||||||
opal_setenv("OMPI_MCA_mpi_yield_when_idle", "1", false, &app->env);
|
opal_setenv("OMPI_MCA_mpi_oversubscribe", "1", true, &app->env);
|
||||||
} else {
|
} else {
|
||||||
opal_setenv("OMPI_MCA_mpi_yield_when_idle", "0", false, &app->env);
|
opal_setenv("OMPI_MCA_mpi_oversubscribe", "0", true, &app->env);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set the app_context number into the environment */
|
/* set the app_context number into the environment */
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user