coll/libnbc: fix MPI_IN_PLACE handling in i{gather,scatter}[v]
MPI_IN_PLACE is only relevant on the root task, so only test is there Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
Этот коммит содержится в:
родитель
1a8a276914
Коммит
fe4c4e95eb
@ -8,7 +8,7 @@
|
||||
* Copyright (c) 2013 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. 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 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
@ -46,13 +46,14 @@ int ompi_coll_libnbc_igather(const void* sendbuf, int sendcount, MPI_Datatype se
|
||||
int rank, p, res;
|
||||
MPI_Aint rcvext = 0;
|
||||
NBC_Schedule *schedule;
|
||||
char *rbuf, inplace;
|
||||
char *rbuf, inplace = 0;
|
||||
NBC_Handle *handle;
|
||||
ompi_coll_libnbc_module_t *libnbc_module = (ompi_coll_libnbc_module_t*) module;
|
||||
|
||||
NBC_IN_PLACE(sendbuf, recvbuf, inplace);
|
||||
|
||||
rank = ompi_comm_rank (comm);
|
||||
if (root == rank) {
|
||||
NBC_IN_PLACE(sendbuf, recvbuf, inplace);
|
||||
}
|
||||
p = ompi_comm_size (comm);
|
||||
|
||||
if (rank == root) {
|
||||
|
@ -8,7 +8,7 @@
|
||||
* Copyright (c) 2013 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. 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 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
@ -31,13 +31,14 @@ int ompi_coll_libnbc_igatherv(const void* sendbuf, int sendcount, MPI_Datatype s
|
||||
int rank, p, res;
|
||||
MPI_Aint rcvext = 0;
|
||||
NBC_Schedule *schedule;
|
||||
char *rbuf, inplace;
|
||||
char *rbuf, inplace = 0;
|
||||
NBC_Handle *handle;
|
||||
ompi_coll_libnbc_module_t *libnbc_module = (ompi_coll_libnbc_module_t*) module;
|
||||
|
||||
NBC_IN_PLACE(sendbuf, recvbuf, inplace);
|
||||
|
||||
rank = ompi_comm_rank (comm);
|
||||
if (root == rank) {
|
||||
NBC_IN_PLACE(sendbuf, recvbuf, inplace);
|
||||
}
|
||||
p = ompi_comm_size (comm);
|
||||
|
||||
if (rank == root) {
|
||||
|
@ -10,7 +10,7 @@
|
||||
* Copyright (c) 2013 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. 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.
|
||||
*
|
||||
* Author(s): Torsten Hoefler <htor@cs.indiana.edu>
|
||||
@ -47,13 +47,15 @@ int ompi_coll_libnbc_iscatter (const void* sendbuf, int sendcount, MPI_Datatype
|
||||
int rank, p, res;
|
||||
MPI_Aint sndext = 0;
|
||||
NBC_Schedule *schedule;
|
||||
char *sbuf, inplace;
|
||||
char *sbuf, inplace = 0;
|
||||
NBC_Handle *handle;
|
||||
ompi_coll_libnbc_module_t *libnbc_module = (ompi_coll_libnbc_module_t*) module;
|
||||
|
||||
NBC_IN_PLACE(sendbuf, recvbuf, inplace);
|
||||
|
||||
rank = ompi_comm_rank (comm);
|
||||
if (root == rank) {
|
||||
NBC_IN_PLACE(sendbuf, recvbuf, inplace);
|
||||
}
|
||||
p = ompi_comm_size (comm);
|
||||
|
||||
if (rank == root) {
|
||||
|
@ -10,7 +10,7 @@
|
||||
* Copyright (c) 2013 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. 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.
|
||||
*
|
||||
* Author(s): Torsten Hoefler <htor@cs.indiana.edu>
|
||||
@ -30,13 +30,15 @@ int ompi_coll_libnbc_iscatterv(const void* sendbuf, const int *sendcounts, const
|
||||
int rank, p, res;
|
||||
MPI_Aint sndext;
|
||||
NBC_Schedule *schedule;
|
||||
char *sbuf, inplace;
|
||||
char *sbuf, inplace = 0;
|
||||
NBC_Handle *handle;
|
||||
ompi_coll_libnbc_module_t *libnbc_module = (ompi_coll_libnbc_module_t*) module;
|
||||
|
||||
NBC_IN_PLACE(sendbuf, recvbuf, inplace);
|
||||
|
||||
rank = ompi_comm_rank (comm);
|
||||
if (root == rank) {
|
||||
NBC_IN_PLACE(sendbuf, recvbuf, inplace);
|
||||
}
|
||||
|
||||
p = ompi_comm_size (comm);
|
||||
|
||||
schedule = OBJ_NEW(NBC_Schedule);
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user