Move the collective structure outside the communicator.
As we changed the ABI (forcing a major release), we can limit the size of the predefined communicators by moving the collective structure outside the communicator. This might have a minimal, but unnoticeable, impact on performance. This approach has been discussed during the January 2017 devel meeting. Signed-off-by: George Bosilca <bosilca@icl.utk.edu> Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
Этот коммит содержится в:
родитель
581bff9871
Коммит
366d64b7e5
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2013 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -292,10 +292,10 @@ int ompi_comm_create ( ompi_communicator_t *comm, ompi_group_t *group,
|
||||
goto exit;
|
||||
}
|
||||
|
||||
rc = comm->c_coll.coll_allgather ( &(group->grp_my_rank),
|
||||
rc = comm->c_coll->coll_allgather ( &(group->grp_my_rank),
|
||||
1, MPI_INT, allranks,
|
||||
1, MPI_INT, comm,
|
||||
comm->c_coll.coll_allgather_module);
|
||||
comm->c_coll->coll_allgather_module);
|
||||
if ( OMPI_SUCCESS != rc ) {
|
||||
goto exit;
|
||||
}
|
||||
@ -434,7 +434,7 @@ int ompi_comm_split( ompi_communicator_t* comm, int color, int key,
|
||||
if ( inter ) {
|
||||
allgatherfct = (ompi_comm_allgatherfct *)ompi_comm_allgather_emulate_intra;
|
||||
} else {
|
||||
allgatherfct = (ompi_comm_allgatherfct *)comm->c_coll.coll_allgather;
|
||||
allgatherfct = (ompi_comm_allgatherfct *)comm->c_coll->coll_allgather;
|
||||
}
|
||||
|
||||
results = (int*) malloc ( 2 * size * sizeof(int));
|
||||
@ -442,7 +442,7 @@ int ompi_comm_split( ompi_communicator_t* comm, int color, int key,
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
rc = allgatherfct( myinfo, 2, MPI_INT, results, 2, MPI_INT, comm, comm->c_coll.coll_allgather_module );
|
||||
rc = allgatherfct( myinfo, 2, MPI_INT, results, 2, MPI_INT, comm, comm->c_coll->coll_allgather_module );
|
||||
if ( OMPI_SUCCESS != rc ) {
|
||||
goto exit;
|
||||
}
|
||||
@ -503,9 +503,9 @@ int ompi_comm_split( ompi_communicator_t* comm, int color, int key,
|
||||
}
|
||||
|
||||
/* this is an allgather on an inter-communicator */
|
||||
rc = comm->c_coll.coll_allgather( myinfo, 2, MPI_INT, rresults, 2,
|
||||
rc = comm->c_coll->coll_allgather( myinfo, 2, MPI_INT, rresults, 2,
|
||||
MPI_INT, comm,
|
||||
comm->c_coll.coll_allgather_module);
|
||||
comm->c_coll->coll_allgather_module);
|
||||
if ( OMPI_SUCCESS != rc ) {
|
||||
goto exit;
|
||||
}
|
||||
@ -767,8 +767,8 @@ static int ompi_comm_split_verify (ompi_communicator_t *comm, int split_type, in
|
||||
results[rank * 2] = split_type;
|
||||
results[rank * 2 + 1] = key;
|
||||
|
||||
rc = comm->c_coll.coll_allgather (MPI_IN_PLACE, 2, MPI_INT, results, 2, MPI_INT, comm,
|
||||
comm->c_coll.coll_allgather_module);
|
||||
rc = comm->c_coll->coll_allgather (MPI_IN_PLACE, 2, MPI_INT, results, 2, MPI_INT, comm,
|
||||
comm->c_coll->coll_allgather_module);
|
||||
if (OMPI_SUCCESS != rc) {
|
||||
free (results);
|
||||
return rc;
|
||||
@ -810,8 +810,8 @@ int ompi_comm_split_type (ompi_communicator_t *comm, int split_type, int key,
|
||||
tmp[2] = key;
|
||||
tmp[3] = -key;
|
||||
|
||||
rc = comm->c_coll.coll_allreduce (MPI_IN_PLACE, &tmp, 4, MPI_INT, MPI_MAX, comm,
|
||||
comm->c_coll.coll_allreduce_module);
|
||||
rc = comm->c_coll->coll_allreduce (MPI_IN_PLACE, &tmp, 4, MPI_INT, MPI_MAX, comm,
|
||||
comm->c_coll->coll_allreduce_module);
|
||||
if (OPAL_UNLIKELY(OMPI_SUCCESS != rc)) {
|
||||
return rc;
|
||||
}
|
||||
@ -822,16 +822,16 @@ int ompi_comm_split_type (ompi_communicator_t *comm, int split_type, int key,
|
||||
/* at least one rank supplied a different split type check if our split_type is ok */
|
||||
ok = (MPI_UNDEFINED == split_type) || global_split_type == split_type;
|
||||
|
||||
rc = comm->c_coll.coll_allreduce (MPI_IN_PLACE, &ok, 1, MPI_INT, MPI_MIN, comm,
|
||||
comm->c_coll.coll_allreduce_module);
|
||||
rc = comm->c_coll->coll_allreduce (MPI_IN_PLACE, &ok, 1, MPI_INT, MPI_MIN, comm,
|
||||
comm->c_coll->coll_allreduce_module);
|
||||
if (OPAL_UNLIKELY(OMPI_SUCCESS != rc)) {
|
||||
return rc;
|
||||
}
|
||||
|
||||
if (inter) {
|
||||
/* need an extra allreduce to ensure that all ranks have the same result */
|
||||
rc = comm->c_coll.coll_allreduce (MPI_IN_PLACE, &ok, 1, MPI_INT, MPI_MIN, comm,
|
||||
comm->c_coll.coll_allreduce_module);
|
||||
rc = comm->c_coll->coll_allreduce (MPI_IN_PLACE, &ok, 1, MPI_INT, MPI_MIN, comm,
|
||||
comm->c_coll->coll_allreduce_module);
|
||||
if (OPAL_UNLIKELY(OMPI_SUCCESS != rc)) {
|
||||
return rc;
|
||||
}
|
||||
@ -1575,9 +1575,9 @@ ompi_proc_t **ompi_comm_get_rprocs ( ompi_communicator_t *local_comm,
|
||||
}
|
||||
|
||||
/* broadcast buffer length to all processes in local_comm */
|
||||
rc = local_comm->c_coll.coll_bcast( &rlen, 1, MPI_INT,
|
||||
rc = local_comm->c_coll->coll_bcast( &rlen, 1, MPI_INT,
|
||||
local_leader, local_comm,
|
||||
local_comm->c_coll.coll_bcast_module );
|
||||
local_comm->c_coll->coll_bcast_module );
|
||||
if ( OMPI_SUCCESS != rc ) {
|
||||
goto err_exit;
|
||||
}
|
||||
@ -1607,9 +1607,9 @@ ompi_proc_t **ompi_comm_get_rprocs ( ompi_communicator_t *local_comm,
|
||||
}
|
||||
|
||||
/* broadcast name list to all proceses in local_comm */
|
||||
rc = local_comm->c_coll.coll_bcast( recvbuf, rlen, MPI_BYTE,
|
||||
rc = local_comm->c_coll->coll_bcast( recvbuf, rlen, MPI_BYTE,
|
||||
local_leader, local_comm,
|
||||
local_comm->c_coll.coll_bcast_module);
|
||||
local_comm->c_coll->coll_bcast_module);
|
||||
if ( OMPI_SUCCESS != rc ) {
|
||||
goto err_exit;
|
||||
}
|
||||
@ -1741,10 +1741,10 @@ int ompi_comm_determine_first ( ompi_communicator_t *intercomm, int high )
|
||||
scount = 1;
|
||||
}
|
||||
|
||||
rc = intercomm->c_coll.coll_allgatherv(&high, scount, MPI_INT,
|
||||
rc = intercomm->c_coll->coll_allgatherv(&high, scount, MPI_INT,
|
||||
&rhigh, rcounts, rdisps,
|
||||
MPI_INT, intercomm,
|
||||
intercomm->c_coll.coll_allgatherv_module);
|
||||
intercomm->c_coll->coll_allgatherv_module);
|
||||
if ( NULL != rdisps ) {
|
||||
free ( rdisps );
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2008 High Performance Computing Center Stuttgart,
|
||||
@ -591,8 +591,8 @@ static int ompi_comm_allreduce_intra_nb (int *inbuf, int *outbuf, int count, str
|
||||
{
|
||||
ompi_communicator_t *comm = context->comm;
|
||||
|
||||
return comm->c_coll.coll_iallreduce (inbuf, outbuf, count, MPI_INT, op, comm,
|
||||
req, comm->c_coll.coll_iallreduce_module);
|
||||
return comm->c_coll->coll_iallreduce (inbuf, outbuf, count, MPI_INT, op, comm,
|
||||
req, comm->c_coll->coll_iallreduce_module);
|
||||
}
|
||||
|
||||
/* Non-blocking version of ompi_comm_allreduce_inter */
|
||||
@ -641,9 +641,9 @@ static int ompi_comm_allreduce_inter_nb (int *inbuf, int *outbuf,
|
||||
|
||||
/* Execute the inter-allreduce: the result from the local will be in the buffer of the remote group
|
||||
* and vise-versa. */
|
||||
rc = intercomm->c_local_comm->c_coll.coll_ireduce (inbuf, context->tmpbuf, count, MPI_INT, op, 0,
|
||||
rc = intercomm->c_local_comm->c_coll->coll_ireduce (inbuf, context->tmpbuf, count, MPI_INT, op, 0,
|
||||
intercomm->c_local_comm, &subreq,
|
||||
intercomm->c_local_comm->c_coll.coll_ireduce_module);
|
||||
intercomm->c_local_comm->c_coll->coll_ireduce_module);
|
||||
if (OPAL_UNLIKELY(OMPI_SUCCESS != rc)) {
|
||||
ompi_comm_request_return (request);
|
||||
return rc;
|
||||
@ -704,8 +704,8 @@ static int ompi_comm_allreduce_inter_bcast (ompi_comm_request_t *request)
|
||||
int rc;
|
||||
|
||||
/* both roots have the same result. broadcast to the local group */
|
||||
rc = comm->c_coll.coll_ibcast (context->outbuf, context->count, MPI_INT, 0, comm,
|
||||
&subreq, comm->c_coll.coll_ibcast_module);
|
||||
rc = comm->c_coll->coll_ibcast (context->outbuf, context->count, MPI_INT, 0, comm,
|
||||
&subreq, comm->c_coll->coll_ibcast_module);
|
||||
if (OPAL_UNLIKELY(OMPI_SUCCESS != rc)) {
|
||||
return rc;
|
||||
}
|
||||
@ -720,9 +720,9 @@ static int ompi_comm_allreduce_bridged_schedule_bcast (ompi_comm_request_t *requ
|
||||
ompi_request_t *subreq;
|
||||
int rc;
|
||||
|
||||
rc = comm->c_coll.coll_ibcast (context->outbuf, context->count, MPI_INT,
|
||||
rc = comm->c_coll->coll_ibcast (context->outbuf, context->count, MPI_INT,
|
||||
context->cid_context->local_leader, comm,
|
||||
&subreq, comm->c_coll.coll_ibcast_module);
|
||||
&subreq, comm->c_coll->coll_ibcast_module);
|
||||
if (OPAL_UNLIKELY(OMPI_SUCCESS != rc)) {
|
||||
return rc;
|
||||
}
|
||||
@ -803,9 +803,9 @@ static int ompi_comm_allreduce_intra_bridge_nb (int *inbuf, int *outbuf,
|
||||
}
|
||||
|
||||
/* step 1: reduce to the local leader */
|
||||
rc = comm->c_coll.coll_ireduce (inbuf, context->tmpbuf, count, MPI_INT, op,
|
||||
rc = comm->c_coll->coll_ireduce (inbuf, context->tmpbuf, count, MPI_INT, op,
|
||||
cid_context->local_leader, comm, &subreq,
|
||||
comm->c_coll.coll_ireduce_module);
|
||||
comm->c_coll->coll_ireduce_module);
|
||||
if ( OMPI_SUCCESS != rc ) {
|
||||
ompi_comm_request_return (request);
|
||||
return rc;
|
||||
@ -955,9 +955,9 @@ static int ompi_comm_allreduce_intra_pmix_nb (int *inbuf, int *outbuf,
|
||||
request->context = &context->super;
|
||||
|
||||
/* comm is an intra-communicator */
|
||||
rc = comm->c_coll.coll_ireduce (inbuf, context->tmpbuf, count, MPI_INT, op,
|
||||
rc = comm->c_coll->coll_ireduce (inbuf, context->tmpbuf, count, MPI_INT, op,
|
||||
cid_context->local_leader, comm,
|
||||
&subreq, comm->c_coll.coll_ireduce_module);
|
||||
&subreq, comm->c_coll->coll_ireduce_module);
|
||||
if ( OMPI_SUCCESS != rc ) {
|
||||
ompi_comm_request_return (request);
|
||||
return rc;
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2013 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -353,6 +353,7 @@ static void ompi_comm_construct(ompi_communicator_t* comm)
|
||||
comm->error_handler = NULL;
|
||||
comm->c_pml_comm = NULL;
|
||||
comm->c_topo = NULL;
|
||||
comm->c_coll = NULL;
|
||||
|
||||
/* A keyhash will be created if/when an attribute is cached on
|
||||
this communicator */
|
||||
@ -362,12 +363,6 @@ static void ompi_comm_construct(ompi_communicator_t* comm)
|
||||
#ifdef OMPI_WANT_PERUSE
|
||||
comm->c_peruse_handles = NULL;
|
||||
#endif
|
||||
|
||||
/* Need to zero out the collectives module because we sometimes
|
||||
call coll_unselect without a matching call to coll_select, and
|
||||
we need an easy way for the coll base code to realize we've
|
||||
done this. */
|
||||
memset(&comm->c_coll, 0, sizeof(mca_coll_base_comm_coll_t));
|
||||
}
|
||||
|
||||
static void ompi_comm_destruct(ompi_communicator_t* comm)
|
||||
@ -379,7 +374,7 @@ static void ompi_comm_destruct(ompi_communicator_t* comm)
|
||||
|
||||
/* Release the collective module */
|
||||
|
||||
if ( MPI_COMM_NULL != comm ) {
|
||||
if ( NULL != comm->c_coll ) {
|
||||
mca_coll_base_comm_unselect(comm);
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2013 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -169,7 +169,7 @@ struct ompi_communicator_t {
|
||||
struct mca_pml_comm_t *c_pml_comm;
|
||||
|
||||
/* Collectives module interface and data */
|
||||
mca_coll_base_comm_coll_t c_coll;
|
||||
mca_coll_base_comm_coll_t *c_coll;
|
||||
};
|
||||
typedef struct ompi_communicator_t ompi_communicator_t;
|
||||
|
||||
@ -256,7 +256,7 @@ typedef struct ompi_communicator_t ompi_communicator_t;
|
||||
* the PREDEFINED_COMMUNICATOR_PAD macro?
|
||||
* A: Most likely not, but it would be good to check.
|
||||
*/
|
||||
#define PREDEFINED_COMMUNICATOR_PAD (sizeof(void*) * 192)
|
||||
#define PREDEFINED_COMMUNICATOR_PAD (sizeof(void*) * 64)
|
||||
|
||||
struct ompi_predefined_communicator_t {
|
||||
struct ompi_communicator_t comm;
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -229,8 +229,8 @@ int ompi_dpm_connect_accept(ompi_communicator_t *comm, int root,
|
||||
* side's participants */
|
||||
|
||||
/* bcast the list-length to all processes in the local comm */
|
||||
rc = comm->c_coll.coll_bcast(&rportlen, 1, MPI_INT, root, comm,
|
||||
comm->c_coll.coll_bcast_module);
|
||||
rc = comm->c_coll->coll_bcast(&rportlen, 1, MPI_INT, root, comm,
|
||||
comm->c_coll->coll_bcast_module);
|
||||
if (OMPI_SUCCESS != rc) {
|
||||
free(rport);
|
||||
goto exit;
|
||||
@ -245,8 +245,8 @@ int ompi_dpm_connect_accept(ompi_communicator_t *comm, int root,
|
||||
}
|
||||
}
|
||||
/* now share the list of remote participants */
|
||||
rc = comm->c_coll.coll_bcast(rport, rportlen, MPI_BYTE, root, comm,
|
||||
comm->c_coll.coll_bcast_module);
|
||||
rc = comm->c_coll->coll_bcast(rport, rportlen, MPI_BYTE, root, comm,
|
||||
comm->c_coll->coll_bcast_module);
|
||||
if (OMPI_SUCCESS != rc) {
|
||||
free(rport);
|
||||
goto exit;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2008 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2010-2013 The University of Tennessee and The University
|
||||
* Copyright (c) 2010-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
|
||||
@ -224,24 +224,24 @@ static inline int memchecker_comm(MPI_Comm comm)
|
||||
opal_memchecker_base_isdefined (&comm->errhandler_type, sizeof(ompi_errhandler_type_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_pml_comm, sizeof(struct mca_pml_comm_t *));
|
||||
/* c_coll */
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_module_init, sizeof(mca_coll_base_module_init_1_0_0_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_module_finalize, sizeof(mca_coll_base_module_finalize_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_allgather, sizeof(mca_coll_base_module_allgather_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_allgatherv, sizeof(mca_coll_base_module_allgatherv_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_allreduce, sizeof(mca_coll_base_module_allreduce_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_alltoall, sizeof(mca_coll_base_module_alltoall_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_alltoallv, sizeof(mca_coll_base_module_alltoallv_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_alltoallw, sizeof(mca_coll_base_module_alltoallw_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_barrier, sizeof(mca_coll_base_module_barrier_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_bcast, sizeof(mca_coll_base_module_bcast_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_exscan, sizeof(mca_coll_base_module_exscan_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_gather, sizeof(mca_coll_base_module_gather_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_gatherv, sizeof(mca_coll_base_module_gatherv_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_reduce, sizeof(mca_coll_base_module_reduce_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_reduce_scatter, sizeof(mca_coll_base_module_reduce_scatter_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_scan, sizeof(mca_coll_base_module_scan_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_scatter, sizeof(mca_coll_base_module_scatter_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll.coll_scatterv, sizeof(mca_coll_base_module_scatterv_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_module_init, sizeof(mca_coll_base_module_init_1_0_0_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_module_finalize, sizeof(mca_coll_base_module_finalize_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_allgather, sizeof(mca_coll_base_module_allgather_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_allgatherv, sizeof(mca_coll_base_module_allgatherv_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_allreduce, sizeof(mca_coll_base_module_allreduce_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_alltoall, sizeof(mca_coll_base_module_alltoall_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_alltoallv, sizeof(mca_coll_base_module_alltoallv_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_alltoallw, sizeof(mca_coll_base_module_alltoallw_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_barrier, sizeof(mca_coll_base_module_barrier_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_bcast, sizeof(mca_coll_base_module_bcast_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_exscan, sizeof(mca_coll_base_module_exscan_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_gather, sizeof(mca_coll_base_module_gather_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_gatherv, sizeof(mca_coll_base_module_gatherv_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_reduce, sizeof(mca_coll_base_module_reduce_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_reduce_scatter, sizeof(mca_coll_base_module_reduce_scatter_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_scan, sizeof(mca_coll_base_module_scan_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_scatter, sizeof(mca_coll_base_module_scatter_fn_t));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll->coll_scatterv, sizeof(mca_coll_base_module_scatterv_fn_t));
|
||||
|
||||
opal_memchecker_base_isdefined (&comm->c_coll_selected_component, sizeof(const mca_coll_base_component_2_0_0_t *));
|
||||
opal_memchecker_base_isdefined (&comm->c_coll_selected_module, sizeof(const mca_coll_base_module_1_0_0_t *));
|
||||
|
@ -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-2015 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -718,20 +718,20 @@ ompi_coll_base_allgather_intra_basic_linear(const void *sbuf, int scount,
|
||||
|
||||
/* Gather and broadcast. */
|
||||
|
||||
err = comm->c_coll.coll_gather(sbuf, scount, sdtype,
|
||||
err = comm->c_coll->coll_gather(sbuf, scount, sdtype,
|
||||
rbuf, rcount, rdtype,
|
||||
0, comm, comm->c_coll.coll_gather_module);
|
||||
0, comm, comm->c_coll->coll_gather_module);
|
||||
if (MPI_SUCCESS == err) {
|
||||
size_t length = (ptrdiff_t)rcount * ompi_comm_size(comm);
|
||||
if( length < (size_t)INT_MAX ) {
|
||||
err = comm->c_coll.coll_bcast(rbuf, (ptrdiff_t)rcount * ompi_comm_size(comm), rdtype,
|
||||
0, comm, comm->c_coll.coll_bcast_module);
|
||||
err = comm->c_coll->coll_bcast(rbuf, (ptrdiff_t)rcount * ompi_comm_size(comm), rdtype,
|
||||
0, comm, comm->c_coll->coll_bcast_module);
|
||||
} else {
|
||||
ompi_datatype_t* temptype;
|
||||
ompi_datatype_create_contiguous(ompi_comm_size(comm), rdtype, &temptype);
|
||||
ompi_datatype_commit(&temptype);
|
||||
err = comm->c_coll.coll_bcast(rbuf, rcount, temptype,
|
||||
0, comm, comm->c_coll.coll_bcast_module);
|
||||
err = comm->c_coll->coll_bcast(rbuf, rcount, temptype,
|
||||
0, comm, comm->c_coll->coll_bcast_module);
|
||||
ompi_datatype_destroy(&temptype);
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2015 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -623,10 +623,10 @@ ompi_coll_base_allgatherv_intra_basic_default(const void *sbuf, int scount,
|
||||
send_type = sdtype;
|
||||
}
|
||||
|
||||
err = comm->c_coll.coll_gatherv(send_buf,
|
||||
err = comm->c_coll->coll_gatherv(send_buf,
|
||||
scount, send_type,rbuf,
|
||||
rcounts, disps, rdtype, 0,
|
||||
comm, comm->c_coll.coll_gatherv_module);
|
||||
comm, comm->c_coll->coll_gatherv_module);
|
||||
if (MPI_SUCCESS != err) {
|
||||
return err;
|
||||
}
|
||||
@ -653,8 +653,8 @@ ompi_coll_base_allgatherv_intra_basic_default(const void *sbuf, int scount,
|
||||
return err;
|
||||
}
|
||||
|
||||
comm->c_coll.coll_bcast(rbuf, 1, newtype, 0, comm,
|
||||
comm->c_coll.coll_bcast_module);
|
||||
comm->c_coll->coll_bcast(rbuf, 1, newtype, 0, comm,
|
||||
comm->c_coll->coll_bcast_module);
|
||||
|
||||
ompi_datatype_destroy (&newtype);
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2015 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -65,22 +65,22 @@ ompi_coll_base_allreduce_intra_nonoverlapping(const void *sbuf, void *rbuf, int
|
||||
|
||||
if (MPI_IN_PLACE == sbuf) {
|
||||
if (0 == rank) {
|
||||
err = comm->c_coll.coll_reduce (MPI_IN_PLACE, rbuf, count, dtype,
|
||||
op, 0, comm, comm->c_coll.coll_reduce_module);
|
||||
err = comm->c_coll->coll_reduce (MPI_IN_PLACE, rbuf, count, dtype,
|
||||
op, 0, comm, comm->c_coll->coll_reduce_module);
|
||||
} else {
|
||||
err = comm->c_coll.coll_reduce (rbuf, NULL, count, dtype, op, 0,
|
||||
comm, comm->c_coll.coll_reduce_module);
|
||||
err = comm->c_coll->coll_reduce (rbuf, NULL, count, dtype, op, 0,
|
||||
comm, comm->c_coll->coll_reduce_module);
|
||||
}
|
||||
} else {
|
||||
err = comm->c_coll.coll_reduce (sbuf, rbuf, count, dtype, op, 0,
|
||||
comm, comm->c_coll.coll_reduce_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,
|
||||
comm->c_coll.coll_bcast_module);
|
||||
return comm->c_coll->coll_bcast (rbuf, count, dtype, 0, comm,
|
||||
comm->c_coll->coll_bcast_module);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -3,7 +3,7 @@
|
||||
* 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
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -85,17 +85,17 @@ static OBJ_CLASS_INSTANCE(avail_coll_t, opal_list_item_t, NULL, NULL);
|
||||
#define COPY(module, comm, func) \
|
||||
do { \
|
||||
if (NULL != module->coll_ ## func) { \
|
||||
if (NULL != comm->c_coll.coll_ ## func ## _module) { \
|
||||
OBJ_RELEASE(comm->c_coll.coll_ ## func ## _module); \
|
||||
if (NULL != comm->c_coll->coll_ ## func ## _module) { \
|
||||
OBJ_RELEASE(comm->c_coll->coll_ ## func ## _module); \
|
||||
} \
|
||||
comm->c_coll.coll_ ## func = module->coll_ ## func; \
|
||||
comm->c_coll.coll_ ## func ## _module = module; \
|
||||
comm->c_coll->coll_ ## func = module->coll_ ## func; \
|
||||
comm->c_coll->coll_ ## func ## _module = module; \
|
||||
OBJ_RETAIN(module); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define CHECK_NULL(what, comm, func) \
|
||||
( (what) = # func , NULL == (comm)->c_coll.coll_ ## func)
|
||||
( (what) = # func , NULL == (comm)->c_coll->coll_ ## func)
|
||||
|
||||
/*
|
||||
* This function is called at the initialization time of every
|
||||
@ -118,7 +118,7 @@ int mca_coll_base_comm_select(ompi_communicator_t * comm)
|
||||
|
||||
/* Initialize all the relevant pointers, since they're used as
|
||||
* sentinel values */
|
||||
memset(&comm->c_coll, 0, sizeof(mca_coll_base_comm_coll_t));
|
||||
comm->c_coll = (mca_coll_base_comm_coll_t*)calloc(1, sizeof(mca_coll_base_comm_coll_t));
|
||||
|
||||
opal_output_verbose(10, ompi_coll_base_framework.framework_output,
|
||||
"coll:base:comm_select: Checking all available modules");
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -34,19 +34,17 @@
|
||||
#include "ompi/communicator/communicator.h"
|
||||
#include "ompi/mca/coll/base/base.h"
|
||||
|
||||
#define CLOSE(comm, func) \
|
||||
do { \
|
||||
if (NULL != comm->c_coll.coll_ ## func ## _module) { \
|
||||
if (NULL != comm->c_coll.coll_ ## func ## _module-> \
|
||||
coll_module_disable) { \
|
||||
comm->c_coll.coll_ ## func ## _module-> \
|
||||
coll_module_disable( \
|
||||
comm->c_coll.coll_ ## func ## _module, comm); \
|
||||
} \
|
||||
OBJ_RELEASE(comm->c_coll.coll_ ## func ## _module); \
|
||||
comm->c_coll.coll_## func = NULL; \
|
||||
comm->c_coll.coll_## func ## _module = NULL; \
|
||||
} \
|
||||
#define CLOSE(comm, func) \
|
||||
do { \
|
||||
if (NULL != comm->c_coll->coll_ ## func ## _module) { \
|
||||
if (NULL != comm->c_coll->coll_ ## func ## _module->coll_module_disable) { \
|
||||
comm->c_coll->coll_ ## func ## _module->coll_module_disable( \
|
||||
comm->c_coll->coll_ ## func ## _module, comm); \
|
||||
} \
|
||||
OBJ_RELEASE(comm->c_coll->coll_ ## func ## _module); \
|
||||
comm->c_coll->coll_## func = NULL; \
|
||||
comm->c_coll->coll_## func ## _module = NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
int mca_coll_base_comm_unselect(ompi_communicator_t * comm)
|
||||
@ -101,6 +99,10 @@ int mca_coll_base_comm_unselect(ompi_communicator_t * comm)
|
||||
|
||||
CLOSE(comm, reduce_local);
|
||||
|
||||
free(comm->c_coll);
|
||||
comm->c_coll = NULL;
|
||||
|
||||
/* All done */
|
||||
return OMPI_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2015 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -66,11 +66,11 @@ int ompi_coll_base_reduce_scatter_intra_nonoverlapping(const void *sbuf, void *r
|
||||
if (MPI_IN_PLACE == sbuf) {
|
||||
/* 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, comm->c_coll.coll_reduce_module);
|
||||
err = comm->c_coll->coll_reduce (MPI_IN_PLACE, tmprbuf, total_count,
|
||||
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, comm->c_coll.coll_reduce_module);
|
||||
err = comm->c_coll->coll_reduce(tmprbuf, NULL, total_count,
|
||||
dtype, op, root, comm, comm->c_coll->coll_reduce_module);
|
||||
}
|
||||
} else {
|
||||
if (root == rank) {
|
||||
@ -82,8 +82,8 @@ int ompi_coll_base_reduce_scatter_intra_nonoverlapping(const void *sbuf, void *r
|
||||
tmprbuf_free = (char*) malloc(dsize);
|
||||
tmprbuf = tmprbuf_free - gap;
|
||||
}
|
||||
err = comm->c_coll.coll_reduce (sbuf, tmprbuf, total_count,
|
||||
dtype, op, root, comm, comm->c_coll.coll_reduce_module);
|
||||
err = comm->c_coll->coll_reduce (sbuf, tmprbuf, total_count,
|
||||
dtype, op, root, comm, comm->c_coll->coll_reduce_module);
|
||||
}
|
||||
if (MPI_SUCCESS != err) {
|
||||
if (NULL != tmprbuf_free) free(tmprbuf_free);
|
||||
@ -96,13 +96,13 @@ int ompi_coll_base_reduce_scatter_intra_nonoverlapping(const void *sbuf, void *r
|
||||
displs[i] = displs[i-1] + rcounts[i-1];
|
||||
}
|
||||
if (MPI_IN_PLACE == sbuf && root == rank) {
|
||||
err = comm->c_coll.coll_scatterv (tmprbuf, rcounts, displs, dtype,
|
||||
err = comm->c_coll->coll_scatterv (tmprbuf, rcounts, displs, dtype,
|
||||
MPI_IN_PLACE, 0, MPI_DATATYPE_NULL,
|
||||
root, comm, comm->c_coll.coll_scatterv_module);
|
||||
root, comm, comm->c_coll->coll_scatterv_module);
|
||||
} else {
|
||||
err = comm->c_coll.coll_scatterv (tmprbuf, rcounts, displs, dtype,
|
||||
err = comm->c_coll->coll_scatterv (tmprbuf, rcounts, displs, dtype,
|
||||
rbuf, rcounts[rank], dtype,
|
||||
root, comm, comm->c_coll.coll_scatterv_module);
|
||||
root, comm, comm->c_coll->coll_scatterv_module);
|
||||
}
|
||||
free(displs);
|
||||
if (NULL != tmprbuf_free) free(tmprbuf_free);
|
||||
|
@ -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-2015 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -61,9 +61,9 @@ mca_coll_basic_allgatherv_inter(const void *sbuf, int scount,
|
||||
sdisps[i] = 0;
|
||||
}
|
||||
|
||||
err = comm->c_coll.coll_alltoallv(sbuf, scounts, sdisps, sdtype,
|
||||
err = comm->c_coll->coll_alltoallv(sbuf, scounts, sdisps, sdtype,
|
||||
rbuf, rcounts, disps, rdtype, comm,
|
||||
comm->c_coll.coll_alltoallv_module);
|
||||
comm->c_coll->coll_alltoallv_module);
|
||||
|
||||
if (NULL != scounts) {
|
||||
free(scounts);
|
||||
|
@ -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-2015 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -51,18 +51,18 @@ mca_coll_basic_allreduce_intra(const 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, comm->c_coll.coll_reduce_module);
|
||||
err = comm->c_coll->coll_reduce(MPI_IN_PLACE, rbuf, count, dtype, op, 0, comm, comm->c_coll->coll_reduce_module);
|
||||
} else {
|
||||
err = comm->c_coll.coll_reduce(rbuf, NULL, count, dtype, op, 0, comm, comm->c_coll.coll_reduce_module);
|
||||
err = comm->c_coll->coll_reduce(rbuf, NULL, count, dtype, op, 0, comm, comm->c_coll->coll_reduce_module);
|
||||
}
|
||||
} else {
|
||||
err = comm->c_coll.coll_reduce(sbuf, rbuf, count, dtype, op, 0, comm, comm->c_coll.coll_reduce_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, comm->c_coll.coll_bcast_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-2015 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -127,6 +127,6 @@ mca_coll_basic_barrier_inter_lin(struct ompi_communicator_t *comm,
|
||||
int result;
|
||||
|
||||
rank = ompi_comm_rank(comm);
|
||||
return comm->c_coll.coll_allreduce(&rank, &result, 1, MPI_INT, MPI_MAX,
|
||||
comm, comm->c_coll.coll_allreduce_module);
|
||||
return comm->c_coll->coll_allreduce(&rank, &result, 1, MPI_INT, MPI_MAX,
|
||||
comm, comm->c_coll->coll_allreduce_module);
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2014 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -331,14 +331,14 @@ mca_coll_basic_reduce_scatter_intra(const void *sbuf, void *rbuf, const int *rco
|
||||
|
||||
/* reduction */
|
||||
err =
|
||||
comm->c_coll.coll_reduce(sbuf, recv_buf, count, dtype, op, 0,
|
||||
comm, comm->c_coll.coll_reduce_module);
|
||||
comm->c_coll->coll_reduce(sbuf, recv_buf, count, dtype, op, 0,
|
||||
comm, comm->c_coll->coll_reduce_module);
|
||||
|
||||
/* scatter */
|
||||
if (MPI_SUCCESS == err) {
|
||||
err = comm->c_coll.coll_scatterv(recv_buf, rcounts, disps, dtype,
|
||||
err = comm->c_coll->coll_scatterv(recv_buf, rcounts, disps, dtype,
|
||||
rbuf, rcounts[rank], dtype, 0,
|
||||
comm, comm->c_coll.coll_scatterv_module);
|
||||
comm, comm->c_coll->coll_scatterv_module);
|
||||
}
|
||||
}
|
||||
|
||||
@ -469,10 +469,10 @@ mca_coll_basic_reduce_scatter_inter(const void *sbuf, void *rbuf, const int *rco
|
||||
}
|
||||
|
||||
/* Now do a scatterv on the local communicator */
|
||||
err = comm->c_local_comm->c_coll.coll_scatterv(lbuf, rcounts, disps, dtype,
|
||||
err = comm->c_local_comm->c_coll->coll_scatterv(lbuf, rcounts, disps, dtype,
|
||||
rbuf, rcounts[rank], dtype, 0,
|
||||
comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_scatterv_module);
|
||||
comm->c_local_comm->c_coll->coll_scatterv_module);
|
||||
|
||||
exit:
|
||||
if (NULL != tmpbuf) {
|
||||
|
@ -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-2014 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -92,14 +92,14 @@ mca_coll_basic_reduce_scatter_block_intra(const void *sbuf, void *rbuf, int rcou
|
||||
|
||||
/* reduction */
|
||||
err =
|
||||
comm->c_coll.coll_reduce(sbuf, recv_buf, count, dtype, op, 0,
|
||||
comm, comm->c_coll.coll_reduce_module);
|
||||
comm->c_coll->coll_reduce(sbuf, recv_buf, count, dtype, op, 0,
|
||||
comm, comm->c_coll->coll_reduce_module);
|
||||
|
||||
/* scatter */
|
||||
if (MPI_SUCCESS == err) {
|
||||
err = comm->c_coll.coll_scatter(recv_buf, rcount, dtype,
|
||||
err = comm->c_coll->coll_scatter(recv_buf, rcount, dtype,
|
||||
rbuf, rcount, dtype, 0,
|
||||
comm, comm->c_coll.coll_scatter_module);
|
||||
comm, comm->c_coll->coll_scatter_module);
|
||||
}
|
||||
|
||||
cleanup:
|
||||
@ -211,10 +211,10 @@ mca_coll_basic_reduce_scatter_block_inter(const void *sbuf, void *rbuf, int rcou
|
||||
}
|
||||
|
||||
/* Now do a scatterv on the local communicator */
|
||||
err = comm->c_local_comm->c_coll.coll_scatter(lbuf, rcount, dtype,
|
||||
err = comm->c_local_comm->c_coll->coll_scatter(lbuf, rcount, dtype,
|
||||
rbuf, rcount, dtype, 0,
|
||||
comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_scatter_module);
|
||||
comm->c_local_comm->c_coll->coll_scatter_module);
|
||||
|
||||
exit:
|
||||
if (NULL != tmpbuf) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2015 The University of Tennessee and The University
|
||||
* Copyright (c) 2014-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2014-2015 NVIDIA Corporation. All rights reserved.
|
||||
@ -36,7 +36,6 @@ mca_coll_cuda_allreduce(const void *sbuf, void *rbuf, int count,
|
||||
mca_coll_cuda_module_t *s = (mca_coll_cuda_module_t*) module;
|
||||
ptrdiff_t gap;
|
||||
char *rbuf1 = NULL, *sbuf1 = NULL, *rbuf2 = NULL;
|
||||
const char *sbuf2;
|
||||
size_t bufsize;
|
||||
int rc;
|
||||
|
||||
@ -48,7 +47,6 @@ mca_coll_cuda_allreduce(const void *sbuf, void *rbuf, int count,
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
opal_cuda_memcpy_sync(sbuf1, sbuf, bufsize);
|
||||
sbuf2 = sbuf; /* save away original buffer */
|
||||
sbuf = sbuf1 - gap;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2015 The University of Tennessee and The University
|
||||
* Copyright (c) 2014-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2014-2015 NVIDIA Corporation. All rights reserved.
|
||||
@ -28,7 +28,6 @@ int mca_coll_cuda_exscan(const void *sbuf, void *rbuf, int count,
|
||||
mca_coll_cuda_module_t *s = (mca_coll_cuda_module_t*) module;
|
||||
ptrdiff_t gap;
|
||||
char *rbuf1 = NULL, *sbuf1 = NULL, *rbuf2 = NULL;
|
||||
const char *sbuf2;
|
||||
size_t bufsize;
|
||||
int rc;
|
||||
|
||||
@ -40,7 +39,6 @@ int mca_coll_cuda_exscan(const void *sbuf, void *rbuf, int count,
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
opal_cuda_memcpy_sync(sbuf1, sbuf, bufsize);
|
||||
sbuf2 = sbuf; /* save away original buffer */
|
||||
sbuf = sbuf1 - gap;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014 The University of Tennessee and The University
|
||||
* Copyright (c) 2014-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2014 NVIDIA Corporation. All rights reserved.
|
||||
@ -122,14 +122,14 @@ int mca_coll_cuda_module_enable(mca_coll_base_module_t *module,
|
||||
char *msg = NULL;
|
||||
mca_coll_cuda_module_t *s = (mca_coll_cuda_module_t*) module;
|
||||
|
||||
#define CHECK_AND_RETAIN(src, dst, name) \
|
||||
if (NULL == (src)->c_coll.coll_ ## name ## _module) { \
|
||||
good = false; \
|
||||
msg = #name; \
|
||||
} else if (good) { \
|
||||
(dst)->c_coll.coll_ ## name ## _module = (src)->c_coll.coll_ ## name ## _module;\
|
||||
(dst)->c_coll.coll_ ## name = (src)->c_coll.coll_ ## name ; \
|
||||
OBJ_RETAIN((src)->c_coll.coll_ ## name ## _module); \
|
||||
#define CHECK_AND_RETAIN(src, dst, name) \
|
||||
if (NULL == (src)->c_coll->coll_ ## name ## _module) { \
|
||||
good = false; \
|
||||
msg = #name; \
|
||||
} else if (good) { \
|
||||
(dst)->c_coll.coll_ ## name ## _module = (src)->c_coll->coll_ ## name ## _module; \
|
||||
(dst)->c_coll.coll_ ## name = (src)->c_coll->coll_ ## name; \
|
||||
OBJ_RETAIN((src)->c_coll->coll_ ## name ## _module); \
|
||||
}
|
||||
|
||||
CHECK_AND_RETAIN(comm, s, allreduce);
|
||||
@ -145,11 +145,10 @@ int mca_coll_cuda_module_enable(mca_coll_base_module_t *module,
|
||||
/* All done */
|
||||
if (good) {
|
||||
return OMPI_SUCCESS;
|
||||
} else {
|
||||
orte_show_help("help-mpi-coll-cuda.txt", "missing collective", true,
|
||||
orte_process_info.nodename,
|
||||
mca_coll_cuda_component.priority, msg);
|
||||
return OMPI_ERR_NOT_FOUND;
|
||||
}
|
||||
orte_show_help("help-mpi-coll-cuda.txt", "missing collective", true,
|
||||
orte_process_info.nodename,
|
||||
mca_coll_cuda_component.priority, msg);
|
||||
return OMPI_ERR_NOT_FOUND;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2015 The University of Tennessee and The University
|
||||
* Copyright (c) 2014-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2014-2015 NVIDIA Corporation. All rights reserved.
|
||||
@ -40,7 +40,6 @@ mca_coll_cuda_reduce_scatter_block(const void *sbuf, void *rbuf, int rcount,
|
||||
mca_coll_cuda_module_t *s = (mca_coll_cuda_module_t*) module;
|
||||
ptrdiff_t gap;
|
||||
char *rbuf1 = NULL, *sbuf1 = NULL, *rbuf2 = NULL;
|
||||
const char *sbuf2;
|
||||
size_t sbufsize, rbufsize;
|
||||
int rc;
|
||||
|
||||
@ -54,7 +53,6 @@ mca_coll_cuda_reduce_scatter_block(const void *sbuf, void *rbuf, int rcount,
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
opal_cuda_memcpy_sync(sbuf1, sbuf, sbufsize);
|
||||
sbuf2 = sbuf; /* save away original buffer */
|
||||
sbuf = sbuf1 - gap;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2015 The University of Tennessee and The University
|
||||
* Copyright (c) 2014-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2014-2015 NVIDIA Corporation. All rights reserved.
|
||||
@ -35,7 +35,6 @@ int mca_coll_cuda_scan(const void *sbuf, void *rbuf, int count,
|
||||
mca_coll_cuda_module_t *s = (mca_coll_cuda_module_t*) module;
|
||||
ptrdiff_t gap;
|
||||
char *rbuf1 = NULL, *sbuf1 = NULL, *rbuf2 = NULL;
|
||||
const char *sbuf2;
|
||||
size_t bufsize;
|
||||
int rc;
|
||||
|
||||
@ -47,7 +46,6 @@ int mca_coll_cuda_scan(const void *sbuf, void *rbuf, int count,
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
opal_cuda_memcpy_sync(sbuf1, sbuf, bufsize);
|
||||
sbuf2 = sbuf; /* save away original buffer */
|
||||
sbuf = sbuf1 - gap;
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Copyright (c) 2004-2007 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
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -166,8 +166,8 @@ mca_coll_demo_comm_query(struct ompi_communicator_t *comm, int *priority)
|
||||
|
||||
#define COPY(comm, module, func) \
|
||||
do { \
|
||||
module->underlying.coll_ ## func = comm->c_coll.coll_ ## func; \
|
||||
module->underlying.coll_ ## func = comm->c_coll.coll_ ## func; \
|
||||
module->underlying.coll_ ## func = comm->c_coll->coll_ ## func; \
|
||||
module->underlying.coll_ ## func = comm->c_coll->coll_ ## func; \
|
||||
if (NULL != module->underlying.coll_ ## func ## _module) { \
|
||||
OBJ_RETAIN(module->underlying.coll_ ## func ## _module); \
|
||||
} \
|
||||
|
@ -2,6 +2,9 @@
|
||||
* Copyright (c) 2011 Mellanox Technologies. All rights reserved.
|
||||
* Copyright (c) 2014 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -118,8 +121,8 @@ static int __fca_comm_new(mca_coll_fca_module_t *fca_module)
|
||||
}
|
||||
|
||||
/* Get all rank info sizes using MPI_Gather */
|
||||
rc = comm->c_coll.coll_gather(&info_size, 1, MPI_INT, rcounts, 1, MPI_INT, 0,
|
||||
comm, comm->c_coll.coll_gather_module);
|
||||
rc = comm->c_coll->coll_gather(&info_size, 1, MPI_INT, rcounts, 1, MPI_INT, 0,
|
||||
comm, comm->c_coll->coll_gather_module);
|
||||
if (rc != OMPI_SUCCESS)
|
||||
return rc;
|
||||
|
||||
@ -144,9 +147,9 @@ static int __fca_comm_new(mca_coll_fca_module_t *fca_module)
|
||||
}
|
||||
|
||||
/* Send all node managers information to rank0 using MPI_Gatherv */
|
||||
rc = comm->c_coll.coll_gatherv(my_info, info_size, MPI_BYTE,
|
||||
rc = comm->c_coll->coll_gatherv(my_info, info_size, MPI_BYTE,
|
||||
all_info, rcounts, displs, MPI_BYTE, 0,
|
||||
comm, comm->c_coll.coll_gather_module);
|
||||
comm, comm->c_coll->coll_gather_module);
|
||||
if (rc != OMPI_SUCCESS) {
|
||||
FCA_ERROR("Failed to gather rank information to rank0: %d", rc);
|
||||
return rc;
|
||||
@ -284,7 +287,7 @@ static int __create_fca_comm(mca_coll_fca_module_t *fca_module)
|
||||
}
|
||||
|
||||
part_of_hash_index = modular_pow(cm->fca_primes[grank % cm->fca_number_of_primes], grank, cm->fca_hash_size);
|
||||
rc = comm->c_coll.coll_allreduce(&part_of_hash_index, &hash_index, 1, MPI_INT, MPI_SUM, comm, comm->c_coll.coll_allreduce_module);
|
||||
rc = comm->c_coll->coll_allreduce(&part_of_hash_index, &hash_index, 1, MPI_INT, MPI_SUM, comm, comm->c_coll->coll_allreduce_module);
|
||||
if (rc != OMPI_SUCCESS) {
|
||||
FCA_ERROR("Failed to reduce hash_index: %d", rc);
|
||||
return rc;
|
||||
@ -448,9 +451,9 @@ static void __destroy_fca_comm(mca_coll_fca_module_t *fca_module)
|
||||
}
|
||||
|
||||
#define FCA_SAVE_PREV_COLL_API(__api) do {\
|
||||
fca_module->previous_ ## __api = comm->c_coll.coll_ ## __api;\
|
||||
fca_module->previous_ ## __api ## _module = comm->c_coll.coll_ ## __api ## _module;\
|
||||
if (!comm->c_coll.coll_ ## __api || !comm->c_coll.coll_ ## __api ## _module) {\
|
||||
fca_module->previous_ ## __api = comm->c_coll->coll_ ## __api;\
|
||||
fca_module->previous_ ## __api ## _module = comm->c_coll->coll_ ## __api ## _module;\
|
||||
if (!comm->c_coll->coll_ ## __api || !comm->c_coll->coll_ ## __api ## _module) {\
|
||||
FCA_VERBOSE(1, "(%d/%s): no underlying " # __api"; disqualifying myself",\
|
||||
comm->c_contextid, comm->c_name);\
|
||||
return OMPI_ERROR;\
|
||||
|
@ -1,11 +1,14 @@
|
||||
/**
|
||||
Copyright (c) 2011 Mellanox Technologies. All rights reserved.
|
||||
Copyright (c) 2016 IBM Corporation. All rights reserved.
|
||||
$COPYRIGHT$
|
||||
|
||||
Additional copyrights may follow
|
||||
|
||||
$HEADER$
|
||||
* Copyright (c) 2011 Mellanox Technologies. All rights reserved.
|
||||
* Copyright (c) 2016 IBM Corporation. All rights reserved.
|
||||
* Copyright (c) 2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
@ -149,9 +152,9 @@ static void mca_coll_hcoll_module_destruct(mca_coll_hcoll_module_t *hcoll_module
|
||||
}
|
||||
|
||||
#define HCOL_SAVE_PREV_COLL_API(__api) do {\
|
||||
hcoll_module->previous_ ## __api = comm->c_coll.coll_ ## __api;\
|
||||
hcoll_module->previous_ ## __api ## _module = comm->c_coll.coll_ ## __api ## _module;\
|
||||
if (!comm->c_coll.coll_ ## __api || !comm->c_coll.coll_ ## __api ## _module) {\
|
||||
hcoll_module->previous_ ## __api = comm->c_coll->coll_ ## __api;\
|
||||
hcoll_module->previous_ ## __api ## _module = comm->c_coll->coll_ ## __api ## _module;\
|
||||
if (!comm->c_coll->coll_ ## __api || !comm->c_coll->coll_ ## __api ## _module) {\
|
||||
return OMPI_ERROR;\
|
||||
}\
|
||||
OBJ_RETAIN(hcoll_module->previous_ ## __api ## _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-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -66,10 +66,10 @@ mca_coll_inter_allgather_inter(const void *sbuf, int scount,
|
||||
}
|
||||
ptmp = ptmp_free - gap;
|
||||
|
||||
err = comm->c_local_comm->c_coll.coll_gather(sbuf, scount, sdtype,
|
||||
err = comm->c_local_comm->c_coll->coll_gather(sbuf, scount, sdtype,
|
||||
ptmp, scount, sdtype,
|
||||
0, comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_gather_module);
|
||||
comm->c_local_comm->c_coll->coll_gather_module);
|
||||
if (OMPI_SUCCESS != err) {
|
||||
goto exit;
|
||||
}
|
||||
@ -99,9 +99,9 @@ mca_coll_inter_allgather_inter(const void *sbuf, int scount,
|
||||
}
|
||||
/* bcast the message to all the local processes */
|
||||
if ( rcount > 0 ) {
|
||||
err = comm->c_local_comm->c_coll.coll_bcast(rbuf, rcount*rsize, rdtype,
|
||||
err = comm->c_local_comm->c_coll->coll_bcast(rbuf, rcount*rsize, rdtype,
|
||||
root, comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_bcast_module);
|
||||
comm->c_local_comm->c_coll->coll_bcast_module);
|
||||
if (OMPI_SUCCESS != err) {
|
||||
goto exit;
|
||||
}
|
||||
|
@ -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-2014 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -66,10 +66,10 @@ mca_coll_inter_allgatherv_inter(const void *sbuf, int scount,
|
||||
}
|
||||
}
|
||||
/* Local gather to get the scount of each process */
|
||||
err = comm->c_local_comm->c_coll.coll_gather(&scount, 1, MPI_INT,
|
||||
err = comm->c_local_comm->c_coll->coll_gather(&scount, 1, MPI_INT,
|
||||
count, 1, MPI_INT,
|
||||
0, comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_gather_module);
|
||||
comm->c_local_comm->c_coll->coll_gather_module);
|
||||
if (OMPI_SUCCESS != err) {
|
||||
goto exit;
|
||||
}
|
||||
@ -93,10 +93,10 @@ mca_coll_inter_allgatherv_inter(const void *sbuf, int scount,
|
||||
ptmp = ptmp_free - gap;
|
||||
}
|
||||
}
|
||||
err = comm->c_local_comm->c_coll.coll_gatherv(sbuf, scount, sdtype,
|
||||
err = comm->c_local_comm->c_coll->coll_gatherv(sbuf, scount, sdtype,
|
||||
ptmp, count, displace,
|
||||
sdtype,0, comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_gatherv_module);
|
||||
comm->c_local_comm->c_coll->coll_gatherv_module);
|
||||
if (OMPI_SUCCESS != err) {
|
||||
goto exit;
|
||||
}
|
||||
@ -128,9 +128,9 @@ mca_coll_inter_allgatherv_inter(const void *sbuf, int scount,
|
||||
}
|
||||
|
||||
/* bcast the message to all the local processes */
|
||||
err = comm->c_local_comm->c_coll.coll_bcast(rbuf, 1, ndtype,
|
||||
err = comm->c_local_comm->c_coll->coll_bcast(rbuf, 1, ndtype,
|
||||
0, comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_bcast_module);
|
||||
comm->c_local_comm->c_coll->coll_bcast_module);
|
||||
exit:
|
||||
if( NULL != ndtype ) {
|
||||
ompi_datatype_destroy(&ndtype);
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -63,10 +63,10 @@ mca_coll_inter_allreduce_inter(const void *sbuf, void *rbuf, int count,
|
||||
}
|
||||
pml_buffer = tmpbuf - gap;
|
||||
|
||||
err = comm->c_local_comm->c_coll.coll_reduce(sbuf, pml_buffer, count,
|
||||
err = comm->c_local_comm->c_coll->coll_reduce(sbuf, pml_buffer, count,
|
||||
dtype, op, root,
|
||||
comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_reduce_module);
|
||||
comm->c_local_comm->c_coll->coll_reduce_module);
|
||||
if (OMPI_SUCCESS != err) {
|
||||
goto exit;
|
||||
}
|
||||
@ -95,9 +95,9 @@ mca_coll_inter_allreduce_inter(const void *sbuf, void *rbuf, int count,
|
||||
}
|
||||
|
||||
/* bcast the message to all the local processes */
|
||||
err = comm->c_local_comm->c_coll.coll_bcast(rbuf, count, dtype,
|
||||
err = comm->c_local_comm->c_coll->coll_bcast(rbuf, count, dtype,
|
||||
root, comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_bcast_module);
|
||||
comm->c_local_comm->c_coll->coll_bcast_module);
|
||||
if (OMPI_SUCCESS != err) {
|
||||
goto exit;
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -60,9 +60,9 @@ mca_coll_inter_bcast_inter(void *buff, int count,
|
||||
return err;
|
||||
}
|
||||
}
|
||||
err = comm->c_local_comm->c_coll.coll_bcast(buff, count, datatype, 0,
|
||||
err = comm->c_local_comm->c_coll->coll_bcast(buff, count, datatype, 0,
|
||||
comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_bcast_module);
|
||||
comm->c_local_comm->c_coll->coll_bcast_module);
|
||||
} else {
|
||||
/* root section, send to the first process of the remote group */
|
||||
err = MCA_PML_CALL(send(buff, count, datatype, 0,
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -70,10 +70,10 @@ mca_coll_inter_gather_inter(const void *sbuf, int scount,
|
||||
}
|
||||
ptmp = ptmp_free - gap;
|
||||
|
||||
err = comm->c_local_comm->c_coll.coll_gather(sbuf, scount, sdtype,
|
||||
err = comm->c_local_comm->c_coll->coll_gather(sbuf, scount, sdtype,
|
||||
ptmp, scount, sdtype,
|
||||
0, comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_gather_module);
|
||||
comm->c_local_comm->c_coll->coll_gather_module);
|
||||
if (0 == rank) {
|
||||
/* First process sends data to the root */
|
||||
err = MCA_PML_CALL(send(ptmp, scount*size_local, sdtype, root,
|
||||
|
@ -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-2014 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -76,10 +76,10 @@ mca_coll_inter_gatherv_inter(const void *sbuf, int scount,
|
||||
}
|
||||
}
|
||||
|
||||
err = comm->c_local_comm->c_coll.coll_gather(&scount, 1, MPI_INT,
|
||||
err = comm->c_local_comm->c_coll->coll_gather(&scount, 1, MPI_INT,
|
||||
count, 1, MPI_INT,
|
||||
0, comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_gather_module);
|
||||
comm->c_local_comm->c_coll->coll_gather_module);
|
||||
if (OMPI_SUCCESS != err) {
|
||||
goto exit;
|
||||
}
|
||||
@ -103,10 +103,10 @@ mca_coll_inter_gatherv_inter(const void *sbuf, int scount,
|
||||
ptmp = ptmp_free - gap;
|
||||
}
|
||||
}
|
||||
err = comm->c_local_comm->c_coll.coll_gatherv(sbuf, scount, sdtype,
|
||||
err = comm->c_local_comm->c_coll->coll_gatherv(sbuf, scount, sdtype,
|
||||
ptmp, count, displace,
|
||||
sdtype,0, comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_gatherv_module);
|
||||
comm->c_local_comm->c_coll->coll_gatherv_module);
|
||||
if (OMPI_SUCCESS != err) {
|
||||
goto exit;
|
||||
}
|
||||
|
@ -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-2014 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -68,9 +68,9 @@ mca_coll_inter_reduce_inter(const void *sbuf, void *rbuf, int count,
|
||||
}
|
||||
pml_buffer = free_buffer - gap;
|
||||
|
||||
err = comm->c_local_comm->c_coll.coll_reduce(sbuf, pml_buffer, count,
|
||||
err = comm->c_local_comm->c_coll->coll_reduce(sbuf, pml_buffer, count,
|
||||
dtype, op, 0, comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_reduce_module);
|
||||
comm->c_local_comm->c_coll->coll_reduce_module);
|
||||
if (0 == rank) {
|
||||
/* First process sends the result to the root */
|
||||
err = MCA_PML_CALL(send(pml_buffer, count, dtype, root,
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -77,10 +77,10 @@ mca_coll_inter_scatter_inter(const void *sbuf, int scount,
|
||||
}
|
||||
}
|
||||
/* Perform the scatter locally with the first process as root */
|
||||
err = comm->c_local_comm->c_coll.coll_scatter(ptmp, rcount, rdtype,
|
||||
err = comm->c_local_comm->c_coll->coll_scatter(ptmp, rcount, rdtype,
|
||||
rbuf, rcount, rdtype,
|
||||
0, comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_scatter_module);
|
||||
comm->c_local_comm->c_coll->coll_scatter_module);
|
||||
if (NULL != ptmp_free) {
|
||||
free(ptmp_free);
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -96,10 +96,10 @@ mca_coll_inter_scatterv_inter(const void *sbuf, const int *scounts,
|
||||
}
|
||||
}
|
||||
/* perform the scatterv locally */
|
||||
err = comm->c_local_comm->c_coll.coll_scatterv(ptmp, counts, displace,
|
||||
err = comm->c_local_comm->c_coll->coll_scatterv(ptmp, counts, displace,
|
||||
rdtype, rbuf, rcount,
|
||||
rdtype, 0, comm->c_local_comm,
|
||||
comm->c_local_comm->c_coll.coll_scatterv_module);
|
||||
comm->c_local_comm->c_coll->coll_scatterv_module);
|
||||
if (OMPI_SUCCESS != err) {
|
||||
return err;
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Copyright (c) 2004-2007 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
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -123,9 +123,9 @@ ptl_datatype_t ompi_coll_portals4_atomic_datatype [OMPI_DATATYPE_MPI_MAX_PREDEFI
|
||||
|
||||
#define PORTALS4_SAVE_PREV_COLL_API(__module, __comm, __api) \
|
||||
do { \
|
||||
__module->previous_ ## __api = __comm->c_coll.coll_ ## __api; \
|
||||
__module->previous_ ## __api ## _module = __comm->c_coll.coll_ ## __api ## _module; \
|
||||
if (!comm->c_coll.coll_ ## __api || !comm->c_coll.coll_ ## __api ## _module) { \
|
||||
__module->previous_ ## __api = __comm->c_coll->coll_ ## __api; \
|
||||
__module->previous_ ## __api ## _module = __comm->c_coll->coll_ ## __api ## _module; \
|
||||
if (!comm->c_coll->coll_ ## __api || !comm->c_coll->coll_ ## __api ## _module) { \
|
||||
opal_output_verbose(1, ompi_coll_base_framework.framework_output, \
|
||||
"(%d/%s): no underlying " # __api"; disqualifying myself", \
|
||||
__comm->c_contextid, __comm->c_name); \
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2014 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -224,8 +224,8 @@ mca_coll_sm_comm_query(struct ompi_communicator_t *comm, int *priority)
|
||||
static int sm_module_enable(mca_coll_base_module_t *module,
|
||||
struct ompi_communicator_t *comm)
|
||||
{
|
||||
if (NULL == comm->c_coll.coll_reduce ||
|
||||
NULL == comm->c_coll.coll_reduce_module) {
|
||||
if (NULL == comm->c_coll->coll_reduce ||
|
||||
NULL == comm->c_coll->coll_reduce_module) {
|
||||
opal_output_verbose(10, ompi_coll_base_framework.framework_output,
|
||||
"coll:sm:enable (%d/%s): no underlying reduce; disqualifying myself",
|
||||
comm->c_contextid, comm->c_name);
|
||||
@ -458,8 +458,8 @@ int ompi_coll_sm_lazy_enable(mca_coll_base_module_t *module,
|
||||
}
|
||||
|
||||
/* Save previous component's reduce information */
|
||||
sm_module->previous_reduce = comm->c_coll.coll_reduce;
|
||||
sm_module->previous_reduce_module = comm->c_coll.coll_reduce_module;
|
||||
sm_module->previous_reduce = comm->c_coll->coll_reduce;
|
||||
sm_module->previous_reduce_module = comm->c_coll->coll_reduce_module;
|
||||
OBJ_RETAIN(sm_module->previous_reduce_module);
|
||||
|
||||
/* Indicate that we have successfully attached and setup */
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -40,8 +40,7 @@ int mca_coll_sync_bcast(void *buff, int count,
|
||||
if (s->in_operation) {
|
||||
return s->c_coll.coll_bcast(buff, count, datatype, root, comm,
|
||||
s->c_coll.coll_bcast_module);
|
||||
} else {
|
||||
COLL_SYNC(s, s->c_coll.coll_bcast(buff, count, datatype, root, comm,
|
||||
s->c_coll.coll_bcast_module));
|
||||
}
|
||||
COLL_SYNC(s, s->c_coll.coll_bcast(buff, count, datatype, root, comm,
|
||||
s->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-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -40,8 +40,7 @@ int mca_coll_sync_exscan(const void *sbuf, void *rbuf, int count,
|
||||
if (s->in_operation) {
|
||||
return s->c_coll.coll_exscan(sbuf, rbuf, count, dtype, op, comm,
|
||||
s->c_coll.coll_exscan_module);
|
||||
} else {
|
||||
COLL_SYNC(s, s->c_coll.coll_exscan(sbuf, rbuf, count, dtype, op, comm,
|
||||
s->c_coll.coll_exscan_module));
|
||||
}
|
||||
COLL_SYNC(s, s->c_coll.coll_exscan(sbuf, rbuf, count, dtype, op, comm,
|
||||
s->c_coll.coll_exscan_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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -40,11 +40,10 @@ int mca_coll_sync_gather(const void *sbuf, int scount,
|
||||
|
||||
if (s->in_operation) {
|
||||
return s->c_coll.coll_gather(sbuf, scount, sdtype,
|
||||
rbuf, rcount, rdtype, root, comm,
|
||||
s->c_coll.coll_gather_module);
|
||||
} else {
|
||||
COLL_SYNC(s, s->c_coll.coll_gather(sbuf, scount, sdtype,
|
||||
rbuf, rcount, rdtype, root, comm,
|
||||
s->c_coll.coll_gather_module));
|
||||
rbuf, rcount, rdtype, root, comm,
|
||||
s->c_coll.coll_gather_module);
|
||||
}
|
||||
COLL_SYNC(s, s->c_coll.coll_gather(sbuf, scount, sdtype,
|
||||
rbuf, rcount, rdtype, root, comm,
|
||||
s->c_coll.coll_gather_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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -40,12 +40,11 @@ int mca_coll_sync_gatherv(const void *sbuf, int scount,
|
||||
|
||||
if (s->in_operation) {
|
||||
return s->c_coll.coll_gatherv(sbuf, scount, sdtype,
|
||||
rbuf, rcounts, disps, rdtype, root, comm,
|
||||
s->c_coll.coll_gatherv_module);
|
||||
} else {
|
||||
COLL_SYNC(s, s->c_coll.coll_gatherv(sbuf, scount, sdtype,
|
||||
rbuf, rcounts, disps, rdtype,
|
||||
root, comm,
|
||||
s->c_coll.coll_gatherv_module));
|
||||
rbuf, rcounts, disps, rdtype, root, comm,
|
||||
s->c_coll.coll_gatherv_module);
|
||||
}
|
||||
COLL_SYNC(s, s->c_coll.coll_gatherv(sbuf, scount, sdtype,
|
||||
rbuf, rcounts, disps, rdtype,
|
||||
root, comm,
|
||||
s->c_coll.coll_gatherv_module));
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Copyright (c) 2004-2007 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-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -146,14 +146,14 @@ int mca_coll_sync_module_enable(mca_coll_base_module_t *module,
|
||||
mca_coll_sync_module_t *s = (mca_coll_sync_module_t*) module;
|
||||
|
||||
/* Save the prior layer of coll functions */
|
||||
s->c_coll = comm->c_coll;
|
||||
s->c_coll = *comm->c_coll;
|
||||
|
||||
#define CHECK_AND_RETAIN(name) \
|
||||
if (NULL == s->c_coll.coll_ ## name ## _module) { \
|
||||
good = false; \
|
||||
msg = #name; \
|
||||
} else if (good) { \
|
||||
OBJ_RETAIN(s->c_coll.coll_ ## name ## _module); \
|
||||
#define CHECK_AND_RETAIN(name) \
|
||||
if (NULL == s->c_coll.coll_ ## name ## _module) { \
|
||||
good = false; \
|
||||
msg = #name; \
|
||||
} else if (good) { \
|
||||
OBJ_RETAIN(s->c_coll.coll_ ## name ## _module); \
|
||||
}
|
||||
|
||||
CHECK_AND_RETAIN(bcast);
|
||||
@ -172,12 +172,11 @@ int mca_coll_sync_module_enable(mca_coll_base_module_t *module,
|
||||
/* All done */
|
||||
if (good) {
|
||||
return OMPI_SUCCESS;
|
||||
} else {
|
||||
orte_show_help("help-coll-sync.txt", "missing collective", true,
|
||||
orte_process_info.nodename,
|
||||
mca_coll_sync_component.priority, msg);
|
||||
return OMPI_ERR_NOT_FOUND;
|
||||
}
|
||||
orte_show_help("help-coll-sync.txt", "missing collective", true,
|
||||
orte_process_info.nodename,
|
||||
mca_coll_sync_component.priority, msg);
|
||||
return OMPI_ERR_NOT_FOUND;
|
||||
}
|
||||
|
||||
|
||||
|
@ -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-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -38,10 +38,9 @@ int mca_coll_sync_reduce(const void *sbuf, void *rbuf, int count,
|
||||
|
||||
if (s->in_operation) {
|
||||
return s->c_coll.coll_reduce(sbuf, rbuf, count, dtype, op, root, comm,
|
||||
s->c_coll.coll_reduce_module);
|
||||
} else {
|
||||
COLL_SYNC(s, s->c_coll.coll_reduce(sbuf, rbuf, count, dtype,
|
||||
op, root, comm,
|
||||
s->c_coll.coll_reduce_module));
|
||||
s->c_coll.coll_reduce_module);
|
||||
}
|
||||
COLL_SYNC(s, s->c_coll.coll_reduce(sbuf, rbuf, count, dtype,
|
||||
op, root, comm,
|
||||
s->c_coll.coll_reduce_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-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -40,11 +40,10 @@ int mca_coll_sync_reduce_scatter(const void *sbuf, void *rbuf, const int *rcount
|
||||
|
||||
if (s->in_operation) {
|
||||
return s->c_coll.coll_reduce_scatter(sbuf, rbuf, rcounts,
|
||||
dtype, op, comm,
|
||||
s->c_coll.coll_reduce_scatter_module);
|
||||
} else {
|
||||
COLL_SYNC(s, s->c_coll.coll_reduce_scatter(sbuf, rbuf, rcounts,
|
||||
dtype, op, comm,
|
||||
s->c_coll.coll_reduce_scatter_module));
|
||||
dtype, op, comm,
|
||||
s->c_coll.coll_reduce_scatter_module);
|
||||
}
|
||||
COLL_SYNC(s, s->c_coll.coll_reduce_scatter(sbuf, rbuf, rcounts,
|
||||
dtype, op, comm,
|
||||
s->c_coll.coll_reduce_scatter_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-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -38,9 +38,8 @@ int mca_coll_sync_scan(const void *sbuf, void *rbuf, int count,
|
||||
|
||||
if (s->in_operation) {
|
||||
return s->c_coll.coll_scan(sbuf, rbuf, count, dtype, op, comm,
|
||||
s->c_coll.coll_scan_module);
|
||||
} else {
|
||||
COLL_SYNC(s, s->c_coll.coll_scan(sbuf, rbuf, count, dtype, op, comm,
|
||||
s->c_coll.coll_scan_module));
|
||||
s->c_coll.coll_scan_module);
|
||||
}
|
||||
COLL_SYNC(s, s->c_coll.coll_scan(sbuf, rbuf, count, dtype, op, comm,
|
||||
s->c_coll.coll_scan_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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -40,11 +40,10 @@ int mca_coll_sync_scatter(const void *sbuf, int scount,
|
||||
|
||||
if (s->in_operation) {
|
||||
return s->c_coll.coll_scatter(sbuf, scount, sdtype,
|
||||
rbuf, rcount, rdtype, root, comm,
|
||||
s->c_coll.coll_scatter_module);
|
||||
} else {
|
||||
COLL_SYNC(s, s->c_coll.coll_scatter(sbuf, scount, sdtype,
|
||||
rbuf, rcount, rdtype, root, comm,
|
||||
s->c_coll.coll_scatter_module));
|
||||
rbuf, rcount, rdtype, root, comm,
|
||||
s->c_coll.coll_scatter_module);
|
||||
}
|
||||
COLL_SYNC(s, s->c_coll.coll_scatter(sbuf, scount, sdtype,
|
||||
rbuf, rcount, rdtype, root, comm,
|
||||
s->c_coll.coll_scatter_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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -40,11 +40,10 @@ int mca_coll_sync_scatterv(const void *sbuf, const int *scounts,
|
||||
|
||||
if (s->in_operation) {
|
||||
return s->c_coll.coll_scatterv(sbuf, scounts, disps, sdtype,
|
||||
rbuf, rcount, rdtype, root, comm,
|
||||
s->c_coll.coll_scatterv_module);
|
||||
} else {
|
||||
COLL_SYNC(s, s->c_coll.coll_scatterv(sbuf, scounts, disps, sdtype,
|
||||
rbuf, rcount, rdtype, root, comm,
|
||||
s->c_coll.coll_scatterv_module));
|
||||
rbuf, rcount, rdtype, root, comm,
|
||||
s->c_coll.coll_scatterv_module);
|
||||
}
|
||||
COLL_SYNC(s, s->c_coll.coll_scatterv(sbuf, scounts, disps, sdtype,
|
||||
rbuf, rcount, rdtype, root, comm,
|
||||
s->c_coll.coll_scatterv_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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -236,7 +236,7 @@ int mca_common_ompio_file_close (mca_io_ompio_file_t *ompio_fh)
|
||||
int delete_flag = 0;
|
||||
char name[256];
|
||||
|
||||
ret = ompio_fh->f_comm->c_coll.coll_barrier ( ompio_fh->f_comm, ompio_fh->f_comm->c_coll.coll_barrier_module);
|
||||
ret = ompio_fh->f_comm->c_coll->coll_barrier ( ompio_fh->f_comm, ompio_fh->f_comm->c_coll->coll_barrier_module);
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
/* Not sure what to do */
|
||||
opal_output (1,"mca_common_ompio_file_close: error in Barrier \n");
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -238,13 +238,13 @@ OMPI_MPI_OFFSET_TYPE get_contiguous_chunk_size (mca_io_ompio_file_t *fh)
|
||||
avg[1] = (OMPI_MPI_OFFSET_TYPE) fh->f_iov_count;
|
||||
avg[2] = (OMPI_MPI_OFFSET_TYPE) uniform;
|
||||
|
||||
fh->f_comm->c_coll.coll_allreduce (avg,
|
||||
fh->f_comm->c_coll->coll_allreduce (avg,
|
||||
global_avg,
|
||||
3,
|
||||
OMPI_OFFSET_DATATYPE,
|
||||
MPI_SUM,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allreduce_module);
|
||||
fh->f_comm->c_coll->coll_allreduce_module);
|
||||
global_avg[0] = global_avg[0]/fh->f_size;
|
||||
global_avg[1] = global_avg[1]/fh->f_size;
|
||||
|
||||
@ -265,13 +265,13 @@ OMPI_MPI_OFFSET_TYPE get_contiguous_chunk_size (mca_io_ompio_file_t *fh)
|
||||
/* second confirmation round to see whether all processes agree
|
||||
** on having a uniform file view or not
|
||||
*/
|
||||
fh->f_comm->c_coll.coll_allreduce (&uniform,
|
||||
fh->f_comm->c_coll->coll_allreduce (&uniform,
|
||||
&global_uniform,
|
||||
1,
|
||||
MPI_INT,
|
||||
MPI_MAX,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allreduce_module);
|
||||
fh->f_comm->c_coll->coll_allreduce_module);
|
||||
|
||||
if ( 0 == global_uniform ){
|
||||
/* yes, everybody agrees on having a uniform file view */
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2013 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -157,7 +157,7 @@ int mca_common_ompio_print_time_info( struct mca_common_ompio_print_queue *q,
|
||||
}
|
||||
}
|
||||
|
||||
ret = fh->f_comm->c_coll.coll_gather(time_details,
|
||||
ret = fh->f_comm->c_coll->coll_gather(time_details,
|
||||
4,
|
||||
MPI_DOUBLE,
|
||||
final_time_details,
|
||||
@ -165,7 +165,7 @@ int mca_common_ompio_print_time_info( struct mca_common_ompio_print_queue *q,
|
||||
MPI_DOUBLE,
|
||||
0,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_gather_module);
|
||||
fh->f_comm->c_coll->coll_gather_module);
|
||||
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -264,14 +264,14 @@ int mca_fcoll_dynamic_gen2_file_write_all (mca_io_ompio_file_t *fh,
|
||||
start_comm_time = MPI_Wtime();
|
||||
#endif
|
||||
if ( 1 == mca_fcoll_dynamic_gen2_num_groups ) {
|
||||
ret = fh->f_comm->c_coll.coll_allgather (broken_total_lengths,
|
||||
ret = fh->f_comm->c_coll->coll_allgather (broken_total_lengths,
|
||||
dynamic_gen2_num_io_procs,
|
||||
MPI_LONG,
|
||||
total_bytes_per_process,
|
||||
dynamic_gen2_num_io_procs,
|
||||
MPI_LONG,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allgather_module);
|
||||
fh->f_comm->c_coll->coll_allgather_module);
|
||||
}
|
||||
else {
|
||||
ret = fcoll_base_coll_allgather_array (broken_total_lengths,
|
||||
@ -323,14 +323,14 @@ int mca_fcoll_dynamic_gen2_file_write_all (mca_io_ompio_file_t *fh,
|
||||
start_comm_time = MPI_Wtime();
|
||||
#endif
|
||||
if ( 1 == mca_fcoll_dynamic_gen2_num_groups ) {
|
||||
ret = fh->f_comm->c_coll.coll_allgather(broken_counts,
|
||||
ret = fh->f_comm->c_coll->coll_allgather(broken_counts,
|
||||
dynamic_gen2_num_io_procs,
|
||||
MPI_INT,
|
||||
result_counts,
|
||||
dynamic_gen2_num_io_procs,
|
||||
MPI_INT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allgather_module);
|
||||
fh->f_comm->c_coll->coll_allgather_module);
|
||||
}
|
||||
else {
|
||||
ret = fcoll_base_coll_allgather_array (broken_counts,
|
||||
@ -409,7 +409,7 @@ int mca_fcoll_dynamic_gen2_file_write_all (mca_io_ompio_file_t *fh,
|
||||
start_comm_time = MPI_Wtime();
|
||||
#endif
|
||||
if ( 1 == mca_fcoll_dynamic_gen2_num_groups ) {
|
||||
ret = fh->f_comm->c_coll.coll_allgatherv (broken_iov_arrays[i],
|
||||
ret = fh->f_comm->c_coll->coll_allgatherv (broken_iov_arrays[i],
|
||||
broken_counts[i],
|
||||
fh->f_iov_type,
|
||||
aggr_data[i]->global_iov_array,
|
||||
@ -417,7 +417,7 @@ int mca_fcoll_dynamic_gen2_file_write_all (mca_io_ompio_file_t *fh,
|
||||
displs,
|
||||
fh->f_iov_type,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allgatherv_module );
|
||||
fh->f_comm->c_coll->coll_allgatherv_module );
|
||||
}
|
||||
else {
|
||||
ret = fcoll_base_coll_allgatherv_array (broken_iov_arrays[i],
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -213,13 +213,13 @@ mca_fcoll_static_file_read_all (mca_io_ompio_file_t *fh,
|
||||
#if OMPIO_FCOLL_WANT_TIME_BREAKDOWN
|
||||
start_rexch = MPI_Wtime();
|
||||
#endif
|
||||
ret = fh->f_comm->c_coll.coll_allreduce (&local_cycles,
|
||||
ret = fh->f_comm->c_coll->coll_allreduce (&local_cycles,
|
||||
&cycles,
|
||||
1,
|
||||
MPI_INT,
|
||||
MPI_MAX,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allreduce_module);
|
||||
fh->f_comm->c_coll->coll_allreduce_module);
|
||||
|
||||
if (OMPI_SUCCESS != ret){
|
||||
goto exit;
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -207,13 +207,13 @@ mca_fcoll_static_file_write_all (mca_io_ompio_file_t *fh,
|
||||
#if OMPIO_FCOLL_WANT_TIME_BREAKDOWN
|
||||
start_exch = MPI_Wtime();
|
||||
#endif
|
||||
ret = fh->f_comm->c_coll.coll_allreduce (&local_cycles,
|
||||
ret = fh->f_comm->c_coll->coll_allreduce (&local_cycles,
|
||||
&cycles,
|
||||
1,
|
||||
MPI_INT,
|
||||
MPI_MAX,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allreduce_module);
|
||||
fh->f_comm->c_coll->coll_allreduce_module);
|
||||
|
||||
if (OMPI_SUCCESS != ret){
|
||||
fprintf(stderr,"local cycles allreduce!\n");
|
||||
|
@ -3,7 +3,7 @@
|
||||
* 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
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -220,13 +220,13 @@ mca_fcoll_two_phase_file_read_all (mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
long_max_data = (long) max_data;
|
||||
ret = fh->f_comm->c_coll.coll_allreduce (&long_max_data,
|
||||
ret = fh->f_comm->c_coll->coll_allreduce (&long_max_data,
|
||||
&long_total_bytes,
|
||||
1,
|
||||
MPI_LONG,
|
||||
MPI_SUM,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allreduce_module);
|
||||
fh->f_comm->c_coll->coll_allreduce_module);
|
||||
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
@ -334,27 +334,27 @@ mca_fcoll_two_phase_file_read_all (mca_io_ompio_file_t *fh,
|
||||
goto exit;
|
||||
}
|
||||
|
||||
ret = fh->f_comm->c_coll.coll_allgather(&start_offset,
|
||||
ret = fh->f_comm->c_coll->coll_allgather(&start_offset,
|
||||
1,
|
||||
OMPI_OFFSET_DATATYPE,
|
||||
start_offsets,
|
||||
1,
|
||||
OMPI_OFFSET_DATATYPE,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allgather_module);
|
||||
fh->f_comm->c_coll->coll_allgather_module);
|
||||
|
||||
if ( OMPI_SUCCESS != ret ){
|
||||
goto exit;
|
||||
}
|
||||
|
||||
ret = fh->f_comm->c_coll.coll_allgather(&end_offset,
|
||||
ret = fh->f_comm->c_coll->coll_allgather(&end_offset,
|
||||
1,
|
||||
OMPI_OFFSET_DATATYPE,
|
||||
end_offsets,
|
||||
1,
|
||||
OMPI_OFFSET_DATATYPE,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allgather_module);
|
||||
fh->f_comm->c_coll->coll_allgather_module);
|
||||
|
||||
|
||||
if ( OMPI_SUCCESS != ret ){
|
||||
@ -573,13 +573,13 @@ static int two_phase_read_and_exch(mca_io_ompio_file_t *fh,
|
||||
ntimes = 0;
|
||||
}
|
||||
|
||||
fh->f_comm->c_coll.coll_allreduce (&ntimes,
|
||||
fh->f_comm->c_coll->coll_allreduce (&ntimes,
|
||||
&max_ntimes,
|
||||
1,
|
||||
MPI_INT,
|
||||
MPI_MAX,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allreduce_module);
|
||||
fh->f_comm->c_coll->coll_allreduce_module);
|
||||
|
||||
if (ntimes){
|
||||
read_buf = (char *) calloc (two_phase_cycle_buffer_size, sizeof(char));
|
||||
@ -837,14 +837,14 @@ static int two_phase_exchange_data(mca_io_ompio_file_t *fh,
|
||||
start_rcomm_time = MPI_Wtime();
|
||||
#endif
|
||||
|
||||
ret = fh->f_comm->c_coll.coll_alltoall (send_size,
|
||||
ret = fh->f_comm->c_coll->coll_alltoall (send_size,
|
||||
1,
|
||||
MPI_INT,
|
||||
recv_size,
|
||||
1,
|
||||
MPI_INT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_alltoall_module);
|
||||
fh->f_comm->c_coll->coll_alltoall_module);
|
||||
|
||||
if ( OMPI_SUCCESS != ret ){
|
||||
goto exit;
|
||||
|
@ -3,7 +3,7 @@
|
||||
* 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
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -264,13 +264,13 @@ mca_fcoll_two_phase_file_write_all (mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
long_max_data = (long) max_data;
|
||||
ret = fh->f_comm->c_coll.coll_allreduce (&long_max_data,
|
||||
ret = fh->f_comm->c_coll->coll_allreduce (&long_max_data,
|
||||
&long_total_bytes,
|
||||
1,
|
||||
MPI_LONG,
|
||||
MPI_SUM,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allreduce_module);
|
||||
fh->f_comm->c_coll->coll_allreduce_module);
|
||||
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
@ -392,28 +392,28 @@ mca_fcoll_two_phase_file_write_all (mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
|
||||
ret = fh->f_comm->c_coll.coll_allgather(&start_offset,
|
||||
ret = fh->f_comm->c_coll->coll_allgather(&start_offset,
|
||||
1,
|
||||
OMPI_OFFSET_DATATYPE,
|
||||
start_offsets,
|
||||
1,
|
||||
OMPI_OFFSET_DATATYPE,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allgather_module);
|
||||
fh->f_comm->c_coll->coll_allgather_module);
|
||||
|
||||
if ( OMPI_SUCCESS != ret ){
|
||||
goto exit;
|
||||
}
|
||||
|
||||
|
||||
ret = fh->f_comm->c_coll.coll_allgather(&end_offset,
|
||||
ret = fh->f_comm->c_coll->coll_allgather(&end_offset,
|
||||
1,
|
||||
OMPI_OFFSET_DATATYPE,
|
||||
end_offsets,
|
||||
1,
|
||||
OMPI_OFFSET_DATATYPE,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allgather_module);
|
||||
fh->f_comm->c_coll->coll_allgather_module);
|
||||
|
||||
|
||||
if ( OMPI_SUCCESS != ret ){
|
||||
@ -642,13 +642,13 @@ static int two_phase_exch_and_write(mca_io_ompio_file_t *fh,
|
||||
ntimes = 0;
|
||||
}
|
||||
|
||||
fh->f_comm->c_coll.coll_allreduce (&ntimes,
|
||||
fh->f_comm->c_coll->coll_allreduce (&ntimes,
|
||||
&max_ntimes,
|
||||
1,
|
||||
MPI_INT,
|
||||
MPI_MAX,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allreduce_module);
|
||||
fh->f_comm->c_coll->coll_allreduce_module);
|
||||
|
||||
if (ntimes){
|
||||
write_buf = (char *) malloc (two_phase_cycle_buffer_size);
|
||||
@ -945,14 +945,14 @@ static int two_phase_exchage_data(mca_io_ompio_file_t *fh,
|
||||
#if OMPIO_FCOLL_WANT_TIME_BREAKDOWN
|
||||
start_comm_time = MPI_Wtime();
|
||||
#endif
|
||||
ret = fh->f_comm->c_coll.coll_alltoall (recv_size,
|
||||
ret = fh->f_comm->c_coll->coll_alltoall (recv_size,
|
||||
1,
|
||||
MPI_INT,
|
||||
send_size,
|
||||
1,
|
||||
MPI_INT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_alltoall_module);
|
||||
fh->f_comm->c_coll->coll_alltoall_module);
|
||||
|
||||
if ( OMPI_SUCCESS != ret ){
|
||||
return ret;
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2004-2007 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-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -212,14 +212,14 @@ int mca_fcoll_two_phase_calc_others_requests(mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
/* Change it to the ompio specific alltoall in coll module : VVN*/
|
||||
ret = fh->f_comm->c_coll.coll_alltoall (count_my_req_per_proc,
|
||||
ret = fh->f_comm->c_coll->coll_alltoall (count_my_req_per_proc,
|
||||
1,
|
||||
MPI_INT,
|
||||
count_others_req_per_proc,
|
||||
1,
|
||||
MPI_INT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_alltoall_module);
|
||||
fh->f_comm->c_coll->coll_alltoall_module);
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
return ret;
|
||||
}
|
||||
|
@ -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-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -92,12 +92,12 @@ mca_fs_lustre_component_file_query (mca_io_ompio_file_t *fh, int *priority)
|
||||
if (OMPIO_ROOT == fh->f_rank) {
|
||||
fh->f_fstype = mca_fs_base_get_fstype ( fh->f_filename );
|
||||
}
|
||||
fh->f_comm->c_coll.coll_bcast (&(fh->f_fstype),
|
||||
fh->f_comm->c_coll->coll_bcast (&(fh->f_fstype),
|
||||
1,
|
||||
MPI_INT,
|
||||
OMPIO_ROOT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_bcast_module);
|
||||
fh->f_comm->c_coll->coll_bcast_module);
|
||||
}
|
||||
else {
|
||||
if (!strncmp(fh->f_filename, "lustre:", 7) ||
|
||||
|
@ -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-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -37,8 +37,8 @@
|
||||
int
|
||||
mca_fs_lustre_file_close (mca_io_ompio_file_t *fh)
|
||||
{
|
||||
fh->f_comm->c_coll.coll_barrier (fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_barrier_module);
|
||||
fh->f_comm->c_coll->coll_barrier (fh->f_comm,
|
||||
fh->f_comm->c_coll->coll_barrier_module);
|
||||
close (fh->fd);
|
||||
return OMPI_SUCCESS;
|
||||
}
|
||||
|
@ -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-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -129,8 +129,8 @@ mca_fs_lustre_file_open (struct ompi_communicator_t *comm,
|
||||
}
|
||||
close (fh->fd);
|
||||
}
|
||||
fh->f_comm->c_coll.coll_barrier (fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_barrier_module);
|
||||
fh->f_comm->c_coll->coll_barrier (fh->f_comm,
|
||||
fh->f_comm->c_coll->coll_barrier_module);
|
||||
}
|
||||
|
||||
fh->fd = open (filename, amode, perm);
|
||||
|
@ -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-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -40,12 +40,12 @@ mca_fs_lustre_file_set_size (mca_io_ompio_file_t *fh,
|
||||
|
||||
err = ftruncate(fh->fd, size);
|
||||
|
||||
fh->f_comm->c_coll.coll_bcast (&err,
|
||||
fh->f_comm->c_coll->coll_bcast (&err,
|
||||
1,
|
||||
MPI_INT,
|
||||
OMPIO_ROOT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_bcast_module);
|
||||
fh->f_comm->c_coll->coll_bcast_module);
|
||||
if (-1 == err) {
|
||||
return OMPI_ERROR;
|
||||
}
|
||||
|
@ -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-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -107,12 +107,12 @@ mca_fs_plfs_component_file_query (mca_io_ompio_file_t *fh, int *priority)
|
||||
fh->f_fstype = PLFS;
|
||||
}
|
||||
}
|
||||
fh->f_comm->c_coll.coll_bcast (&(fh->f_fstype),
|
||||
fh->f_comm->c_coll->coll_bcast (&(fh->f_fstype),
|
||||
1,
|
||||
MPI_INT,
|
||||
OMPIO_ROOT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_bcast_module);
|
||||
fh->f_comm->c_coll->coll_bcast_module);
|
||||
}
|
||||
else {
|
||||
if (!strncmp(fh->f_filename, "plfs:", 7) ||
|
||||
|
@ -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-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -43,8 +43,8 @@ mca_fs_plfs_file_close (mca_io_ompio_file_t *fh)
|
||||
int amode;
|
||||
char wpath[1024];
|
||||
|
||||
fh->f_comm->c_coll.coll_barrier (fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_barrier_module);
|
||||
fh->f_comm->c_coll->coll_barrier (fh->f_comm,
|
||||
fh->f_comm->c_coll->coll_barrier_module);
|
||||
|
||||
getcwd( wpath, sizeof(wpath) );
|
||||
sprintf( wpath,"%s/%s",wpath,fh->f_filename );
|
||||
|
@ -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-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -91,7 +91,7 @@ mca_fs_plfs_file_open (struct ompi_communicator_t *comm,
|
||||
fh->f_fs_ptr = pfd;
|
||||
}
|
||||
|
||||
comm->c_coll.coll_bcast ( &plfs_ret, 1, MPI_INT, 0, comm, comm->c_coll.coll_bcast_module);
|
||||
comm->c_coll->coll_bcast ( &plfs_ret, 1, MPI_INT, 0, comm, comm->c_coll->coll_bcast_module);
|
||||
if ( PLFS_SUCCESS != plfs_ret ) {
|
||||
return OMPI_ERROR;
|
||||
}
|
||||
|
@ -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-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -95,12 +95,12 @@ mca_fs_pvfs2_component_file_query (mca_io_ompio_file_t *fh, int *priority)
|
||||
if (OMPIO_ROOT == fh->f_rank) {
|
||||
fh->f_fstype = mca_fs_base_get_fstype ( fh->f_filename );
|
||||
}
|
||||
fh->f_comm->c_coll.coll_bcast (&(fh->f_fstype),
|
||||
fh->f_comm->c_coll->coll_bcast (&(fh->f_fstype),
|
||||
1,
|
||||
MPI_INT,
|
||||
OMPIO_ROOT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_bcast_module);
|
||||
fh->f_comm->c_coll->coll_bcast_module);
|
||||
}
|
||||
else {
|
||||
if (!strncmp(fh->f_filename, "pvfs2:", 6) ||
|
||||
|
@ -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-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -46,8 +46,8 @@ mca_fs_pvfs2_file_close (mca_io_ompio_file_t *fh)
|
||||
fh->f_fs_ptr = NULL;
|
||||
}
|
||||
/*
|
||||
fh->f_comm->c_coll.coll_barrier (fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_barrier_module);
|
||||
fh->f_comm->c_coll->coll_barrier (fh->f_comm,
|
||||
fh->f_comm->c_coll->coll_barrier_module);
|
||||
close (fh->fd);
|
||||
*/
|
||||
return OMPI_SUCCESS;
|
||||
|
@ -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-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -153,12 +153,12 @@ mca_fs_pvfs2_file_open (struct ompi_communicator_t *comm,
|
||||
ompi_datatype_create_struct (2, lens, offsets, types, &open_status_type);
|
||||
ompi_datatype_commit (&open_status_type);
|
||||
|
||||
fh->f_comm->c_coll.coll_bcast (MPI_BOTTOM,
|
||||
fh->f_comm->c_coll->coll_bcast (MPI_BOTTOM,
|
||||
1,
|
||||
open_status_type,
|
||||
OMPIO_ROOT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_bcast_module);
|
||||
fh->f_comm->c_coll->coll_bcast_module);
|
||||
|
||||
ompi_datatype_destroy (&open_status_type);
|
||||
|
||||
|
@ -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-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -48,20 +48,20 @@ mca_fs_pvfs2_file_set_size (mca_io_ompio_file_t *fh,
|
||||
if (OMPIO_ROOT == fh->f_rank) {
|
||||
ret = PVFS_sys_truncate(pvfs2_fs->object_ref,
|
||||
size, &(pvfs2_fs->credentials));
|
||||
fh->f_comm->c_coll.coll_bcast (&ret,
|
||||
fh->f_comm->c_coll->coll_bcast (&ret,
|
||||
1,
|
||||
MPI_INT,
|
||||
OMPIO_ROOT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_bcast_module);
|
||||
fh->f_comm->c_coll->coll_bcast_module);
|
||||
}
|
||||
else {
|
||||
fh->f_comm->c_coll.coll_bcast (&ret,
|
||||
fh->f_comm->c_coll->coll_bcast (&ret,
|
||||
1,
|
||||
MPI_INT,
|
||||
OMPIO_ROOT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_bcast_module);
|
||||
fh->f_comm->c_coll->coll_bcast_module);
|
||||
}
|
||||
|
||||
if (ret != 0) {
|
||||
|
@ -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-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -50,12 +50,12 @@ mca_fs_pvfs2_file_sync (mca_io_ompio_file_t *fh)
|
||||
ret = PVFS_sys_flush(pvfs2_fs->object_ref, &(pvfs2_fs->credentials));
|
||||
}
|
||||
|
||||
fh->f_comm->c_coll.coll_bcast (&ret,
|
||||
fh->f_comm->c_coll->coll_bcast (&ret,
|
||||
1,
|
||||
MPI_INT,
|
||||
OMPIO_ROOT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_bcast_module);
|
||||
fh->f_comm->c_coll->coll_bcast_module);
|
||||
|
||||
if (0 != ret) {
|
||||
return OMPI_ERROR;
|
||||
|
@ -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-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -37,8 +37,8 @@
|
||||
int
|
||||
mca_fs_ufs_file_close (mca_io_ompio_file_t *fh)
|
||||
{
|
||||
fh->f_comm->c_coll.coll_barrier (fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_barrier_module);
|
||||
fh->f_comm->c_coll->coll_barrier (fh->f_comm,
|
||||
fh->f_comm->c_coll->coll_barrier_module);
|
||||
/* close (*(int *)fh->fd);*/
|
||||
close (fh->fd);
|
||||
/* if (NULL != fh->fd)
|
||||
|
@ -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-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -81,7 +81,7 @@ mca_fs_ufs_file_open (struct ompi_communicator_t *comm,
|
||||
ret = fh->fd;
|
||||
}
|
||||
|
||||
comm->c_coll.coll_bcast ( &ret, 1, MPI_INT, 0, comm, comm->c_coll.coll_bcast_module);
|
||||
comm->c_coll->coll_bcast ( &ret, 1, MPI_INT, 0, comm, comm->c_coll->coll_bcast_module);
|
||||
if ( -1 == ret ) {
|
||||
fh->fd = ret;
|
||||
return OMPI_ERROR;
|
||||
|
@ -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-2011 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -42,12 +42,12 @@ mca_fs_ufs_file_set_size (mca_io_ompio_file_t *fh,
|
||||
|
||||
err = ftruncate(fh->fd, size);
|
||||
|
||||
fh->f_comm->c_coll.coll_bcast (&err,
|
||||
fh->f_comm->c_coll->coll_bcast (&err,
|
||||
1,
|
||||
MPI_INT,
|
||||
OMPIO_ROOT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_bcast_module);
|
||||
fh->f_comm->c_coll->coll_bcast_module);
|
||||
if (-1 == err) {
|
||||
return OMPI_ERROR;
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2013 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -142,7 +142,7 @@ int ompi_io_ompio_generate_current_file_view (struct mca_io_ompio_file_t *fh,
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
fh->f_comm->c_coll.coll_gather (&k,
|
||||
fh->f_comm->c_coll->coll_gather (&k,
|
||||
1,
|
||||
MPI_INT,
|
||||
recvcounts,
|
||||
@ -150,7 +150,7 @@ int ompi_io_ompio_generate_current_file_view (struct mca_io_ompio_file_t *fh,
|
||||
MPI_INT,
|
||||
OMPIO_ROOT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_gather_module);
|
||||
fh->f_comm->c_coll->coll_gather_module);
|
||||
|
||||
per_process = (mca_io_ompio_offlen_array_t *)
|
||||
malloc (k * sizeof(mca_io_ompio_offlen_array_t));
|
||||
@ -248,7 +248,7 @@ int ompi_io_ompio_generate_current_file_view (struct mca_io_ompio_file_t *fh,
|
||||
}
|
||||
}
|
||||
}
|
||||
fh->f_comm->c_coll.coll_gatherv (per_process,
|
||||
fh->f_comm->c_coll->coll_gatherv (per_process,
|
||||
k,
|
||||
io_array_type,
|
||||
all_process,
|
||||
@ -257,7 +257,7 @@ int ompi_io_ompio_generate_current_file_view (struct mca_io_ompio_file_t *fh,
|
||||
io_array_type,
|
||||
OMPIO_ROOT,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_gatherv_module);
|
||||
fh->f_comm->c_coll->coll_gatherv_module);
|
||||
|
||||
ompi_datatype_destroy(&io_array_type);
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2013 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -133,14 +133,14 @@ int mca_io_ompio_fview_based_grouping(mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
//Allgather start offsets across processes in a group on aggregator
|
||||
ret = fh->f_comm->c_coll.coll_allgather (start_offset_len,
|
||||
ret = fh->f_comm->c_coll->coll_allgather (start_offset_len,
|
||||
3,
|
||||
OMPI_OFFSET_DATATYPE,
|
||||
start_offsets_lens,
|
||||
3,
|
||||
OMPI_OFFSET_DATATYPE,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allgather_module);
|
||||
fh->f_comm->c_coll->coll_allgather_module);
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
@ -493,13 +493,13 @@ int mca_io_ompio_create_groups(mca_io_ompio_file_t *fh,
|
||||
if(fh->f_rank == fh->f_procs_in_group[fh->f_aggregator_index]){
|
||||
final_aggr = 1;
|
||||
}
|
||||
ret = fh->f_comm->c_coll.coll_allreduce (&final_aggr,
|
||||
ret = fh->f_comm->c_coll->coll_allreduce (&final_aggr,
|
||||
&final_num_aggrs,
|
||||
1,
|
||||
MPI_INT,
|
||||
MPI_SUM,
|
||||
fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_allreduce_module);
|
||||
fh->f_comm->c_coll->coll_allreduce_module);
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
opal_output (1, "mca_io_ompio_create_groups: error in allreduce\n");
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -140,12 +140,12 @@ int mca_io_ompio_file_preallocate (ompi_file_t *fh,
|
||||
OPAL_THREAD_LOCK(&fh->f_mutex);
|
||||
tmp = diskspace;
|
||||
|
||||
ret = data->ompio_fh.f_comm->c_coll.coll_bcast (&tmp,
|
||||
ret = data->ompio_fh.f_comm->c_coll->coll_bcast (&tmp,
|
||||
1,
|
||||
OMPI_OFFSET_DATATYPE,
|
||||
OMPIO_ROOT,
|
||||
data->ompio_fh.f_comm,
|
||||
data->ompio_fh.f_comm->c_coll.coll_bcast_module);
|
||||
data->ompio_fh.f_comm->c_coll->coll_bcast_module);
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
OPAL_THREAD_UNLOCK(&fh->f_mutex);
|
||||
return OMPI_ERROR;
|
||||
@ -234,8 +234,8 @@ int mca_io_ompio_file_preallocate (ompi_file_t *fh,
|
||||
|
||||
exit:
|
||||
free ( buf );
|
||||
fh->f_comm->c_coll.coll_bcast ( &ret, 1, MPI_INT, OMPIO_ROOT, fh->f_comm,
|
||||
fh->f_comm->c_coll.coll_bcast_module);
|
||||
fh->f_comm->c_coll->coll_bcast ( &ret, 1, MPI_INT, OMPIO_ROOT, fh->f_comm,
|
||||
fh->f_comm->c_coll->coll_bcast_module);
|
||||
|
||||
if ( diskspace > current_size ) {
|
||||
data->ompio_fh.f_fs->fs_file_set_size (&data->ompio_fh, diskspace);
|
||||
@ -256,12 +256,12 @@ int mca_io_ompio_file_set_size (ompi_file_t *fh,
|
||||
|
||||
tmp = size;
|
||||
OPAL_THREAD_LOCK(&fh->f_mutex);
|
||||
ret = data->ompio_fh.f_comm->c_coll.coll_bcast (&tmp,
|
||||
ret = data->ompio_fh.f_comm->c_coll->coll_bcast (&tmp,
|
||||
1,
|
||||
OMPI_OFFSET_DATATYPE,
|
||||
OMPIO_ROOT,
|
||||
data->ompio_fh.f_comm,
|
||||
data->ompio_fh.f_comm->c_coll.coll_bcast_module);
|
||||
data->ompio_fh.f_comm->c_coll->coll_bcast_module);
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
opal_output(1, ",mca_io_ompio_file_set_size: error in bcast\n");
|
||||
OPAL_THREAD_UNLOCK(&fh->f_mutex);
|
||||
@ -281,8 +281,8 @@ int mca_io_ompio_file_set_size (ompi_file_t *fh,
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = data->ompio_fh.f_comm->c_coll.coll_barrier (data->ompio_fh.f_comm,
|
||||
data->ompio_fh.f_comm->c_coll.coll_barrier_module);
|
||||
ret = data->ompio_fh.f_comm->c_coll->coll_barrier (data->ompio_fh.f_comm,
|
||||
data->ompio_fh.f_comm->c_coll->coll_barrier_module);
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
opal_output(1, ",mca_io_ompio_file_set_size: error in barrier\n");
|
||||
OPAL_THREAD_UNLOCK(&fh->f_mutex);
|
||||
@ -382,12 +382,12 @@ int mca_io_ompio_file_set_atomicity (ompi_file_t *fh,
|
||||
|
||||
/* check if the atomicity flag is the same on all processes */
|
||||
tmp = flag;
|
||||
data->ompio_fh.f_comm->c_coll.coll_bcast (&tmp,
|
||||
data->ompio_fh.f_comm->c_coll->coll_bcast (&tmp,
|
||||
1,
|
||||
MPI_INT,
|
||||
OMPIO_ROOT,
|
||||
data->ompio_fh.f_comm,
|
||||
data->ompio_fh.f_comm->c_coll.coll_bcast_module);
|
||||
data->ompio_fh.f_comm->c_coll->coll_bcast_module);
|
||||
|
||||
if (tmp != flag) {
|
||||
OPAL_THREAD_UNLOCK(&fh->f_mutex);
|
||||
|
@ -1,5 +1,8 @@
|
||||
/*
|
||||
* Copyright (c) 2011 Sandia National Laboratories. All rights reserved.
|
||||
* Copyright (c) 2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -30,8 +33,8 @@ ompi_osc_portals4_fence(int assert, struct ompi_win_t *win)
|
||||
|
||||
comm_ret = ompi_osc_portals4_complete_all(module);
|
||||
|
||||
ret = module->comm->c_coll.coll_barrier(module->comm,
|
||||
module->comm->c_coll.coll_barrier_module);
|
||||
ret = module->comm->c_coll->coll_barrier(module->comm,
|
||||
module->comm->c_coll->coll_barrier_module);
|
||||
|
||||
return (OMPI_SUCCESS == comm_ret) ? ret : comm_ret;
|
||||
}
|
||||
|
@ -5,6 +5,9 @@
|
||||
* reserved.
|
||||
* Copyright (c) 2015-2017 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -443,9 +446,9 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
|
||||
/* share everyone's displacement units. Only do an allgather if
|
||||
strictly necessary, since it requires O(p) state. */
|
||||
tmp = disp_unit;
|
||||
ret = module->comm->c_coll.coll_bcast(&tmp, 1, MPI_INT, 0,
|
||||
ret = module->comm->c_coll->coll_bcast(&tmp, 1, MPI_INT, 0,
|
||||
module->comm,
|
||||
module->comm->c_coll.coll_bcast_module);
|
||||
module->comm->c_coll->coll_bcast_module);
|
||||
if (OMPI_SUCCESS != ret) {
|
||||
opal_output_verbose(1, ompi_osc_base_framework.framework_output,
|
||||
"%s:%d: MPI_Bcast failed: %d\n",
|
||||
@ -453,8 +456,8 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
|
||||
goto error;
|
||||
}
|
||||
tmp = (tmp == disp_unit) ? 1 : 0;
|
||||
ret = module->comm->c_coll.coll_allreduce(MPI_IN_PLACE, &tmp, 1, MPI_INT, MPI_LAND,
|
||||
module->comm, module->comm->c_coll.coll_allreduce_module);
|
||||
ret = module->comm->c_coll->coll_allreduce(MPI_IN_PLACE, &tmp, 1, MPI_INT, MPI_LAND,
|
||||
module->comm, module->comm->c_coll->coll_allreduce_module);
|
||||
if (OMPI_SUCCESS != ret) goto error;
|
||||
if (tmp == 1) {
|
||||
module->disp_unit = disp_unit;
|
||||
@ -462,10 +465,10 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
|
||||
} else {
|
||||
module->disp_unit = -1;
|
||||
module->disp_units = malloc(sizeof(int) * ompi_comm_size(module->comm));
|
||||
ret = module->comm->c_coll.coll_allgather(&disp_unit, 1, MPI_INT,
|
||||
ret = module->comm->c_coll->coll_allgather(&disp_unit, 1, MPI_INT,
|
||||
module->disp_units, 1, MPI_INT,
|
||||
module->comm,
|
||||
module->comm->c_coll.coll_allgather_module);
|
||||
module->comm->c_coll->coll_allgather_module);
|
||||
if (OMPI_SUCCESS != ret) goto error;
|
||||
}
|
||||
|
||||
@ -608,8 +611,8 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
|
||||
}
|
||||
OPAL_THREAD_UNLOCK(&mca_osc_portals4_component.lock);
|
||||
|
||||
module->comm->c_coll.coll_barrier(module->comm,
|
||||
module->comm->c_coll.coll_barrier_module);
|
||||
module->comm->c_coll->coll_barrier(module->comm,
|
||||
module->comm->c_coll->coll_barrier_module);
|
||||
|
||||
return OMPI_SUCCESS;
|
||||
|
||||
@ -648,8 +651,8 @@ ompi_osc_portals4_free(struct ompi_win_t *win)
|
||||
int ret = OMPI_SUCCESS;
|
||||
|
||||
/* synchronize */
|
||||
module->comm->c_coll.coll_barrier(module->comm,
|
||||
module->comm->c_coll.coll_barrier_module);
|
||||
module->comm->c_coll->coll_barrier(module->comm,
|
||||
module->comm->c_coll->coll_barrier_module);
|
||||
|
||||
/* cleanup */
|
||||
PtlMEUnlink(module->control_me_h);
|
||||
@ -687,8 +690,8 @@ ompi_osc_portals4_set_info(struct ompi_win_t *win, struct ompi_info_t *info)
|
||||
(ompi_osc_portals4_module_t*) win->w_osc_module;
|
||||
|
||||
/* enforce collectiveness... */
|
||||
return module->comm->c_coll.coll_barrier(module->comm,
|
||||
module->comm->c_coll.coll_barrier_module);
|
||||
return module->comm->c_coll->coll_barrier(module->comm,
|
||||
module->comm->c_coll->coll_barrier_module);
|
||||
}
|
||||
|
||||
|
||||
|
@ -14,6 +14,9 @@
|
||||
* Copyright (c) 2012-2013 Sandia National Laboratories. All rights reserved.
|
||||
* Copyright (c) 2015 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -147,7 +150,7 @@ int ompi_osc_pt2pt_fence(int assert, ompi_win_t *win)
|
||||
|
||||
/* short-circuit the noprecede case */
|
||||
if (0 != (assert & MPI_MODE_NOPRECEDE)) {
|
||||
module->comm->c_coll.coll_barrier (module->comm, module->comm->c_coll.coll_barrier_module);
|
||||
module->comm->c_coll->coll_barrier (module->comm, module->comm->c_coll->coll_barrier_module);
|
||||
OPAL_OUTPUT_VERBOSE((50, ompi_osc_base_framework.framework_output,
|
||||
"osc pt2pt: fence end (short circuit)"));
|
||||
return ret;
|
||||
@ -163,10 +166,10 @@ int ompi_osc_pt2pt_fence(int assert, ompi_win_t *win)
|
||||
"osc pt2pt: fence done sending"));
|
||||
|
||||
/* find out how much data everyone is going to send us. */
|
||||
ret = module->comm->c_coll.coll_reduce_scatter_block (module->epoch_outgoing_frag_count,
|
||||
ret = module->comm->c_coll->coll_reduce_scatter_block (module->epoch_outgoing_frag_count,
|
||||
&incoming_reqs, 1, MPI_UINT32_T,
|
||||
MPI_SUM, module->comm,
|
||||
module->comm->c_coll.coll_reduce_scatter_block_module);
|
||||
module->comm->c_coll->coll_reduce_scatter_block_module);
|
||||
if (OMPI_SUCCESS != ret) {
|
||||
return ret;
|
||||
}
|
||||
@ -196,7 +199,7 @@ int ompi_osc_pt2pt_fence(int assert, ompi_win_t *win)
|
||||
module->all_sync.epoch_active = false;
|
||||
OPAL_THREAD_UNLOCK(&module->lock);
|
||||
|
||||
module->comm->c_coll.coll_barrier (module->comm, module->comm->c_coll.coll_barrier_module);
|
||||
module->comm->c_coll->coll_barrier (module->comm, module->comm->c_coll->coll_barrier_module);
|
||||
|
||||
OPAL_OUTPUT_VERBOSE((25, ompi_osc_base_framework.framework_output,
|
||||
"osc pt2pt: fence end: %d", ret));
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2007 The Trustees of Indiana University.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2004-2008 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -414,8 +414,8 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
|
||||
|
||||
/* barrier to prevent arrival of lock requests before we're
|
||||
fully created */
|
||||
ret = module->comm->c_coll.coll_barrier(module->comm,
|
||||
module->comm->c_coll.coll_barrier_module);
|
||||
ret = module->comm->c_coll->coll_barrier(module->comm,
|
||||
module->comm->c_coll->coll_barrier_module);
|
||||
if (OMPI_SUCCESS != ret) goto cleanup;
|
||||
|
||||
if (!mca_osc_pt2pt_component.progress_enable) {
|
||||
@ -448,8 +448,8 @@ ompi_osc_pt2pt_set_info(struct ompi_win_t *win, struct ompi_info_t *info)
|
||||
(ompi_osc_pt2pt_module_t*) win->w_osc_module;
|
||||
|
||||
/* enforce collectiveness... */
|
||||
return module->comm->c_coll.coll_barrier(module->comm,
|
||||
module->comm->c_coll.coll_barrier_module);
|
||||
return module->comm->c_coll->coll_barrier(module->comm,
|
||||
module->comm->c_coll->coll_barrier_module);
|
||||
}
|
||||
|
||||
|
||||
|
@ -13,6 +13,9 @@
|
||||
* Copyright (c) 2012-2013 Sandia National Laboratories. All rights reserved.
|
||||
* Copyright (c) 2015 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -55,8 +58,8 @@ int ompi_osc_pt2pt_free(ompi_win_t *win)
|
||||
|
||||
/* finish with a barrier */
|
||||
if (ompi_group_size(win->w_group) > 1) {
|
||||
(void) module->comm->c_coll.coll_barrier (module->comm,
|
||||
module->comm->c_coll.coll_barrier_module);
|
||||
(void) module->comm->c_coll->coll_barrier (module->comm,
|
||||
module->comm->c_coll->coll_barrier_module);
|
||||
}
|
||||
|
||||
/* remove from component information */
|
||||
|
@ -13,6 +13,9 @@
|
||||
* Copyright (c) 2010 IBM Corporation. All rights reserved.
|
||||
* Copyright (c) 2012-2013 Sandia National Laboratories. All rights reserved.
|
||||
* Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -617,7 +620,7 @@ int ompi_osc_rdma_fence_atomic (int assert, ompi_win_t *win)
|
||||
OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "fence complete (short circuit)");
|
||||
/* no communication can occur until a peer has entered the same fence epoch. for now
|
||||
* a barrier is used to ensure this is the case. */
|
||||
ret = module->comm->c_coll.coll_barrier(module->comm, module->comm->c_coll.coll_barrier_module);
|
||||
ret = module->comm->c_coll->coll_barrier(module->comm, module->comm->c_coll->coll_barrier_module);
|
||||
OPAL_THREAD_UNLOCK(&module->lock);
|
||||
return ret;
|
||||
}
|
||||
@ -625,7 +628,7 @@ int ompi_osc_rdma_fence_atomic (int assert, ompi_win_t *win)
|
||||
ompi_osc_rdma_sync_rdma_complete (&module->all_sync);
|
||||
|
||||
/* ensure all writes to my memory are complete */
|
||||
ret = module->comm->c_coll.coll_barrier(module->comm, module->comm->c_coll.coll_barrier_module);
|
||||
ret = module->comm->c_coll->coll_barrier(module->comm, module->comm->c_coll->coll_barrier_module);
|
||||
|
||||
if (assert & MPI_MODE_NOSUCCEED) {
|
||||
/* as specified in MPI-3 p 438 3-5 the fence can end an epoch. it isn't explicitly
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2007 The Trustees of Indiana University.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2004-2008 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -521,8 +521,8 @@ static int allocate_state_shared (ompi_osc_rdma_module_t *module, void **base, s
|
||||
temp[local_rank].size = size;
|
||||
|
||||
/* gather the local sizes and ranks */
|
||||
ret = shared_comm->c_coll.coll_allgather (MPI_IN_PLACE, sizeof (*temp), MPI_BYTE, temp, sizeof (*temp),
|
||||
MPI_BYTE, shared_comm, shared_comm->c_coll.coll_allgather_module);
|
||||
ret = shared_comm->c_coll->coll_allgather (MPI_IN_PLACE, sizeof (*temp), MPI_BYTE, temp, sizeof (*temp),
|
||||
MPI_BYTE, shared_comm, shared_comm->c_coll->coll_allgather_module);
|
||||
if (OMPI_SUCCESS != ret) {
|
||||
break;
|
||||
}
|
||||
@ -557,8 +557,8 @@ static int allocate_state_shared (ompi_osc_rdma_module_t *module, void **base, s
|
||||
}
|
||||
}
|
||||
|
||||
ret = module->comm->c_coll.coll_bcast (&module->seg_ds, sizeof (module->seg_ds), MPI_BYTE, 0,
|
||||
shared_comm, shared_comm->c_coll.coll_bcast_module);
|
||||
ret = module->comm->c_coll->coll_bcast (&module->seg_ds, sizeof (module->seg_ds), MPI_BYTE, 0,
|
||||
shared_comm, shared_comm->c_coll->coll_bcast_module);
|
||||
if (OMPI_SUCCESS != ret) {
|
||||
break;
|
||||
}
|
||||
@ -607,7 +607,7 @@ static int allocate_state_shared (ompi_osc_rdma_module_t *module, void **base, s
|
||||
}
|
||||
|
||||
/* barrier to make sure all ranks have attached */
|
||||
shared_comm->c_coll.coll_barrier(shared_comm, shared_comm->c_coll.coll_barrier_module);
|
||||
shared_comm->c_coll->coll_barrier(shared_comm, shared_comm->c_coll->coll_barrier_module);
|
||||
|
||||
/* unlink the shared memory backing file */
|
||||
if (0 == local_rank) {
|
||||
@ -626,7 +626,7 @@ static int allocate_state_shared (ompi_osc_rdma_module_t *module, void **base, s
|
||||
}
|
||||
|
||||
/* barrier to make sure all ranks have attached */
|
||||
shared_comm->c_coll.coll_barrier(shared_comm, shared_comm->c_coll.coll_barrier_module);
|
||||
shared_comm->c_coll->coll_barrier(shared_comm, shared_comm->c_coll->coll_barrier_module);
|
||||
|
||||
offset = data_base;
|
||||
for (int i = 0 ; i < local_size ; ++i) {
|
||||
@ -858,8 +858,8 @@ static int ompi_osc_rdma_share_data (ompi_osc_rdma_module_t *module)
|
||||
temp[my_rank].node_id = module->node_id;
|
||||
temp[my_rank].rank = ompi_comm_rank (module->shared_comm);
|
||||
|
||||
ret = module->comm->c_coll.coll_allgather (MPI_IN_PLACE, 1, MPI_2INT, temp, 1, MPI_2INT,
|
||||
module->comm, module->comm->c_coll.coll_allgather_module);
|
||||
ret = module->comm->c_coll->coll_allgather (MPI_IN_PLACE, 1, MPI_2INT, temp, 1, MPI_2INT,
|
||||
module->comm, module->comm->c_coll->coll_allgather_module);
|
||||
if (OMPI_SUCCESS != ret) {
|
||||
break;
|
||||
}
|
||||
@ -879,9 +879,9 @@ static int ompi_osc_rdma_share_data (ompi_osc_rdma_module_t *module)
|
||||
|
||||
/* gather state data at each node leader */
|
||||
if (ompi_comm_size (module->local_leaders) > 1) {
|
||||
ret = module->local_leaders->c_coll.coll_allgather (MPI_IN_PLACE, module->region_size, MPI_BYTE, module->node_comm_info,
|
||||
ret = module->local_leaders->c_coll->coll_allgather (MPI_IN_PLACE, module->region_size, MPI_BYTE, module->node_comm_info,
|
||||
module->region_size, MPI_BYTE, module->local_leaders,
|
||||
module->local_leaders->c_coll.coll_gather_module);
|
||||
module->local_leaders->c_coll->coll_gather_module);
|
||||
if (OMPI_SUCCESS != ret) {
|
||||
OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_ERROR, "leader allgather failed with ompi error code %d", ret);
|
||||
break;
|
||||
@ -905,8 +905,8 @@ static int ompi_osc_rdma_share_data (ompi_osc_rdma_module_t *module)
|
||||
} while (0);
|
||||
|
||||
|
||||
ret = module->comm->c_coll.coll_allreduce (&ret, &global_result, 1, MPI_INT, MPI_MIN, module->comm,
|
||||
module->comm->c_coll.coll_allreduce_module);
|
||||
ret = module->comm->c_coll->coll_allreduce (&ret, &global_result, 1, MPI_INT, MPI_MIN, module->comm,
|
||||
module->comm->c_coll->coll_allreduce_module);
|
||||
|
||||
if (OMPI_SUCCESS != ret) {
|
||||
global_result = ret;
|
||||
@ -953,8 +953,8 @@ static int ompi_osc_rdma_create_groups (ompi_osc_rdma_module_t *module)
|
||||
}
|
||||
|
||||
if (ompi_comm_size (module->shared_comm) > 1) {
|
||||
ret = module->shared_comm->c_coll.coll_bcast (values, 2, MPI_INT, 0, module->shared_comm,
|
||||
module->shared_comm->c_coll.coll_bcast_module);
|
||||
ret = module->shared_comm->c_coll->coll_bcast (values, 2, MPI_INT, 0, module->shared_comm,
|
||||
module->shared_comm->c_coll->coll_bcast_module);
|
||||
if (OMPI_SUCCESS != ret) {
|
||||
OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_ERROR, "failed to broadcast local data. error code %d", ret);
|
||||
return ret;
|
||||
@ -993,8 +993,8 @@ static int ompi_osc_rdma_check_parameters (ompi_osc_rdma_module_t *module, int d
|
||||
values[2] = size;
|
||||
values[3] = -(ssize_t) size;
|
||||
|
||||
ret = module->comm->c_coll.coll_allreduce (MPI_IN_PLACE, values, 4, MPI_LONG, MPI_MIN, module->comm,
|
||||
module->comm->c_coll.coll_allreduce_module);
|
||||
ret = module->comm->c_coll->coll_allreduce (MPI_IN_PLACE, values, 4, MPI_LONG, MPI_MIN, module->comm,
|
||||
module->comm->c_coll->coll_allreduce_module);
|
||||
if (OMPI_SUCCESS != ret) {
|
||||
return ret;
|
||||
}
|
||||
@ -1230,8 +1230,8 @@ static int ompi_osc_rdma_set_info (struct ompi_win_t *win, struct ompi_info_t *i
|
||||
}
|
||||
|
||||
/* enforce collectiveness... */
|
||||
return module->comm->c_coll.coll_barrier(module->comm,
|
||||
module->comm->c_coll.coll_barrier_module);
|
||||
return module->comm->c_coll->coll_barrier(module->comm,
|
||||
module->comm->c_coll->coll_barrier_module);
|
||||
}
|
||||
|
||||
|
||||
|
@ -11,6 +11,9 @@
|
||||
* Copyright (c) 2007-2016 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2012-2013 Sandia National Laboratories. All rights reserved.
|
||||
* Copyright (c) 2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -55,8 +58,8 @@ int ompi_osc_rdma_free(ompi_win_t *win)
|
||||
|
||||
/* finish with a barrier */
|
||||
if (ompi_group_size(win->w_group) > 1) {
|
||||
(void) module->comm->c_coll.coll_barrier (module->comm,
|
||||
module->comm->c_coll.coll_barrier_module);
|
||||
(void) module->comm->c_coll->coll_barrier (module->comm,
|
||||
module->comm->c_coll->coll_barrier_module);
|
||||
}
|
||||
|
||||
/* remove from component information */
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Copyright (c) 2012 Sandia National Laboratories. All rights reserved.
|
||||
* Copyright (c) 2014-2016 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2014 The University of Tennessee and The University
|
||||
* Copyright (c) 2014-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
@ -101,8 +101,8 @@ ompi_osc_sm_fence(int assert, struct ompi_win_t *win)
|
||||
opal_atomic_mb();
|
||||
|
||||
if (module->global_state->use_barrier_for_fence) {
|
||||
return module->comm->c_coll.coll_barrier(module->comm,
|
||||
module->comm->c_coll.coll_barrier_module);
|
||||
return module->comm->c_coll->coll_barrier(module->comm,
|
||||
module->comm->c_coll->coll_barrier_module);
|
||||
} else {
|
||||
module->my_sense = !module->my_sense;
|
||||
pthread_mutex_lock(&module->global_state->mtx);
|
||||
|
@ -7,6 +7,9 @@
|
||||
* Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2015-2017 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -234,10 +237,10 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
|
||||
} else {
|
||||
total = size;
|
||||
}
|
||||
ret = module->comm->c_coll.coll_allgather(&total, 1, MPI_UNSIGNED_LONG,
|
||||
ret = module->comm->c_coll->coll_allgather(&total, 1, MPI_UNSIGNED_LONG,
|
||||
rbuf, 1, MPI_UNSIGNED_LONG,
|
||||
module->comm,
|
||||
module->comm->c_coll.coll_allgather_module);
|
||||
module->comm->c_coll->coll_allgather_module);
|
||||
if (OMPI_SUCCESS != ret) return ret;
|
||||
|
||||
total = 0;
|
||||
@ -266,8 +269,8 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
|
||||
}
|
||||
}
|
||||
|
||||
ret = module->comm->c_coll.coll_bcast (&module->seg_ds, sizeof (module->seg_ds), MPI_BYTE, 0,
|
||||
module->comm, module->comm->c_coll.coll_bcast_module);
|
||||
ret = module->comm->c_coll->coll_bcast (&module->seg_ds, sizeof (module->seg_ds), MPI_BYTE, 0,
|
||||
module->comm, module->comm->c_coll->coll_bcast_module);
|
||||
if (OMPI_SUCCESS != ret) {
|
||||
goto error;
|
||||
}
|
||||
@ -316,10 +319,10 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
|
||||
|
||||
/* share everyone's displacement units. */
|
||||
module->disp_units = malloc(sizeof(int) * comm_size);
|
||||
ret = module->comm->c_coll.coll_allgather(&disp_unit, 1, MPI_INT,
|
||||
ret = module->comm->c_coll->coll_allgather(&disp_unit, 1, MPI_INT,
|
||||
module->disp_units, 1, MPI_INT,
|
||||
module->comm,
|
||||
module->comm->c_coll.coll_allgather_module);
|
||||
module->comm->c_coll->coll_allgather_module);
|
||||
if (OMPI_SUCCESS != ret) goto error;
|
||||
|
||||
module->start_group = NULL;
|
||||
@ -375,8 +378,8 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
|
||||
#endif
|
||||
}
|
||||
|
||||
ret = module->comm->c_coll.coll_barrier(module->comm,
|
||||
module->comm->c_coll.coll_barrier_module);
|
||||
ret = module->comm->c_coll->coll_barrier(module->comm,
|
||||
module->comm->c_coll->coll_barrier_module);
|
||||
if (OMPI_SUCCESS != ret) goto error;
|
||||
|
||||
*model = MPI_WIN_UNIFIED;
|
||||
@ -462,8 +465,8 @@ ompi_osc_sm_free(struct ompi_win_t *win)
|
||||
/* free memory */
|
||||
if (NULL != module->segment_base) {
|
||||
/* synchronize */
|
||||
module->comm->c_coll.coll_barrier(module->comm,
|
||||
module->comm->c_coll.coll_barrier_module);
|
||||
module->comm->c_coll->coll_barrier(module->comm,
|
||||
module->comm->c_coll->coll_barrier_module);
|
||||
|
||||
if (0 == ompi_comm_rank (module->comm)) {
|
||||
opal_shmem_unlink (&module->seg_ds);
|
||||
@ -500,8 +503,8 @@ ompi_osc_sm_set_info(struct ompi_win_t *win, struct ompi_info_t *info)
|
||||
(ompi_osc_sm_module_t*) win->w_osc_module;
|
||||
|
||||
/* enforce collectiveness... */
|
||||
return module->comm->c_coll.coll_barrier(module->comm,
|
||||
module->comm->c_coll.coll_barrier_module);
|
||||
return module->comm->c_coll->coll_barrier(module->comm,
|
||||
module->comm->c_coll->coll_barrier_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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -148,7 +148,7 @@ int mca_sharedfp_addproc_file_close (mca_io_ompio_file_t *fh)
|
||||
/* Make sure that all processes are ready to release the
|
||||
** shared file pointer resources
|
||||
*/
|
||||
sh->comm->c_coll.coll_barrier(sh->comm, sh->comm->c_coll.coll_barrier_module );
|
||||
sh->comm->c_coll->coll_barrier(sh->comm, sh->comm->c_coll->coll_barrier_module );
|
||||
|
||||
addproc_data = (struct mca_sharedfp_addproc_data*)(sh->selected_module_data);
|
||||
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -114,9 +114,9 @@ int mca_sharedfp_addproc_read_ordered_begin(mca_io_ompio_file_t *fh,
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
ret = sh->comm->c_coll.coll_gather( &sendBuff, 1, OMPI_OFFSET_DATATYPE,
|
||||
ret = sh->comm->c_coll->coll_gather( &sendBuff, 1, OMPI_OFFSET_DATATYPE,
|
||||
buff, 1, OMPI_OFFSET_DATATYPE, 0, sh->comm,
|
||||
sh->comm->c_coll.coll_gather_module);
|
||||
sh->comm->c_coll->coll_gather_module);
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
@ -163,9 +163,9 @@ int mca_sharedfp_addproc_read_ordered_begin(mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
/* Scatter the results to the other processes*/
|
||||
ret = sh->comm->c_coll.coll_scatter ( buff, 1, OMPI_OFFSET_DATATYPE, &offsetBuff,
|
||||
ret = sh->comm->c_coll->coll_scatter ( buff, 1, OMPI_OFFSET_DATATYPE, &offsetBuff,
|
||||
1, OMPI_OFFSET_DATATYPE, 0, sh->comm,
|
||||
sh->comm->c_coll.coll_scatter_module );
|
||||
sh->comm->c_coll->coll_scatter_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -115,9 +115,9 @@ int mca_sharedfp_addproc_write_ordered_begin(mca_io_ompio_file_t *fh,
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
ret = sh->comm->c_coll.coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE, buff,
|
||||
ret = sh->comm->c_coll->coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE, buff,
|
||||
recvcnt, OMPI_OFFSET_DATATYPE, 0, sh->comm,
|
||||
sh->comm->c_coll.coll_gather_module);
|
||||
sh->comm->c_coll->coll_gather_module);
|
||||
if( OMPI_SUCCESS != ret ){
|
||||
goto exit;
|
||||
}
|
||||
@ -159,9 +159,9 @@ int mca_sharedfp_addproc_write_ordered_begin(mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
/* Scatter the results to the other processes*/
|
||||
ret = sh->comm->c_coll.coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE, &offsetBuff,
|
||||
ret = sh->comm->c_coll->coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE, &offsetBuff,
|
||||
recvcnt, OMPI_OFFSET_DATATYPE, 0, sh->comm,
|
||||
sh->comm->c_coll.coll_scatter_module );
|
||||
sh->comm->c_coll->coll_scatter_module );
|
||||
if( OMPI_SUCCESS != ret ){
|
||||
goto exit;
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -106,9 +106,9 @@ int mca_sharedfp_addproc_read_ordered (mca_io_ompio_file_t *fh,
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
ret = sh->comm->c_coll.coll_gather( &sendBuff, 1, OMPI_OFFSET_DATATYPE,
|
||||
ret = sh->comm->c_coll->coll_gather( &sendBuff, 1, OMPI_OFFSET_DATATYPE,
|
||||
buff, 1, OMPI_OFFSET_DATATYPE, 0, sh->comm,
|
||||
sh->comm->c_coll.coll_gather_module);
|
||||
sh->comm->c_coll->coll_gather_module);
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
@ -155,9 +155,9 @@ int mca_sharedfp_addproc_read_ordered (mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
/* Scatter the results to the other processes*/
|
||||
ret = sh->comm->c_coll.coll_scatter ( buff, 1, OMPI_OFFSET_DATATYPE, &offsetBuff,
|
||||
ret = sh->comm->c_coll->coll_scatter ( buff, 1, OMPI_OFFSET_DATATYPE, &offsetBuff,
|
||||
1, OMPI_OFFSET_DATATYPE, 0, sh->comm,
|
||||
sh->comm->c_coll.coll_scatter_module );
|
||||
sh->comm->c_coll->coll_scatter_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -63,7 +63,7 @@ mca_sharedfp_addproc_seek (mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
}
|
||||
ret = sh->comm->c_coll.coll_barrier(sh->comm, sh->comm->c_coll.coll_barrier_module);
|
||||
ret = sh->comm->c_coll->coll_barrier(sh->comm, sh->comm->c_coll->coll_barrier_module);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -111,9 +111,9 @@ int mca_sharedfp_addproc_write_ordered (mca_io_ompio_file_t *fh,
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
ret = sh->comm->c_coll.coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE, buff,
|
||||
ret = sh->comm->c_coll->coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE, buff,
|
||||
recvcnt, OMPI_OFFSET_DATATYPE, 0, sh->comm,
|
||||
sh->comm->c_coll.coll_gather_module);
|
||||
sh->comm->c_coll->coll_gather_module);
|
||||
if( OMPI_SUCCESS != ret ){
|
||||
goto exit;
|
||||
}
|
||||
@ -155,9 +155,9 @@ int mca_sharedfp_addproc_write_ordered (mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
/* Scatter the results to the other processes*/
|
||||
ret = sh->comm->c_coll.coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE, &offsetBuff,
|
||||
ret = sh->comm->c_coll->coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE, &offsetBuff,
|
||||
recvcnt, OMPI_OFFSET_DATATYPE, 0, sh->comm,
|
||||
sh->comm->c_coll.coll_scatter_module );
|
||||
sh->comm->c_coll->coll_scatter_module );
|
||||
if( OMPI_SUCCESS != ret ){
|
||||
goto exit;
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -92,9 +92,9 @@ int mca_sharedfp_individual_collaborate_data(struct mca_sharedfp_base_data_t *sh
|
||||
goto exit;
|
||||
}
|
||||
|
||||
comm->c_coll.coll_allgather ( &nodesoneachprocess, 1, MPI_INT,
|
||||
comm->c_coll->coll_allgather ( &nodesoneachprocess, 1, MPI_INT,
|
||||
countbuff, 1, MPI_INT, comm,
|
||||
comm->c_coll.coll_allgather_module );
|
||||
comm->c_coll->coll_allgather_module );
|
||||
|
||||
if ( mca_sharedfp_individual_verbose) {
|
||||
for (i = 0; i < size ; i++) {
|
||||
@ -137,16 +137,16 @@ int mca_sharedfp_individual_collaborate_data(struct mca_sharedfp_base_data_t *sh
|
||||
goto exit;
|
||||
}
|
||||
|
||||
ret = comm->c_coll.coll_allgatherv ( ind_ts, countbuff[rank], MPI_DOUBLE,
|
||||
ret = comm->c_coll->coll_allgatherv ( ind_ts, countbuff[rank], MPI_DOUBLE,
|
||||
timestampbuff, countbuff, displ, MPI_DOUBLE,
|
||||
comm, comm->c_coll.coll_allgatherv_module );
|
||||
comm, comm->c_coll->coll_allgatherv_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
|
||||
ret = comm->c_coll.coll_allgatherv ( ind_recordlength, countbuff[rank], OMPI_OFFSET_DATATYPE,
|
||||
ret = comm->c_coll->coll_allgatherv ( ind_recordlength, countbuff[rank], OMPI_OFFSET_DATATYPE,
|
||||
offsetbuff, countbuff, displ, OMPI_OFFSET_DATATYPE,
|
||||
comm, comm->c_coll.coll_allgatherv_module );
|
||||
comm, comm->c_coll->coll_allgatherv_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -159,9 +159,9 @@ int mca_sharedfp_individual_write_ordered_begin(mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
/*collect the total bytes to be written*/
|
||||
sh->comm->c_coll.coll_gather ( &totalbytes, 1, OMPI_OFFSET_DATATYPE,
|
||||
sh->comm->c_coll->coll_gather ( &totalbytes, 1, OMPI_OFFSET_DATATYPE,
|
||||
offbuff, 1, OMPI_OFFSET_DATATYPE, 0,
|
||||
sh->comm, sh->comm->c_coll.coll_gather_module );
|
||||
sh->comm, sh->comm->c_coll->coll_gather_module );
|
||||
|
||||
if ( 0 == rank ) {
|
||||
prev_offset = offbuff[0];
|
||||
@ -180,16 +180,16 @@ int mca_sharedfp_individual_write_ordered_begin(mca_io_ompio_file_t *fh,
|
||||
|
||||
|
||||
/* Scatter the results to the other processes */
|
||||
ret = sh->comm->c_coll.coll_scatter ( offbuff, 1, OMPI_OFFSET_DATATYPE,
|
||||
ret = sh->comm->c_coll->coll_scatter ( offbuff, 1, OMPI_OFFSET_DATATYPE,
|
||||
&offset, 1, OMPI_OFFSET_DATATYPE, 0,
|
||||
sh->comm, sh->comm->c_coll.coll_scatter_module );
|
||||
sh->comm, sh->comm->c_coll->coll_scatter_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
opal_output(0,"sharedfp_individual_write_ordered_begin: Error in scattering offsets \n");
|
||||
goto exit;
|
||||
}
|
||||
|
||||
ret = sh->comm->c_coll.coll_bcast ( &global_offset, 1, OMPI_OFFSET_DATATYPE,
|
||||
0, sh->comm, sh->comm->c_coll.coll_bcast_module );
|
||||
ret = sh->comm->c_coll->coll_bcast ( &global_offset, 1, OMPI_OFFSET_DATATYPE,
|
||||
0, sh->comm, sh->comm->c_coll->coll_bcast_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
opal_output(0,"sharedfp_individual_write_ordered_begin: Error while bcasting global offset \n");
|
||||
goto exit;
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -152,9 +152,9 @@ int mca_sharedfp_individual_write_ordered (mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
/*collect the total bytes to be written*/
|
||||
sh->comm->c_coll.coll_gather ( &totalbytes, 1, OMPI_OFFSET_DATATYPE,
|
||||
sh->comm->c_coll->coll_gather ( &totalbytes, 1, OMPI_OFFSET_DATATYPE,
|
||||
offbuff, 1, OMPI_OFFSET_DATATYPE, 0,
|
||||
sh->comm, sh->comm->c_coll.coll_gather_module );
|
||||
sh->comm, sh->comm->c_coll->coll_gather_module );
|
||||
|
||||
if ( 0 == rank ) {
|
||||
prev_offset = offbuff[0];
|
||||
@ -173,16 +173,16 @@ int mca_sharedfp_individual_write_ordered (mca_io_ompio_file_t *fh,
|
||||
|
||||
|
||||
/* Scatter the results to the other processes */
|
||||
ret = sh->comm->c_coll.coll_scatter ( offbuff, 1, OMPI_OFFSET_DATATYPE,
|
||||
ret = sh->comm->c_coll->coll_scatter ( offbuff, 1, OMPI_OFFSET_DATATYPE,
|
||||
&offset, 1, OMPI_OFFSET_DATATYPE, 0,
|
||||
sh->comm, sh->comm->c_coll.coll_scatter_module );
|
||||
sh->comm, sh->comm->c_coll->coll_scatter_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
opal_output(0,"sharedfp_individual_write_ordered: Error in scattering offsets \n");
|
||||
goto exit;
|
||||
}
|
||||
|
||||
ret = sh->comm->c_coll.coll_bcast ( &global_offset, 1, OMPI_OFFSET_DATATYPE,
|
||||
0, sh->comm, sh->comm->c_coll.coll_bcast_module );
|
||||
ret = sh->comm->c_coll->coll_bcast ( &global_offset, 1, OMPI_OFFSET_DATATYPE,
|
||||
0, sh->comm, sh->comm->c_coll->coll_bcast_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
opal_output(0,"sharedfp_individual_write_ordered: Error while bcasting global offset \n");
|
||||
goto exit;
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -115,7 +115,7 @@ int mca_sharedfp_lockedfile_file_open (struct ompi_communicator_t *comm,
|
||||
write ( handle, &position, sizeof(OMPI_MPI_OFFSET_TYPE) );
|
||||
close ( handle );
|
||||
}
|
||||
comm->c_coll.coll_barrier ( comm, comm->c_coll.coll_barrier_module );
|
||||
comm->c_coll->coll_barrier ( comm, comm->c_coll->coll_barrier_module );
|
||||
|
||||
handle = open ( lockedfilename, O_RDWR, 0644 );
|
||||
if ( -1 == handle ) {
|
||||
@ -133,7 +133,7 @@ int mca_sharedfp_lockedfile_file_open (struct ompi_communicator_t *comm,
|
||||
/*remember the shared file handle*/
|
||||
fh->f_sharedfp_data = sh;
|
||||
|
||||
comm->c_coll.coll_barrier ( comm, comm->c_coll.coll_barrier_module );
|
||||
comm->c_coll->coll_barrier ( comm, comm->c_coll->coll_barrier_module );
|
||||
|
||||
return err;
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -149,9 +149,9 @@ int mca_sharedfp_lockedfile_read_ordered_begin(mca_io_ompio_file_t *fh,
|
||||
}
|
||||
}
|
||||
|
||||
ret = sh->comm->c_coll.coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE, buff, recvcnt,
|
||||
ret = sh->comm->c_coll->coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE, buff, recvcnt,
|
||||
OMPI_OFFSET_DATATYPE, 0, sh->comm,
|
||||
sh->comm->c_coll.coll_gather_module );
|
||||
sh->comm->c_coll->coll_gather_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
@ -189,9 +189,9 @@ int mca_sharedfp_lockedfile_read_ordered_begin(mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
/* Scatter the results to the other processes*/
|
||||
ret = sh->comm->c_coll.coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
ret = sh->comm->c_coll->coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
&offsetBuff, recvcnt, OMPI_OFFSET_DATATYPE, 0,
|
||||
sh->comm, sh->comm->c_coll.coll_scatter_module );
|
||||
sh->comm, sh->comm->c_coll->coll_scatter_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -148,9 +148,9 @@ int mca_sharedfp_lockedfile_write_ordered_begin(mca_io_ompio_file_t *fh,
|
||||
}
|
||||
}
|
||||
|
||||
ret = sh->comm->c_coll.coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE, buff, recvcnt,
|
||||
ret = sh->comm->c_coll->coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE, buff, recvcnt,
|
||||
OMPI_OFFSET_DATATYPE, 0, sh->comm,
|
||||
sh->comm->c_coll.coll_gather_module );
|
||||
sh->comm->c_coll->coll_gather_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
@ -188,9 +188,9 @@ int mca_sharedfp_lockedfile_write_ordered_begin(mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
/* Scatter the results to the other processes*/
|
||||
ret = sh->comm->c_coll.coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
ret = sh->comm->c_coll->coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
&offsetBuff, recvcnt, OMPI_OFFSET_DATATYPE, 0,
|
||||
sh->comm, sh->comm->c_coll.coll_scatter_module );
|
||||
sh->comm, sh->comm->c_coll->coll_scatter_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -137,9 +137,9 @@ int mca_sharedfp_lockedfile_read_ordered (mca_io_ompio_file_t *fh,
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
ret = sh->comm->c_coll.coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
ret = sh->comm->c_coll->coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
buff, recvcnt, OMPI_OFFSET_DATATYPE, 0,
|
||||
sh->comm, sh->comm->c_coll.coll_gather_module );
|
||||
sh->comm, sh->comm->c_coll->coll_gather_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
@ -178,9 +178,9 @@ int mca_sharedfp_lockedfile_read_ordered (mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
/* Scatter the results to the other processes*/
|
||||
ret = sh->comm->c_coll.coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
ret = sh->comm->c_coll->coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
&offsetBuff, recvcnt, OMPI_OFFSET_DATATYPE, 0,
|
||||
sh->comm, sh->comm->c_coll.coll_scatter_module );
|
||||
sh->comm, sh->comm->c_coll->coll_scatter_module );
|
||||
|
||||
/*Each process now has its own individual offset in recvBUFF*/
|
||||
offset = offsetBuff - sendBuff;
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -160,6 +160,6 @@ mca_sharedfp_lockedfile_seek (mca_io_ompio_file_t *fh,
|
||||
}
|
||||
}
|
||||
|
||||
sh->comm->c_coll.coll_barrier ( sh->comm , sh->comm->c_coll.coll_barrier_module );
|
||||
sh->comm->c_coll->coll_barrier ( sh->comm , sh->comm->c_coll->coll_barrier_module );
|
||||
return ret;
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -142,9 +142,9 @@ int mca_sharedfp_lockedfile_write_ordered (mca_io_ompio_file_t *fh,
|
||||
}
|
||||
}
|
||||
|
||||
ret = sh->comm->c_coll.coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE, buff, recvcnt,
|
||||
ret = sh->comm->c_coll->coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE, buff, recvcnt,
|
||||
OMPI_OFFSET_DATATYPE, 0, sh->comm,
|
||||
sh->comm->c_coll.coll_gather_module );
|
||||
sh->comm->c_coll->coll_gather_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
@ -182,9 +182,9 @@ int mca_sharedfp_lockedfile_write_ordered (mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
/* Scatter the results to the other processes*/
|
||||
ret = sh->comm->c_coll.coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
ret = sh->comm->c_coll->coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
&offsetBuff, recvcnt, OMPI_OFFSET_DATATYPE, 0,
|
||||
sh->comm, sh->comm->c_coll.coll_scatter_module );
|
||||
sh->comm, sh->comm->c_coll->coll_scatter_module );
|
||||
if ( OMPI_SUCCESS != ret ) {
|
||||
goto exit;
|
||||
}
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -161,7 +161,7 @@ int mca_sharedfp_sm_file_open (struct ompi_communicator_t *comm,
|
||||
memset ( &sm_offset, 0, sizeof (struct mca_sharedfp_sm_offset ));
|
||||
write ( sm_fd, &sm_offset, sizeof(struct mca_sharedfp_sm_offset));
|
||||
}
|
||||
comm->c_coll.coll_barrier (comm, comm->c_coll.coll_barrier_module );
|
||||
comm->c_coll->coll_barrier (comm, comm->c_coll->coll_barrier_module );
|
||||
|
||||
/*the file has been written to, now we can map*/
|
||||
sm_offset_ptr = mmap(NULL, sizeof(struct mca_sharedfp_sm_offset), PROT_READ | PROT_WRITE,
|
||||
@ -223,7 +223,7 @@ int mca_sharedfp_sm_file_open (struct ompi_communicator_t *comm,
|
||||
err = OMPI_ERROR;
|
||||
}
|
||||
|
||||
comm->c_coll.coll_barrier (comm, comm->c_coll.coll_barrier_module );
|
||||
comm->c_coll->coll_barrier (comm, comm->c_coll->coll_barrier_module );
|
||||
|
||||
return err;
|
||||
}
|
||||
@ -249,7 +249,7 @@ int mca_sharedfp_sm_file_close (mca_io_ompio_file_t *fh)
|
||||
* all processes are ready to release the
|
||||
* shared file pointer resources
|
||||
*/
|
||||
sh->comm->c_coll.coll_barrier (sh->comm, sh->comm->c_coll.coll_barrier_module );
|
||||
sh->comm->c_coll->coll_barrier (sh->comm, sh->comm->c_coll->coll_barrier_module );
|
||||
|
||||
file_data = (sm_data*)(sh->selected_module_data);
|
||||
if (file_data) {
|
||||
|
@ -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-2005 The University of Tennessee and The University
|
||||
* Copyright (c) 2004-2017 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
@ -143,9 +143,9 @@ int mca_sharedfp_sm_read_ordered_begin(mca_io_ompio_file_t *fh,
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
ret = sh->comm->c_coll.coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
ret = sh->comm->c_coll->coll_gather ( &sendBuff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
buff, recvcnt, OMPI_OFFSET_DATATYPE, 0,
|
||||
sh->comm, sh->comm->c_coll.coll_gather_module );
|
||||
sh->comm, sh->comm->c_coll->coll_gather_module );
|
||||
if( OMPI_SUCCESS != ret){
|
||||
goto exit;
|
||||
}
|
||||
@ -185,9 +185,9 @@ int mca_sharedfp_sm_read_ordered_begin(mca_io_ompio_file_t *fh,
|
||||
}
|
||||
|
||||
/* Scatter the results to the other processes*/
|
||||
ret = sh->comm->c_coll.coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
ret = sh->comm->c_coll->coll_scatter ( buff, sendcnt, OMPI_OFFSET_DATATYPE,
|
||||
&offsetBuff, recvcnt, OMPI_OFFSET_DATATYPE, 0,
|
||||
sh->comm, sh->comm->c_coll.coll_scatter_module );
|
||||
sh->comm, sh->comm->c_coll->coll_scatter_module );
|
||||
if( OMPI_SUCCESS != ret){
|
||||
goto exit;
|
||||
}
|
||||
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче
Block a user