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_component.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_exscan.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,
|
||||
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,
|
||||
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)
|
||||
{
|
||||
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_gather_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.ft_event = mca_coll_sync_ft_event;
|
||||
|
||||
sync_module->super.coll_allgather = mca_coll_sync_allgather;
|
||||
sync_module->super.coll_allgatherv = mca_coll_sync_allgatherv;
|
||||
sync_module->super.coll_allreduce = mca_coll_sync_allreduce;
|
||||
sync_module->super.coll_alltoall = mca_coll_sync_alltoall;
|
||||
sync_module->super.coll_alltoallv = mca_coll_sync_alltoallv;
|
||||
sync_module->super.coll_alltoallw = mca_coll_sync_alltoallw;
|
||||
/* The "all" versions are already synchronous. So no need for an
|
||||
additional barrier there. */
|
||||
sync_module->super.coll_allgather = NULL;
|
||||
sync_module->super.coll_allgatherv = NULL;
|
||||
sync_module->super.coll_allreduce = NULL;
|
||||
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_bcast = mca_coll_sync_bcast;
|
||||
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); \
|
||||
}
|
||||
|
||||
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(gather);
|
||||
CHECK_AND_RETAIN(gatherv);
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user