1
1

Merge pull request #645 from rhc54/topic/binding

Correct the way we handle binding to objects during comm_spawn
Этот коммит содержится в:
rhc54 2015-06-17 10:09:23 -07:00
родитель 8ab2b11f88 869b2891c4
Коммит e08ba4860f
4 изменённых файлов: 11 добавлений и 0 удалений

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

@ -224,6 +224,8 @@ void orte_plm_base_recv(int status, orte_process_name_t* sender,
jdata->bookmark = parent->bookmark;
}
}
/* provide the parent's last object */
jdata->bkmark_obj = parent->bkmark_obj;
/* launch it */
OPAL_OUTPUT_VERBOSE((5, orte_plm_base_framework.framework_output,

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

@ -500,6 +500,11 @@ int orte_rmaps_rr_byobj(orte_job_t *jdata,
"mca:rmaps:rr: found %u %s objects on node %s",
nobjs, hwloc_obj_type_string(target), node->name);
/* if this is a comm_spawn situation, start with the object
* where the parent left off and increment */
if (ORTE_JOBID_INVALID != jdata->originator.jobid) {
start = (jdata->bkmark_obj + 1) % nobjs;
}
/* compute the number of procs to go on this node */
nprocs = (node->slots - node->slots_inuse) / orte_rmaps_base.cpus_per_rank;
opal_output_verbose(2, orte_rmaps_base_framework.framework_output,

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

@ -651,6 +651,7 @@ static void orte_job_construct(orte_job_t* job)
ORTE_GLOBAL_ARRAY_BLOCK_SIZE);
job->map = NULL;
job->bookmark = NULL;
job->bkmark_obj = 0;
job->state = ORTE_JOB_STATE_UNDEF;
job->num_mapped = 0;

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

@ -333,6 +333,9 @@ typedef struct {
* indicates the node where we stopped
*/
orte_node_t *bookmark;
/* if we are binding, bookmark the index of the
* last object we bound to */
unsigned int bkmark_obj;
/* state of the overall job */
orte_job_state_t state;
/* number of procs mapped */