1
1

Merge pull request #5596 from karasevb/fix_hwloc_numa_obj

Fixed the NUMA obj detection for hwloc ver >= 2.0.0
Этот коммит содержится в:
Artem Polyakov 2018-08-27 22:15:41 -07:00 коммит произвёл GitHub
родитель d02c19ecbe beb0697f24
Коммит 00d12c058f
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 15 добавлений и 1 удалений

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

@ -16,6 +16,8 @@
* Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
* Copyright (c) 2015-2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (C) 2018 Mellanox Technologies, Ltd.
* All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -1857,9 +1859,18 @@ static void sort_by_dist(hwloc_topology_t topo, char* device_name, opal_list_t *
if (!strcmp(device_obj->name, device_name)) {
/* find numa node containing this device */
obj = device_obj->parent;
#if HWLOC_API_VERSION < 0x20000
while ((obj != NULL) && (obj->type != HWLOC_OBJ_NODE)) {
obj = obj->parent;
}
#else
while (obj && !obj->memory_arity) {
obj = obj->parent; /* no memory child, walk up */
}
if (obj != NULL) {
obj = obj->memory_first_child;
}
#endif
if (obj == NULL) {
opal_output_verbose(5, opal_hwloc_base_framework.framework_output,
"hwloc:base:get_sorted_numa_list: NUMA node closest to %s wasn't found.",

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

@ -15,7 +15,7 @@
* Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
* Copyright (c) 2014 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2017 Mellanox Technologies, Inc.
* Copyright (c) 2017-2018 Mellanox Technologies, Inc.
* All rights reserved.
* $COPYRIGHT$
*
@ -331,6 +331,9 @@ static int mindist_map(orte_job_t *jdata)
}
}
}
/* first we need to fill summary object for root with information about nodes
* so we call opal_hwloc_base_get_nbobjs_by_type */
opal_hwloc_base_get_nbobjs_by_type(node->topology->topo, HWLOC_OBJ_NODE, 0, OPAL_HWLOC_AVAILABLE);
OBJ_CONSTRUCT(&numa_list, opal_list_t);
ret = opal_hwloc_get_sorted_numa_list(node->topology->topo, orte_rmaps_base.device, &numa_list);
if (ret > 1) {