1
1

ess/pmi: minor code readablility cleanup.

Split process name variable "name" to
- "wildcard_rank" for the cases where wildcard is used.
- "pname" for the case where reference to particular process is needed.
Этот коммит содержится в:
Artem Polyakov 2016-08-06 15:43:00 +06:00
родитель 44187b408c
Коммит 1351a7065c

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

@ -93,7 +93,7 @@ static int rte_init(void)
int u32, *u32ptr; int u32, *u32ptr;
uint16_t u16, *u16ptr; uint16_t u16, *u16ptr;
char **peers=NULL, *mycpuset, **cpusets=NULL; char **peers=NULL, *mycpuset, **cpusets=NULL;
opal_process_name_t name; opal_process_name_t wildcard_rank, pname;
size_t i; size_t i;
/* run the prolog */ /* run the prolog */
@ -137,8 +137,12 @@ static int rte_init(void)
ORTE_PROC_MY_NAME->vpid = OPAL_PROC_MY_NAME.vpid; ORTE_PROC_MY_NAME->vpid = OPAL_PROC_MY_NAME.vpid;
/* setup a name for retrieving data associated with the job */ /* setup a name for retrieving data associated with the job */
name.jobid = ORTE_PROC_MY_NAME->jobid; wildcard_rank.jobid = ORTE_PROC_MY_NAME->jobid;
name.vpid = ORTE_NAME_WILDCARD->vpid; wildcard_rank.vpid = ORTE_NAME_WILDCARD->vpid;
/* setup a name for retrieving proc-specific data */
pname.jobid = ORTE_PROC_MY_NAME->jobid;
pname.vpid = 0;
/* get our local rank from PMI */ /* get our local rank from PMI */
OPAL_MODEX_RECV_VALUE(ret, OPAL_PMIX_LOCAL_RANK, OPAL_MODEX_RECV_VALUE(ret, OPAL_PMIX_LOCAL_RANK,
@ -160,7 +164,7 @@ static int rte_init(void)
/* get max procs for this application */ /* get max procs for this application */
OPAL_MODEX_RECV_VALUE(ret, OPAL_PMIX_MAX_PROCS, OPAL_MODEX_RECV_VALUE(ret, OPAL_PMIX_MAX_PROCS,
&name, &u32ptr, OPAL_UINT32); &wildcard_rank, &u32ptr, OPAL_UINT32);
if (OPAL_SUCCESS != ret) { if (OPAL_SUCCESS != ret) {
error = "getting max procs"; error = "getting max procs";
goto error; goto error;
@ -169,7 +173,7 @@ static int rte_init(void)
/* get job size */ /* get job size */
OPAL_MODEX_RECV_VALUE(ret, OPAL_PMIX_JOB_SIZE, OPAL_MODEX_RECV_VALUE(ret, OPAL_PMIX_JOB_SIZE,
&name, &u32ptr, OPAL_UINT32); &wildcard_rank, &u32ptr, OPAL_UINT32);
if (OPAL_SUCCESS != ret) { if (OPAL_SUCCESS != ret) {
error = "getting job size"; error = "getting job size";
goto error; goto error;
@ -203,7 +207,7 @@ static int rte_init(void)
/* get the number of local peers - required for wireup of /* get the number of local peers - required for wireup of
* shared memory BTL */ * shared memory BTL */
OPAL_MODEX_RECV_VALUE(ret, OPAL_PMIX_LOCAL_SIZE, OPAL_MODEX_RECV_VALUE(ret, OPAL_PMIX_LOCAL_SIZE,
&name, &u32ptr, OPAL_UINT32); &wildcard_rank, &u32ptr, OPAL_UINT32);
if (OPAL_SUCCESS == ret) { if (OPAL_SUCCESS == ret) {
orte_process_info.num_local_peers = u32 - 1; // want number besides ourselves orte_process_info.num_local_peers = u32 - 1; // want number besides ourselves
} else { } else {
@ -234,7 +238,7 @@ static int rte_init(void)
/* retrieve our topology */ /* retrieve our topology */
val = NULL; val = NULL;
OPAL_MODEX_RECV_VALUE_OPTIONAL(ret, OPAL_PMIX_LOCAL_TOPO, OPAL_MODEX_RECV_VALUE_OPTIONAL(ret, OPAL_PMIX_LOCAL_TOPO,
&name, &val, OPAL_STRING); &wildcard_rank, &val, OPAL_STRING);
if (OPAL_SUCCESS == ret && NULL != val) { if (OPAL_SUCCESS == ret && NULL != val) {
/* load the topology */ /* load the topology */
if (0 != hwloc_topology_init(&opal_hwloc_topology)) { if (0 != hwloc_topology_init(&opal_hwloc_topology)) {
@ -293,7 +297,7 @@ static int rte_init(void)
error = "topology export"; error = "topology export";
goto error; goto error;
} }
if (OPAL_SUCCESS != (ret = opal_pmix.store_local(&name, kv))) { if (OPAL_SUCCESS != (ret = opal_pmix.store_local(&wildcard_rank, kv))) {
error = "topology store"; error = "topology store";
goto error; goto error;
} }
@ -310,12 +314,12 @@ static int rte_init(void)
} }
/* retrieve the local peers */ /* retrieve the local peers */
OPAL_MODEX_RECV_VALUE(ret, OPAL_PMIX_LOCAL_PEERS, OPAL_MODEX_RECV_VALUE(ret, OPAL_PMIX_LOCAL_PEERS,
&name, &val, OPAL_STRING); &wildcard_rank, &val, OPAL_STRING);
if (OPAL_SUCCESS == ret && NULL != val) { if (OPAL_SUCCESS == ret && NULL != val) {
peers = opal_argv_split(val, ','); peers = opal_argv_split(val, ',');
free(val); free(val);
/* and their cpusets, if available */ /* and their cpusets, if available */
OPAL_MODEX_RECV_VALUE_OPTIONAL(ret, OPAL_PMIX_LOCAL_CPUSETS, &name, &val, OPAL_STRING); OPAL_MODEX_RECV_VALUE_OPTIONAL(ret, OPAL_PMIX_LOCAL_CPUSETS, &wildcard_rank, &val, OPAL_STRING);
if (OPAL_SUCCESS == ret && NULL != val) { if (OPAL_SUCCESS == ret && NULL != val) {
cpusets = opal_argv_split(val, ':'); cpusets = opal_argv_split(val, ':');
free(val); free(val);
@ -339,13 +343,13 @@ static int rte_init(void)
} else { } else {
mycpuset = NULL; mycpuset = NULL;
} }
name.jobid = ORTE_PROC_MY_NAME->jobid; pname.jobid = ORTE_PROC_MY_NAME->jobid;
for (i=0; NULL != peers[i]; i++) { for (i=0; NULL != peers[i]; i++) {
kv = OBJ_NEW(opal_value_t); kv = OBJ_NEW(opal_value_t);
kv->key = strdup(OPAL_PMIX_LOCALITY); kv->key = strdup(OPAL_PMIX_LOCALITY);
kv->type = OPAL_UINT16; kv->type = OPAL_UINT16;
name.vpid = strtoul(peers[i], NULL, 10); pname.vpid = strtoul(peers[i], NULL, 10);
if (name.vpid == ORTE_PROC_MY_NAME->vpid) { if (pname.vpid == ORTE_PROC_MY_NAME->vpid) {
/* we are fully local to ourselves */ /* we are fully local to ourselves */
u16 = OPAL_PROC_ALL_LOCAL; u16 = OPAL_PROC_ALL_LOCAL;
} else if (NULL == mycpuset || NULL == cpusets[i] || } else if (NULL == mycpuset || NULL == cpusets[i] ||
@ -359,9 +363,9 @@ static int rte_init(void)
OPAL_OUTPUT_VERBOSE((1, orte_ess_base_framework.framework_output, OPAL_OUTPUT_VERBOSE((1, orte_ess_base_framework.framework_output,
"%s ess:pmi:locality: proc %s locality %x", "%s ess:pmi:locality: proc %s locality %x",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
ORTE_NAME_PRINT(&name), u16)); ORTE_NAME_PRINT(&pname), u16));
kv->data.uint16 = u16; kv->data.uint16 = u16;
ret = opal_pmix.store_local(&name, kv); ret = opal_pmix.store_local(&pname, kv);
if (OPAL_SUCCESS != ret) { if (OPAL_SUCCESS != ret) {
error = "local store of locality"; error = "local store of locality";
opal_argv_free(peers); opal_argv_free(peers);