Refs trac:1826: remove barriers before all non-rooted collective ops.
This commit was SVN r20763. The following Trac tickets were found above: Ticket 1826 --> https://svn.open-mpi.org/trac/ompi/ticket/1826
Этот коммит содержится в:
родитель
d97e398b49
Коммит
14ee1b7ba2
@ -21,12 +21,6 @@ sources = \
|
|||||||
coll_sync.h \
|
coll_sync.h \
|
||||||
coll_sync_component.c \
|
coll_sync_component.c \
|
||||||
coll_sync_module.c \
|
coll_sync_module.c \
|
||||||
coll_sync_allgather.c \
|
|
||||||
coll_sync_allgatherv.c \
|
|
||||||
coll_sync_allreduce.c \
|
|
||||||
coll_sync_alltoall.c \
|
|
||||||
coll_sync_alltoallv.c \
|
|
||||||
coll_sync_alltoallw.c \
|
|
||||||
coll_sync_bcast.c \
|
coll_sync_bcast.c \
|
||||||
coll_sync_exscan.c \
|
coll_sync_exscan.c \
|
||||||
coll_sync_gather.c \
|
coll_sync_gather.c \
|
||||||
|
@ -45,52 +45,6 @@ mca_coll_base_module_t
|
|||||||
int mca_coll_sync_module_enable(mca_coll_base_module_t *module,
|
int mca_coll_sync_module_enable(mca_coll_base_module_t *module,
|
||||||
struct ompi_communicator_t *comm);
|
struct ompi_communicator_t *comm);
|
||||||
|
|
||||||
int mca_coll_sync_allgather(void *sbuf, int scount,
|
|
||||||
struct ompi_datatype_t *sdtype,
|
|
||||||
void *rbuf, int rcount,
|
|
||||||
struct ompi_datatype_t *rdtype,
|
|
||||||
struct ompi_communicator_t *comm,
|
|
||||||
mca_coll_base_module_t *module);
|
|
||||||
|
|
||||||
int mca_coll_sync_allgatherv(void *sbuf, int scount,
|
|
||||||
struct ompi_datatype_t *sdtype,
|
|
||||||
void *rbuf, int *rcounts,
|
|
||||||
int *disps,
|
|
||||||
struct ompi_datatype_t *rdtype,
|
|
||||||
struct ompi_communicator_t *comm,
|
|
||||||
mca_coll_base_module_t *module);
|
|
||||||
|
|
||||||
int mca_coll_sync_allreduce(void *sbuf, void *rbuf, int count,
|
|
||||||
struct ompi_datatype_t *dtype,
|
|
||||||
struct ompi_op_t *op,
|
|
||||||
struct ompi_communicator_t *comm,
|
|
||||||
mca_coll_base_module_t *module);
|
|
||||||
|
|
||||||
int mca_coll_sync_alltoall(void *sbuf, int scount,
|
|
||||||
struct ompi_datatype_t *sdtype,
|
|
||||||
void *rbuf, int rcount,
|
|
||||||
struct ompi_datatype_t *rdtype,
|
|
||||||
struct ompi_communicator_t *comm,
|
|
||||||
mca_coll_base_module_t *module);
|
|
||||||
|
|
||||||
int mca_coll_sync_alltoallv(void *sbuf, int *scounts,
|
|
||||||
int *sdisps,
|
|
||||||
struct ompi_datatype_t *sdtype,
|
|
||||||
void *rbuf, int *rcounts,
|
|
||||||
int *rdisps,
|
|
||||||
struct ompi_datatype_t *rdtype,
|
|
||||||
struct ompi_communicator_t *comm,
|
|
||||||
mca_coll_base_module_t *module);
|
|
||||||
|
|
||||||
int mca_coll_sync_alltoallw(void *sbuf, int *scounts,
|
|
||||||
int *sdisps,
|
|
||||||
struct ompi_datatype_t **sdtypes,
|
|
||||||
void *rbuf, int *rcounts,
|
|
||||||
int *rdisps,
|
|
||||||
struct ompi_datatype_t **rdtypes,
|
|
||||||
struct ompi_communicator_t *comm,
|
|
||||||
mca_coll_base_module_t *module);
|
|
||||||
|
|
||||||
int mca_coll_sync_barrier(struct ompi_communicator_t *comm,
|
int mca_coll_sync_barrier(struct ompi_communicator_t *comm,
|
||||||
mca_coll_base_module_t *module);
|
mca_coll_base_module_t *module);
|
||||||
|
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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
|
|
||||||
* 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 Cisco Systems, Inc. All rights reserved.
|
|
||||||
* $COPYRIGHT$
|
|
||||||
*
|
|
||||||
* Additional copyrights may follow
|
|
||||||
*
|
|
||||||
* $HEADER$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ompi_config.h"
|
|
||||||
|
|
||||||
#include "coll_sync.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* allgather
|
|
||||||
*
|
|
||||||
* Function: - allgather using other MPI collections
|
|
||||||
* Accepts: - same as MPI_Allgather()
|
|
||||||
* Returns: - MPI_SUCCESS or error code
|
|
||||||
*/
|
|
||||||
int mca_coll_sync_allgather(void *sbuf, int scount,
|
|
||||||
struct ompi_datatype_t *sdtype, void *rbuf,
|
|
||||||
int rcount, struct ompi_datatype_t *rdtype,
|
|
||||||
struct ompi_communicator_t *comm,
|
|
||||||
mca_coll_base_module_t *module)
|
|
||||||
{
|
|
||||||
mca_coll_sync_module_t *s = (mca_coll_sync_module_t*) module;
|
|
||||||
|
|
||||||
if (s->in_operation) {
|
|
||||||
return s->c_coll.coll_allgather(sbuf, scount, sdtype, rbuf, rcount,
|
|
||||||
rdtype, comm,
|
|
||||||
s->c_coll.coll_allgather_module);
|
|
||||||
} else {
|
|
||||||
COLL_SYNC(s, s->c_coll.coll_allgather(sbuf, scount, sdtype, rbuf,
|
|
||||||
rcount, rdtype, comm,
|
|
||||||
s->c_coll.coll_allgather_module));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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
|
|
||||||
* 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 Cisco Systems, Inc. All rights reserved.
|
|
||||||
* $COPYRIGHT$
|
|
||||||
*
|
|
||||||
* Additional copyrights may follow
|
|
||||||
*
|
|
||||||
* $HEADER$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ompi_config.h"
|
|
||||||
|
|
||||||
#include "coll_sync.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* allgatherv
|
|
||||||
*
|
|
||||||
* Function: - allgatherv
|
|
||||||
* Accepts: - same as MPI_Allgatherv()
|
|
||||||
* Returns: - MPI_SUCCESS or error code
|
|
||||||
*/
|
|
||||||
int mca_coll_sync_allgatherv(void *sbuf, int scount,
|
|
||||||
struct ompi_datatype_t *sdtype,
|
|
||||||
void *rbuf, int *rcounts, int *disps,
|
|
||||||
struct ompi_datatype_t *rdtype,
|
|
||||||
struct ompi_communicator_t *comm,
|
|
||||||
mca_coll_base_module_t *module)
|
|
||||||
{
|
|
||||||
mca_coll_sync_module_t *s = (mca_coll_sync_module_t*) module;
|
|
||||||
|
|
||||||
if (s->in_operation) {
|
|
||||||
return s->c_coll.coll_allgatherv(sbuf, scount, sdtype, rbuf, rcounts,
|
|
||||||
disps, rdtype, comm,
|
|
||||||
s->c_coll.coll_allgatherv_module);
|
|
||||||
} else {
|
|
||||||
COLL_SYNC(s, s->c_coll.coll_allgatherv(sbuf, scount, sdtype,
|
|
||||||
rbuf, rcounts,
|
|
||||||
disps, rdtype, comm,
|
|
||||||
s->c_coll.coll_allgatherv_module));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,48 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
||||||
* University Research and Technology
|
|
||||||
* Corporation. All rights reserved.
|
|
||||||
* Copyright (c) 2004-2005 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 Cisco Systems, Inc. All rights reserved.
|
|
||||||
* $COPYRIGHT$
|
|
||||||
*
|
|
||||||
* Additional copyrights may follow
|
|
||||||
*
|
|
||||||
* $HEADER$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ompi_config.h"
|
|
||||||
|
|
||||||
#include "coll_sync.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* allreduce
|
|
||||||
*
|
|
||||||
* Function: - allreduce
|
|
||||||
* Accepts: - same as MPI_Allreduce()
|
|
||||||
* Returns: - MPI_SUCCESS or error code
|
|
||||||
*/
|
|
||||||
int mca_coll_sync_allreduce(void *sbuf, void *rbuf, int count,
|
|
||||||
struct ompi_datatype_t *dtype,
|
|
||||||
struct ompi_op_t *op,
|
|
||||||
struct ompi_communicator_t *comm,
|
|
||||||
mca_coll_base_module_t *module)
|
|
||||||
{
|
|
||||||
mca_coll_sync_module_t *s = (mca_coll_sync_module_t*) module;
|
|
||||||
|
|
||||||
if (s->in_operation) {
|
|
||||||
return s->c_coll.coll_allreduce(sbuf, rbuf, count, dtype, op, comm,
|
|
||||||
s->c_coll.coll_allreduce_module);
|
|
||||||
} else {
|
|
||||||
COLL_SYNC(s, s->c_coll.coll_allreduce(sbuf, rbuf, count, dtype,
|
|
||||||
op, comm,
|
|
||||||
s->c_coll.coll_allreduce_module));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
||||||
* University Research and Technology
|
|
||||||
* Corporation. All rights reserved.
|
|
||||||
* Copyright (c) 2004-2005 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 Cisco Systems, Inc. All rights reserved.
|
|
||||||
* $COPYRIGHT$
|
|
||||||
*
|
|
||||||
* Additional copyrights may follow
|
|
||||||
*
|
|
||||||
* $HEADER$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ompi_config.h"
|
|
||||||
|
|
||||||
#include "coll_sync.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* alltoall_intra
|
|
||||||
*
|
|
||||||
* Function: - MPI_Alltoall
|
|
||||||
* Accepts: - same as MPI_Alltoall()
|
|
||||||
* Returns: - MPI_SUCCESS or an MPI error code
|
|
||||||
*/
|
|
||||||
int mca_coll_sync_alltoall(void *sbuf, int scount,
|
|
||||||
struct ompi_datatype_t *sdtype,
|
|
||||||
void *rbuf, int rcount,
|
|
||||||
struct ompi_datatype_t *rdtype,
|
|
||||||
struct ompi_communicator_t *comm,
|
|
||||||
mca_coll_base_module_t *module)
|
|
||||||
{
|
|
||||||
mca_coll_sync_module_t *s = (mca_coll_sync_module_t*) module;
|
|
||||||
|
|
||||||
if (s->in_operation) {
|
|
||||||
return s->c_coll.coll_alltoall(sbuf, scount, sdtype, rbuf, rcount,
|
|
||||||
rdtype, comm,
|
|
||||||
s->c_coll.coll_alltoall_module);
|
|
||||||
} else {
|
|
||||||
COLL_SYNC(s, s->c_coll.coll_alltoall(sbuf, scount, sdtype,
|
|
||||||
rbuf, rcount,
|
|
||||||
rdtype, comm,
|
|
||||||
s->c_coll.coll_alltoall_module));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
||||||
* University Research and Technology
|
|
||||||
* Corporation. All rights reserved.
|
|
||||||
* Copyright (c) 2004-2005 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 Cisco Systems, Inc. All rights reserved.
|
|
||||||
* $COPYRIGHT$
|
|
||||||
*
|
|
||||||
* Additional copyrights may follow
|
|
||||||
*
|
|
||||||
* $HEADER$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ompi_config.h"
|
|
||||||
|
|
||||||
#include "coll_sync.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* alltoallv
|
|
||||||
*
|
|
||||||
* Function: - MPI_Alltoallv
|
|
||||||
* Accepts: - same as MPI_Alltoallv()
|
|
||||||
* Returns: - MPI_SUCCESS or an MPI error code
|
|
||||||
*/
|
|
||||||
int mca_coll_sync_alltoallv(void *sbuf, int *scounts, int *sdisps,
|
|
||||||
struct ompi_datatype_t *sdtype,
|
|
||||||
void *rbuf, int *rcounts, int *rdisps,
|
|
||||||
struct ompi_datatype_t *rdtype,
|
|
||||||
struct ompi_communicator_t *comm,
|
|
||||||
mca_coll_base_module_t *module)
|
|
||||||
{
|
|
||||||
mca_coll_sync_module_t *s = (mca_coll_sync_module_t*) module;
|
|
||||||
|
|
||||||
if (s->in_operation) {
|
|
||||||
return s->c_coll.coll_alltoallv(sbuf, scounts, sdisps, sdtype,
|
|
||||||
rbuf, rcounts, rdisps, rdtype, comm,
|
|
||||||
s->c_coll.coll_alltoallv_module);
|
|
||||||
} else {
|
|
||||||
COLL_SYNC(s, s->c_coll.coll_alltoallv(sbuf, scounts, sdisps, sdtype,
|
|
||||||
rbuf, rcounts, rdisps, rdtype,
|
|
||||||
comm,
|
|
||||||
s->c_coll.coll_alltoallv_module));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
||||||
* University Research and Technology
|
|
||||||
* Corporation. All rights reserved.
|
|
||||||
* Copyright (c) 2004-2005 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 Cisco Systems, Inc. All rights reserved.
|
|
||||||
* $COPYRIGHT$
|
|
||||||
*
|
|
||||||
* Additional copyrights may follow
|
|
||||||
*
|
|
||||||
* $HEADER$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ompi_config.h"
|
|
||||||
|
|
||||||
#include "coll_sync.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* alltoallw
|
|
||||||
*
|
|
||||||
* Function: - MPI_Alltoallw
|
|
||||||
* Accepts: - same as MPI_Alltoallw()
|
|
||||||
* Returns: - MPI_SUCCESS or an MPI error code
|
|
||||||
*/
|
|
||||||
int mca_coll_sync_alltoallw(void *sbuf, int *scounts, int *sdisps,
|
|
||||||
struct ompi_datatype_t **sdtypes,
|
|
||||||
void *rbuf, int *rcounts, int *rdisps,
|
|
||||||
struct ompi_datatype_t **rdtypes,
|
|
||||||
struct ompi_communicator_t *comm,
|
|
||||||
mca_coll_base_module_t *module)
|
|
||||||
{
|
|
||||||
mca_coll_sync_module_t *s = (mca_coll_sync_module_t*) module;
|
|
||||||
|
|
||||||
if (s->in_operation) {
|
|
||||||
return s->c_coll.coll_alltoallw(sbuf, scounts, sdisps, sdtypes,
|
|
||||||
rbuf, rcounts, rdisps, rdtypes, comm,
|
|
||||||
s->c_coll.coll_alltoallw_module);
|
|
||||||
} else {
|
|
||||||
COLL_SYNC(s, s->c_coll.coll_alltoallw(sbuf, scounts, sdisps, sdtypes,
|
|
||||||
rbuf, rcounts, rdisps, rdtypes,
|
|
||||||
comm,
|
|
||||||
s->c_coll.coll_alltoallw_module));
|
|
||||||
}
|
|
||||||
}
|
|
@ -43,12 +43,6 @@ static void mca_coll_sync_module_construct(mca_coll_sync_module_t *module)
|
|||||||
|
|
||||||
static void mca_coll_sync_module_destruct(mca_coll_sync_module_t *module)
|
static void mca_coll_sync_module_destruct(mca_coll_sync_module_t *module)
|
||||||
{
|
{
|
||||||
OBJ_RELEASE(module->c_coll.coll_allgather_module);
|
|
||||||
OBJ_RELEASE(module->c_coll.coll_allgatherv_module);
|
|
||||||
OBJ_RELEASE(module->c_coll.coll_allreduce_module);
|
|
||||||
OBJ_RELEASE(module->c_coll.coll_alltoall_module);
|
|
||||||
OBJ_RELEASE(module->c_coll.coll_alltoallv_module);
|
|
||||||
OBJ_RELEASE(module->c_coll.coll_alltoallw_module);
|
|
||||||
OBJ_RELEASE(module->c_coll.coll_bcast_module);
|
OBJ_RELEASE(module->c_coll.coll_bcast_module);
|
||||||
OBJ_RELEASE(module->c_coll.coll_gather_module);
|
OBJ_RELEASE(module->c_coll.coll_gather_module);
|
||||||
OBJ_RELEASE(module->c_coll.coll_gatherv_module);
|
OBJ_RELEASE(module->c_coll.coll_gatherv_module);
|
||||||
@ -111,12 +105,14 @@ mca_coll_sync_comm_query(struct ompi_communicator_t *comm,
|
|||||||
sync_module->super.coll_module_enable = mca_coll_sync_module_enable;
|
sync_module->super.coll_module_enable = mca_coll_sync_module_enable;
|
||||||
sync_module->super.ft_event = mca_coll_sync_ft_event;
|
sync_module->super.ft_event = mca_coll_sync_ft_event;
|
||||||
|
|
||||||
sync_module->super.coll_allgather = mca_coll_sync_allgather;
|
/* The "all" versions are already synchronous. So no need for an
|
||||||
sync_module->super.coll_allgatherv = mca_coll_sync_allgatherv;
|
additional barrier there. */
|
||||||
sync_module->super.coll_allreduce = mca_coll_sync_allreduce;
|
sync_module->super.coll_allgather = NULL;
|
||||||
sync_module->super.coll_alltoall = mca_coll_sync_alltoall;
|
sync_module->super.coll_allgatherv = NULL;
|
||||||
sync_module->super.coll_alltoallv = mca_coll_sync_alltoallv;
|
sync_module->super.coll_allreduce = NULL;
|
||||||
sync_module->super.coll_alltoallw = mca_coll_sync_alltoallw;
|
sync_module->super.coll_alltoall = NULL;
|
||||||
|
sync_module->super.coll_alltoallv = NULL;
|
||||||
|
sync_module->super.coll_alltoallw = NULL;
|
||||||
sync_module->super.coll_barrier = NULL;
|
sync_module->super.coll_barrier = NULL;
|
||||||
sync_module->super.coll_bcast = mca_coll_sync_bcast;
|
sync_module->super.coll_bcast = mca_coll_sync_bcast;
|
||||||
sync_module->super.coll_exscan = mca_coll_sync_exscan;
|
sync_module->super.coll_exscan = mca_coll_sync_exscan;
|
||||||
@ -153,12 +149,6 @@ int mca_coll_sync_module_enable(mca_coll_base_module_t *module,
|
|||||||
OBJ_RETAIN(s->c_coll.coll_ ## name ## _module); \
|
OBJ_RETAIN(s->c_coll.coll_ ## name ## _module); \
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECK_AND_RETAIN(allgather);
|
|
||||||
CHECK_AND_RETAIN(allgatherv);
|
|
||||||
CHECK_AND_RETAIN(allreduce);
|
|
||||||
CHECK_AND_RETAIN(alltoall);
|
|
||||||
CHECK_AND_RETAIN(alltoallv);
|
|
||||||
CHECK_AND_RETAIN(alltoallw);
|
|
||||||
CHECK_AND_RETAIN(bcast);
|
CHECK_AND_RETAIN(bcast);
|
||||||
CHECK_AND_RETAIN(gather);
|
CHECK_AND_RETAIN(gather);
|
||||||
CHECK_AND_RETAIN(gatherv);
|
CHECK_AND_RETAIN(gatherv);
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user