195ec89732
the coll_array functions are truly only used by the fcoll modules, so move them to fcoll/base. There is currently one exception to that rule (number of aggreagtors logic), but that function will be moved in a long term also to fcoll/base.
109 строки
5.6 KiB
C
109 строки
5.6 KiB
C
/* -*- Mode: C; c-basic-offset:4 ; -*- */
|
|
/*
|
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
* University Research and Technology
|
|
* Corporation. All rights reserved.
|
|
* Copyright (c) 2004-2007 The University of Tennessee and The University
|
|
* of Tennessee Research Foundation. All rights
|
|
* reserved.
|
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
* University of Stuttgart. All rights reserved.
|
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
|
* All rights reserved.
|
|
* Copyright (c) 2008-2016 University of Houston. All rights reserved.
|
|
* Copyright (c) 2015 Research Organization for Information Science
|
|
* and Technology (RIST). All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
#ifndef MCA_FCOLL_BASE_COLL_ARRAY_H
|
|
#define MCA_FCOLL_BASE_COLL_ARRAY_H
|
|
|
|
#include "mpi.h"
|
|
#include "opal/class/opal_list.h"
|
|
#include "ompi/communicator/communicator.h"
|
|
#include "ompi/info/info.h"
|
|
#include "opal/datatype/opal_convertor.h"
|
|
#include "ompi/datatype/ompi_datatype.h"
|
|
#include "ompi/request/request.h"
|
|
|
|
#define FCOLL_TAG_GATHER 100
|
|
#define FCOLL_TAG_GATHERV 101
|
|
#define FCOLL_TAG_BCAST 102
|
|
#define FCOLL_TAG_SCATTERV 103
|
|
|
|
|
|
/*
|
|
* Modified versions of Collective operations
|
|
* Based on an array of procs in group
|
|
*/
|
|
OMPI_DECLSPEC int fcoll_base_coll_gatherv_array (void *sbuf,
|
|
int scount,
|
|
ompi_datatype_t *sdtype,
|
|
void *rbuf,
|
|
int *rcounts,
|
|
int *disps,
|
|
ompi_datatype_t *rdtype,
|
|
int root_index,
|
|
int *procs_in_group,
|
|
int procs_per_group,
|
|
ompi_communicator_t *comm);
|
|
OMPI_DECLSPEC int fcoll_base_coll_scatterv_array (void *sbuf,
|
|
int *scounts,
|
|
int *disps,
|
|
ompi_datatype_t *sdtype,
|
|
void *rbuf,
|
|
int rcount,
|
|
ompi_datatype_t *rdtype,
|
|
int root_index,
|
|
int *procs_in_group,
|
|
int procs_per_group,
|
|
ompi_communicator_t *comm);
|
|
OMPI_DECLSPEC int fcoll_base_coll_allgather_array (void *sbuf,
|
|
int scount,
|
|
ompi_datatype_t *sdtype,
|
|
void *rbuf,
|
|
int rcount,
|
|
ompi_datatype_t *rdtype,
|
|
int root_index,
|
|
int *procs_in_group,
|
|
int procs_per_group,
|
|
ompi_communicator_t *comm);
|
|
|
|
OMPI_DECLSPEC int fcoll_base_coll_allgatherv_array (void *sbuf,
|
|
int scount,
|
|
ompi_datatype_t *sdtype,
|
|
void *rbuf,
|
|
int *rcounts,
|
|
int *disps,
|
|
ompi_datatype_t *rdtype,
|
|
int root_index,
|
|
int *procs_in_group,
|
|
int procs_per_group,
|
|
ompi_communicator_t *comm);
|
|
OMPI_DECLSPEC int fcoll_base_coll_gather_array (void *sbuf,
|
|
int scount,
|
|
ompi_datatype_t *sdtype,
|
|
void *rbuf,
|
|
int rcount,
|
|
ompi_datatype_t *rdtype,
|
|
int root_index,
|
|
int *procs_in_group,
|
|
int procs_per_group,
|
|
ompi_communicator_t *comm);
|
|
OMPI_DECLSPEC int fcoll_base_coll_bcast_array (void *buff,
|
|
int count,
|
|
ompi_datatype_t *datatype,
|
|
int root_index,
|
|
int *procs_in_group,
|
|
int procs_per_group,
|
|
ompi_communicator_t *comm);
|
|
|
|
END_C_DECLS
|
|
|
|
#endif /* MCA_FCOLL_BASE_COLL_ARRAY_H */
|