Skip to content

Commit 4c6af84

Browse files
authored
Merge pull request #9232 from awlauria/affinity_v4.1.x
v4.1.x: Fix wrong affinity under LSF with membind option.
2 parents 1d046ee + 74051e8 commit 4c6af84

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

orte/mca/rmaps/seq/rmaps_seq.c

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ static int orte_rmaps_seq_map(orte_job_t *jdata)
105105
opal_list_t node_list, *seq_list, sq_list;
106106
orte_proc_t *proc;
107107
mca_base_component_t *c = &mca_rmaps_seq_component.base_version;
108-
char *hosts = NULL, *sep, *eptr;
108+
char *hosts = NULL, *sep, *eptr, *membind_opt;
109109
FILE *fp;
110110
opal_hwloc_resource_type_t rtype;
111111

@@ -189,6 +189,23 @@ static int orte_rmaps_seq_map(orte_job_t *jdata)
189189
eptr--;
190190
}
191191
*(eptr+1) = 0;
192+
/*
193+
* If the submitted LSF job has memory binding related resource requirement, after
194+
* the cpu id list there are memory binding options.
195+
*
196+
* The following is the format of LSB_AFFINITY_HOSTFILE file:
197+
*
198+
* Host1 0,1,2,3 0 2
199+
* Host1 4,5,6,7 1 2
200+
*
201+
* Each line includes: host_name, cpu_id_list, NUMA_node_id_list, and memory_policy.
202+
* In this fix we will drop the last two sections (NUMA_node_id_list and memory_policy)
203+
* of each line and keep them in 'membind_opt' for future use.
204+
*/
205+
if (NULL != (membind_opt = strchr(sep, ' '))) {
206+
*membind_opt = '\0';
207+
membind_opt++;
208+
}
192209
sq->cpuset = strdup(sep);
193210
}
194211

0 commit comments

Comments
 (0)