1
1

Merge pull request #3469 from rhc54/topic/nidmap

Do not pass topologies during tree spawn of daemons as there is no wa…
Этот коммит содержится в:
Ralph Castain 2017-05-08 06:22:50 -07:00 коммит произвёл GitHub
родитель 9841ad3035 180809f2ef
Коммит 42d31454a5
4 изменённых файлов: 84 добавлений и 78 удалений

Просмотреть файл

@ -1544,51 +1544,34 @@ int orte_plm_base_orted_append_basic_args(int *argc, char ***argv,
opal_argv_append(argc, argv, orte_xterm);
}
/*
* Pass along the Aggregate MCA Parameter Sets
*/
/* Add the 'prefix' param */
tmp_value = NULL;
loc_id = mca_base_var_find("opal", "mca", "base", "envar_file_prefix");
loc_id = mca_base_var_find("opal", "mca", "base", "param_files");
if (loc_id < 0) {
rc = OPAL_ERR_NOT_FOUND;
ORTE_ERROR_LOG(rc);
return rc;
}
tmp_value = NULL;
rc = mca_base_var_get_value(loc_id, &tmp_value, NULL, NULL);
if (ORTE_SUCCESS != rc) {
ORTE_ERROR_LOG(rc);
return rc;
}
if( NULL != tmp_value && NULL != tmp_value[0] ) {
/* Could also use the short version '-tune'
* but being verbose has some value
*/
opal_argv_append(argc, argv, "-mca");
opal_argv_append(argc, argv, "mca_base_envar_file_prefix");
opal_argv_append(argc, argv, tmp_value[0]);
if (NULL != tmp_value && NULL != tmp_value[0]) {
rc = strcmp(tmp_value[0], "none");
} else {
rc = 1;
}
tmp_value2 = NULL;
loc_id = mca_base_var_find("opal", "mca", "base", "param_file_prefix");
mca_base_var_get_value(loc_id, &tmp_value2, NULL, NULL);
if( NULL != tmp_value2 && NULL != tmp_value2[0] ) {
/* Could also use the short version '-am'
* but being verbose has some value
if (0 != rc) {
/*
* Pass along the Aggregate MCA Parameter Sets
*/
opal_argv_append(argc, argv, "-"OPAL_MCA_CMD_LINE_ID);
opal_argv_append(argc, argv, "mca_base_param_file_prefix");
opal_argv_append(argc, argv, tmp_value2[0]);
orte_show_help("help-plm-base.txt", "deprecated-amca", true);
}
if ((NULL != tmp_value && NULL != tmp_value[0])
|| (NULL != tmp_value2 && NULL != tmp_value2[0])) {
/* Add the 'path' param */
/* Add the 'prefix' param */
tmp_value = NULL;
loc_id = mca_base_var_find("opal", "mca", "base", "param_file_path");
loc_id = mca_base_var_find("opal", "mca", "base", "envar_file_prefix");
if (loc_id < 0) {
rc = OPAL_ERR_NOT_FOUND;
ORTE_ERROR_LOG(rc);
return rc;
}
@ -1598,39 +1581,76 @@ int orte_plm_base_orted_append_basic_args(int *argc, char ***argv,
return rc;
}
if( NULL != tmp_value && NULL != tmp_value[0] ) {
opal_argv_append(argc, argv, "-"OPAL_MCA_CMD_LINE_ID);
opal_argv_append(argc, argv, "mca_base_param_file_path");
/* Could also use the short version '-tune'
* but being verbose has some value
*/
opal_argv_append(argc, argv, "-mca");
opal_argv_append(argc, argv, "mca_base_envar_file_prefix");
opal_argv_append(argc, argv, tmp_value[0]);
}
/* Add the 'path' param */
opal_argv_append(argc, argv, "-"OPAL_MCA_CMD_LINE_ID);
opal_argv_append(argc, argv, "mca_base_param_file_path_force");
tmp_value2 = NULL;
loc_id = mca_base_var_find("opal", "mca", "base", "param_file_prefix");
mca_base_var_get_value(loc_id, &tmp_value2, NULL, NULL);
if( NULL != tmp_value2 && NULL != tmp_value2[0] ) {
/* Could also use the short version '-am'
* but being verbose has some value
*/
opal_argv_append(argc, argv, "-"OPAL_MCA_CMD_LINE_ID);
opal_argv_append(argc, argv, "mca_base_param_file_prefix");
opal_argv_append(argc, argv, tmp_value2[0]);
orte_show_help("help-plm-base.txt", "deprecated-amca", true);
}
tmp_value = NULL;
loc_id = mca_base_var_find("opal", "mca", "base", "param_file_path_force");
if (loc_id < 0) {
rc = OPAL_ERR_NOT_FOUND;
ORTE_ERROR_LOG(rc);
return rc;
}
rc = mca_base_var_get_value(loc_id, &tmp_value, NULL, NULL);
if (OPAL_SUCCESS != rc) {
ORTE_ERROR_LOG(rc);
return rc;
}
if( NULL == tmp_value || NULL == tmp_value[0] ) {
/* Get the current working directory */
tmp_force = (char *) malloc(sizeof(char) * OPAL_PATH_MAX);
if (NULL == getcwd(tmp_force, OPAL_PATH_MAX)) {
free(tmp_force);
tmp_force = strdup("");
if ((NULL != tmp_value && NULL != tmp_value[0])
|| (NULL != tmp_value2 && NULL != tmp_value2[0])) {
/* Add the 'path' param */
tmp_value = NULL;
loc_id = mca_base_var_find("opal", "mca", "base", "param_file_path");
if (loc_id < 0) {
ORTE_ERROR_LOG(rc);
return rc;
}
rc = mca_base_var_get_value(loc_id, &tmp_value, NULL, NULL);
if (ORTE_SUCCESS != rc) {
ORTE_ERROR_LOG(rc);
return rc;
}
if( NULL != tmp_value && NULL != tmp_value[0] ) {
opal_argv_append(argc, argv, "-"OPAL_MCA_CMD_LINE_ID);
opal_argv_append(argc, argv, "mca_base_param_file_path");
opal_argv_append(argc, argv, tmp_value[0]);
}
opal_argv_append(argc, argv, tmp_force);
free(tmp_force);
} else {
opal_argv_append(argc, argv, tmp_value[0]);
/* Add the 'path' param */
opal_argv_append(argc, argv, "-"OPAL_MCA_CMD_LINE_ID);
opal_argv_append(argc, argv, "mca_base_param_file_path_force");
tmp_value = NULL;
loc_id = mca_base_var_find("opal", "mca", "base", "param_file_path_force");
if (loc_id < 0) {
rc = OPAL_ERR_NOT_FOUND;
ORTE_ERROR_LOG(rc);
return rc;
}
rc = mca_base_var_get_value(loc_id, &tmp_value, NULL, NULL);
if (OPAL_SUCCESS != rc) {
ORTE_ERROR_LOG(rc);
return rc;
}
if( NULL == tmp_value || NULL == tmp_value[0] ) {
/* Get the current working directory */
tmp_force = (char *) malloc(sizeof(char) * OPAL_PATH_MAX);
if (NULL == getcwd(tmp_force, OPAL_PATH_MAX)) {
free(tmp_force);
tmp_force = strdup("");
}
opal_argv_append(argc, argv, tmp_force);
free(tmp_force);
} else {
opal_argv_append(argc, argv, tmp_value[0]);
}
}
}

Просмотреть файл

@ -800,15 +800,6 @@ static int remote_spawn(opal_buffer_t *launch)
goto cleanup;
}
/* extract and update the daemon map */
if (ORTE_SUCCESS != (rc = orte_util_decode_daemon_nodemap(launch))) {
ORTE_ERROR_LOG(rc);
goto cleanup;
}
/* since we are tree-spawning, we need to update the routing plan */
orte_routed.update_routing_plan(NULL);
/* get the updated routing list */
rtmod = orte_rml.get_routed(orte_coll_conduit);
OBJ_CONSTRUCT(&coll, opal_list_t);
@ -1177,12 +1168,6 @@ static void launch_daemons(int fd, short args, void *cbdata)
OBJ_RELEASE(orte_tree_launch_cmd);
goto cleanup;
}
/* construct a nodemap of all daemons we know about */
if (ORTE_SUCCESS != (rc = orte_util_encode_nodemap(orte_tree_launch_cmd))) {
ORTE_ERROR_LOG(rc);
OBJ_RELEASE(orte_tree_launch_cmd);
goto cleanup;
}
/* get the orted job data object */
if (NULL == (jdatorted = orte_get_job_data_object(ORTE_PROC_MY_NAME->jobid))) {

Просмотреть файл

@ -413,7 +413,7 @@ int orte_rmaps_base_get_target_nodes(opal_list_t *allocated_nodes, orte_std_cntr
* are getting for an initial map of a job,
* then mark all nodes as unmapped
*/
ORTE_FLAG_UNSET(node, ORTE_NODE_FLAG_MAPPED);
ORTE_FLAG_UNSET(node, ORTE_NODE_FLAG_MAPPED);
}
if (NULL == nd || NULL == nd->daemon ||
NULL == node->daemon ||

Просмотреть файл

@ -447,7 +447,6 @@ int orte_util_nidmap_create(char **regex)
asprintf(&tmp2, "%s@%s", nodenames, tmp);
free(nodenames);
free(tmp);
*regex = tmp2;
return ORTE_SUCCESS;
}
@ -760,9 +759,10 @@ int orte_util_nidmap_parse(char *regex)
*ptr = '\0';
++ptr;
rng->cnt = strtoul(ptr, NULL, 10);
} else {
rng->cnt = 1;
}
/* convert the number - since it might be a range,
* save the remainder pointer */
/* convert the number */
rng->vpid = strtoul(dvpids[n], NULL, 10);
}
opal_argv_free(dvpids);
@ -797,16 +797,17 @@ int orte_util_nidmap_parse(char *regex)
nd->daemon = proc;
}
++cnt;
if (cnt == rng->cnt) {
if (rng->cnt <= cnt) {
rng = (orte_regex_range_t*)opal_list_get_next(&rng->super);
if (NULL == rng) {
ORTE_ERROR_LOG(ORTE_ERR_NOT_FOUND);
return ORTE_ERR_NOT_FOUND;
}
cnt = 0;
}
}
/* unpdate num procs */
/* update num procs */
if (orte_process_info.num_procs != daemons->num_procs) {
orte_process_info.num_procs = daemons->num_procs;
/* need to update the routing plan */