Correctly forward the right module if we call another collective function. Kudos to
Edgar for figuring out this tricky bug. This commit was SVN r20267.
Этот коммит содержится в:
родитель
d5112a92f6
Коммит
01adc999c5
@ -2,13 +2,14 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2009 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2009 University of Houston. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -724,10 +725,10 @@ ompi_coll_tuned_allgather_intra_basic_linear(void *sbuf, int scount,
|
||||
|
||||
err = comm->c_coll.coll_gather(sbuf, scount, sdtype,
|
||||
rbuf, rcount, rdtype,
|
||||
0, comm, module);
|
||||
0, comm, comm->c_coll.coll_gather_module);
|
||||
if (MPI_SUCCESS == err) {
|
||||
err = comm->c_coll.coll_bcast(rbuf, rcount * ompi_comm_size(comm), rdtype,
|
||||
0, comm, module);
|
||||
0, comm, comm->c_coll.coll_bcast_module);
|
||||
}
|
||||
|
||||
/* All done */
|
||||
|
@ -2,13 +2,14 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2007 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2009 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2009 University of Houston. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -627,7 +628,7 @@ ompi_coll_tuned_allgatherv_intra_basic_default(void *sbuf, int scount,
|
||||
err = comm->c_coll.coll_gatherv(send_buf,
|
||||
rcounts[rank], send_type,rbuf,
|
||||
rcounts, disps, rdtype, 0,
|
||||
comm, module);
|
||||
comm, comm->c_coll.coll_gatherv_module);
|
||||
|
||||
if (MPI_SUCCESS != err) {
|
||||
return err;
|
||||
@ -655,7 +656,8 @@ ompi_coll_tuned_allgatherv_intra_basic_default(void *sbuf, int scount,
|
||||
return err;
|
||||
}
|
||||
|
||||
comm->c_coll.coll_bcast(rbuf, 1, newtype, 0, comm, module);
|
||||
comm->c_coll.coll_bcast(rbuf, 1, newtype, 0, comm,
|
||||
comm->c_coll.coll_bcast_module);
|
||||
|
||||
ompi_ddt_destroy (&newtype);
|
||||
|
||||
|
@ -2,13 +2,14 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2009 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2009 University of Houston. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -60,19 +61,21 @@ ompi_coll_tuned_allreduce_intra_nonoverlapping(void *sbuf, void *rbuf, int count
|
||||
if (MPI_IN_PLACE == sbuf) {
|
||||
if (0 == ompi_comm_rank(comm)) {
|
||||
err = comm->c_coll.coll_reduce (MPI_IN_PLACE, rbuf, count, dtype,
|
||||
op, 0, comm, module);
|
||||
op, 0, comm, comm->c_coll.coll_reduce_module);
|
||||
} else {
|
||||
err = comm->c_coll.coll_reduce (rbuf, NULL, count, dtype, op, 0,
|
||||
comm, module);
|
||||
comm, comm->c_coll.coll_reduce_module);
|
||||
}
|
||||
} else {
|
||||
err = comm->c_coll.coll_reduce (sbuf, rbuf, count, dtype, op, 0, comm, module);
|
||||
err = comm->c_coll.coll_reduce (sbuf, rbuf, count, dtype, op, 0,
|
||||
comm, comm->c_coll.coll_reduce_module);
|
||||
}
|
||||
if (MPI_SUCCESS != err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
return comm->c_coll.coll_bcast (rbuf, count, dtype, 0, comm, module);
|
||||
return comm->c_coll.coll_bcast (rbuf, count, dtype, 0, comm,
|
||||
comm->c_coll.coll_bcast_module);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2009 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -10,6 +10,7 @@
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright (c) 2009 University of Houston. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -65,10 +66,10 @@ int ompi_coll_tuned_reduce_scatter_intra_nonoverlapping(void *sbuf, void *rbuf,
|
||||
/* rbuf on root (0) is big enough to hold whole data */
|
||||
if (root == rank) {
|
||||
err = comm->c_coll.coll_reduce (MPI_IN_PLACE, tmprbuf, total_count,
|
||||
dtype, op, root, comm, module);
|
||||
dtype, op, root, comm, comm->c_coll.coll_reduce_module);
|
||||
} else {
|
||||
err = comm->c_coll.coll_reduce(tmprbuf, NULL, total_count,
|
||||
dtype, op, root, comm, module);
|
||||
dtype, op, root, comm, comm->c_coll.coll_reduce_module);
|
||||
}
|
||||
} else {
|
||||
if (root == rank) {
|
||||
@ -83,7 +84,7 @@ int ompi_coll_tuned_reduce_scatter_intra_nonoverlapping(void *sbuf, void *rbuf,
|
||||
tmprbuf = tmprbuf_free - lb;
|
||||
}
|
||||
err = comm->c_coll.coll_reduce (sbuf, tmprbuf, total_count,
|
||||
dtype, op, root, comm, module);
|
||||
dtype, op, root, comm, comm->c_coll.coll_reduce_module);
|
||||
}
|
||||
if (MPI_SUCCESS != err) {
|
||||
if (NULL != tmprbuf_free) free(tmprbuf_free);
|
||||
@ -97,7 +98,7 @@ int ompi_coll_tuned_reduce_scatter_intra_nonoverlapping(void *sbuf, void *rbuf,
|
||||
}
|
||||
err = comm->c_coll.coll_scatterv (tmprbuf, rcounts, displs, dtype,
|
||||
rbuf, rcounts[rank], dtype,
|
||||
root, comm, module);
|
||||
root, comm, comm->c_coll.coll_scatterv_module);
|
||||
free(displs);
|
||||
if (NULL != tmprbuf_free) free(tmprbuf_free);
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user