1
1

spml/yoda: MCA_PML(add_procs) all procs from oshmem_comm_world

and fix oshmem_group_proc_{init,create} so they use the number of procs in oshmem_comm_world

Thanks Debendra Das for the report and Josh Ladd for the guidance

Fixes open-mpi/ompi#1966
Этот коммит содержится в:
Gilles Gouaillardet 2016-08-17 14:07:46 +09:00
родитель 96c7762050
Коммит 6b7bc64101
2 изменённых файлов: 11 добавлений и 6 удалений

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

@ -2,7 +2,7 @@
/*
* Copyright (c) 2013-2015 Mellanox Technologies, Inc.
* All rights reserved.
* Copyright (c) 2014 Research Organization for Information Science
* Copyright (c) 2014-2016 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
* reserved.
@ -641,6 +641,12 @@ int mca_spml_yoda_add_procs(oshmem_proc_t** procs, size_t nprocs)
goto cleanup_and_return;
}
/* create_btl_idx requires the proc was add_proc'ed, so do it now */
rc = MCA_PML_CALL(add_procs(procs, nprocs));
if (OMPI_SUCCESS != rc) {
goto cleanup_and_return;
}
/* create btl index and map */
rc = create_btl_list();
if (OSHMEM_SUCCESS != rc) {

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

@ -1,9 +1,9 @@
/*
* Copyright (c) 2013 Mellanox Technologies, Inc.
* All rights reserved.
* Copyright (c) 2014-2015 Research Organization for Information Science
* Copyright (c) 2014-2016 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2016 ARM, Inc. All rights reserved.
* $COPYRIGHT$
*
@ -79,8 +79,7 @@ int oshmem_proc_group_init(void)
== (oshmem_group_all =
oshmem_proc_group_create(0,
1,
oshmem_num_procs()))) {
oshmem_proc_group_destroy(oshmem_group_all);
ompi_comm_size(oshmem_comm_world)))) {
return OSHMEM_ERROR;
}
@ -151,7 +150,7 @@ oshmem_group_t* oshmem_proc_group_create(int pe_start,
group->my_pe = oshmem_proc_pe(oshmem_proc_local());
group->is_member = 0;
for (i = 0 ; i < oshmem_num_procs() ; i++) {
for (i = 0 ; i < ompi_comm_size(oshmem_comm_world) ; i++) {
proc = oshmem_proc_find(i);
if (NULL == proc) {
opal_output(0,