At coll_select time we can not check whether the communicator has a
virtual topology. Remove code checking for a virtual topology until this flag is set before coll_select. This commit was SVN r29344.
Этот коммит содержится в:
родитель
539fab1600
Коммит
6232ef3bfb
@ -179,20 +179,19 @@ int mca_coll_base_comm_select(ompi_communicator_t * comm)
|
||||
COPY(avail->ac_module, comm, iscatter);
|
||||
COPY(avail->ac_module, comm, iscatterv);
|
||||
|
||||
if (OMPI_COMM_IS_GRAPH(comm) || OMPI_COMM_IS_DIST_GRAPH(comm) ||
|
||||
OMPI_COMM_IS_CART(comm)) {
|
||||
COPY(avail->ac_module, comm, neighbor_allgather);
|
||||
COPY(avail->ac_module, comm, neighbor_allgatherv);
|
||||
COPY(avail->ac_module, comm, neighbor_alltoall);
|
||||
COPY(avail->ac_module, comm, neighbor_alltoallv);
|
||||
COPY(avail->ac_module, comm, neighbor_alltoallw);
|
||||
/* We can not reliably check if this comm has a topology
|
||||
* at this time. The flags are set *after* coll_select */
|
||||
COPY(avail->ac_module, comm, neighbor_allgather);
|
||||
COPY(avail->ac_module, comm, neighbor_allgatherv);
|
||||
COPY(avail->ac_module, comm, neighbor_alltoall);
|
||||
COPY(avail->ac_module, comm, neighbor_alltoallv);
|
||||
COPY(avail->ac_module, comm, neighbor_alltoallw);
|
||||
|
||||
COPY(avail->ac_module, comm, ineighbor_allgather);
|
||||
COPY(avail->ac_module, comm, ineighbor_allgatherv);
|
||||
COPY(avail->ac_module, comm, ineighbor_alltoall);
|
||||
COPY(avail->ac_module, comm, ineighbor_alltoallv);
|
||||
COPY(avail->ac_module, comm, ineighbor_alltoallw);
|
||||
}
|
||||
COPY(avail->ac_module, comm, ineighbor_allgather);
|
||||
COPY(avail->ac_module, comm, ineighbor_allgatherv);
|
||||
COPY(avail->ac_module, comm, ineighbor_alltoall);
|
||||
COPY(avail->ac_module, comm, ineighbor_alltoallv);
|
||||
COPY(avail->ac_module, comm, ineighbor_alltoallw);
|
||||
|
||||
/* release the original module reference and the list item */
|
||||
OBJ_RELEASE(avail->ac_module);
|
||||
@ -236,22 +235,9 @@ int mca_coll_base_comm_select(ompi_communicator_t * comm)
|
||||
(NULL == comm->c_coll.coll_ireduce_scatter) ||
|
||||
((OMPI_COMM_IS_INTRA(comm)) && (NULL == comm->c_coll.coll_iscan)) ||
|
||||
(NULL == comm->c_coll.coll_iscatter) ||
|
||||
(NULL == comm->c_coll.coll_iscatterv) ||
|
||||
/* neighborhood collectives only need to be defined if this
|
||||
* is a virtual topology communicator */
|
||||
((OMPI_COMM_IS_GRAPH(comm) || OMPI_COMM_IS_DIST_GRAPH(comm) ||
|
||||
OMPI_COMM_IS_CART(comm)) &&
|
||||
((NULL == comm->c_coll.coll_neighbor_allgather) ||
|
||||
(NULL == comm->c_coll.coll_neighbor_allgatherv) ||
|
||||
(NULL == comm->c_coll.coll_neighbor_alltoall) ||
|
||||
(NULL == comm->c_coll.coll_neighbor_alltoallv) ||
|
||||
(NULL == comm->c_coll.coll_neighbor_alltoallw) ||
|
||||
(NULL == comm->c_coll.coll_ineighbor_allgather) ||
|
||||
(NULL == comm->c_coll.coll_ineighbor_allgatherv) ||
|
||||
(NULL == comm->c_coll.coll_ineighbor_alltoall) ||
|
||||
(NULL == comm->c_coll.coll_ineighbor_alltoallv) ||
|
||||
(NULL == comm->c_coll.coll_ineighbor_alltoallw)))
|
||||
) {
|
||||
(NULL == comm->c_coll.coll_iscatterv)) {
|
||||
/* TODO -- Once the topologu flags are set before coll_select then
|
||||
* check if neighborhood collectives have been set. */
|
||||
mca_coll_base_comm_unselect(comm);
|
||||
return OMPI_ERR_NOT_FOUND;
|
||||
}
|
||||
|
@ -205,13 +205,11 @@ libnbc_comm_query(struct ompi_communicator_t *comm,
|
||||
module->super.coll_iscatter = ompi_coll_libnbc_iscatter;
|
||||
module->super.coll_iscatterv = ompi_coll_libnbc_iscatterv;
|
||||
|
||||
if (OMPI_COMM_IS_GRAPH(comm) || OMPI_COMM_IS_DIST_GRAPH(comm) || OMPI_COMM_IS_CART(comm)) {
|
||||
module->super.coll_ineighbor_allgather = ompi_coll_libnbc_ineighbor_allgather;
|
||||
module->super.coll_ineighbor_allgatherv = ompi_coll_libnbc_ineighbor_allgatherv;
|
||||
module->super.coll_ineighbor_alltoall = ompi_coll_libnbc_ineighbor_alltoall;
|
||||
module->super.coll_ineighbor_alltoallv = ompi_coll_libnbc_ineighbor_alltoallv;
|
||||
module->super.coll_ineighbor_alltoallw = ompi_coll_libnbc_ineighbor_alltoallw;
|
||||
}
|
||||
module->super.coll_ineighbor_allgather = ompi_coll_libnbc_ineighbor_allgather;
|
||||
module->super.coll_ineighbor_allgatherv = ompi_coll_libnbc_ineighbor_allgatherv;
|
||||
module->super.coll_ineighbor_alltoall = ompi_coll_libnbc_ineighbor_alltoall;
|
||||
module->super.coll_ineighbor_alltoallv = ompi_coll_libnbc_ineighbor_alltoallv;
|
||||
module->super.coll_ineighbor_alltoallw = ompi_coll_libnbc_ineighbor_alltoallw;
|
||||
}
|
||||
|
||||
module->super.ft_event = NULL;
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user