Initialize orte_coprocessors hash table to NULL. Delay coprocessor detection on HNP until after node topology final definition in case rmaps changes it. Minor spacing change.
Refs trac:3847 This commit was SVN r29504. The following Trac tickets were found above: Ticket 3847 --> https://svn.open-mpi.org/trac/ompi/ticket/3847
This commit is contained in:
parent
f2c9df9056
commit
604970a1a2
@ -431,43 +431,6 @@ static int rte_init(void)
|
||||
/* obviously, we have "reported" */
|
||||
jdata->num_reported = 1;
|
||||
|
||||
#if OPAL_HAVE_HWLOC
|
||||
{
|
||||
char *coprocessors, **sns;
|
||||
uint32_t h;
|
||||
int idx;
|
||||
|
||||
/* detect and add any coprocessors */
|
||||
coprocessors = opal_hwloc_base_find_coprocessors(opal_hwloc_topology);
|
||||
if (NULL != coprocessors) {
|
||||
/* init the hash table, if necessary */
|
||||
if (NULL == orte_coprocessors) {
|
||||
orte_coprocessors = OBJ_NEW(opal_hash_table_t);
|
||||
opal_hash_table_init(orte_coprocessors, orte_process_info.num_procs);
|
||||
}
|
||||
/* separate the serial numbers of the coprocessors
|
||||
* on this host
|
||||
*/
|
||||
sns = opal_argv_split(coprocessors, ',');
|
||||
for (idx=0; NULL != sns[idx]; idx++) {
|
||||
/* compute the hash */
|
||||
OPAL_HASH_STR(sns[idx], h);
|
||||
/* mark that this coprocessor is hosted by this node */
|
||||
opal_hash_table_set_value_uint32(orte_coprocessors, h, (void*)&(ORTE_PROC_MY_NAME->vpid));
|
||||
}
|
||||
opal_argv_free(sns);
|
||||
free(coprocessors);
|
||||
orte_coprocessors_detected = true;
|
||||
}
|
||||
/* see if I am on a coprocessor */
|
||||
coprocessors = opal_hwloc_base_check_on_coprocessor();
|
||||
if (NULL != coprocessors) {
|
||||
node->serial_number = coprocessors;
|
||||
orte_coprocessors_detected = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Routed system
|
||||
*/
|
||||
@ -549,11 +512,46 @@ static int rte_init(void)
|
||||
goto error;
|
||||
}
|
||||
#if OPAL_HAVE_HWLOC
|
||||
/* if a topology file was given, then the rmaps framework open
|
||||
* will have reset our topology. Ensure we always get the right
|
||||
* one by setting our node topology afterwards
|
||||
*/
|
||||
node->topology = opal_hwloc_topology;
|
||||
{
|
||||
char *coprocessors, **sns;
|
||||
uint32_t h;
|
||||
int idx;
|
||||
|
||||
/* if a topology file was given, then the rmaps framework open
|
||||
* will have reset our topology. Ensure we always get the right
|
||||
* one by setting our node topology afterwards
|
||||
*/
|
||||
node->topology = opal_hwloc_topology;
|
||||
|
||||
/* init the hash table, if necessary */
|
||||
if (NULL == orte_coprocessors) {
|
||||
orte_coprocessors = OBJ_NEW(opal_hash_table_t);
|
||||
opal_hash_table_init(orte_coprocessors, orte_process_info.num_procs);
|
||||
}
|
||||
/* detect and add any coprocessors */
|
||||
coprocessors = opal_hwloc_base_find_coprocessors(opal_hwloc_topology);
|
||||
if (NULL != coprocessors) {
|
||||
/* separate the serial numbers of the coprocessors
|
||||
* on this host
|
||||
*/
|
||||
sns = opal_argv_split(coprocessors, ',');
|
||||
for (idx=0; NULL != sns[idx]; idx++) {
|
||||
/* compute the hash */
|
||||
OPAL_HASH_STR(sns[idx], h);
|
||||
/* mark that this coprocessor is hosted by this node */
|
||||
opal_hash_table_set_value_uint32(orte_coprocessors, h, (void*)&(ORTE_PROC_MY_NAME->vpid));
|
||||
}
|
||||
opal_argv_free(sns);
|
||||
free(coprocessors);
|
||||
orte_coprocessors_detected = true;
|
||||
}
|
||||
/* see if I am on a coprocessor */
|
||||
coprocessors = opal_hwloc_base_check_on_coprocessor();
|
||||
if (NULL != coprocessors) {
|
||||
node->serial_number = coprocessors;
|
||||
orte_coprocessors_detected = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Open/select the odls */
|
||||
|
@ -411,7 +411,7 @@ void orte_plm_base_complete_setup(int fd, short args, void *cbdata)
|
||||
orte_node_t *node;
|
||||
uint32_t h;
|
||||
orte_vpid_t *vptr;
|
||||
int i, rc;
|
||||
int i, rc;
|
||||
|
||||
/* if coprocessors were detected, now is the time to
|
||||
* identify who is attached to what host - this info
|
||||
|
@ -70,7 +70,7 @@ char *orte_local_cpu_type = NULL;
|
||||
char *orte_local_cpu_model = NULL;
|
||||
char *orte_basename = NULL;
|
||||
bool orte_coprocessors_detected = false;
|
||||
opal_hash_table_t *orte_coprocessors;
|
||||
opal_hash_table_t *orte_coprocessors = NULL;
|
||||
|
||||
/* ORTE OOB port flags */
|
||||
bool orte_static_ports = false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user