coll.h
来自「MPI stands for the Message Passing Inter」· C头文件 代码 · 共 181 行
H
181 行
/* * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. * Copyright (c) 2004-2005 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */#ifndef MCA_COLL_H#define MCA_COLL_H#include "ompi_config.h"#include "mpi.h"#include "opal/mca/mca.h"#include "opal/mca/base/base.h"/* * Forward declaration */struct mca_coll_base_comm_t;/* * Coll component function typedefs */typedef int (*mca_coll_base_component_init_query_fn_t) (bool enable_progress_threads, bool enable_mpi_threads);typedef const struct mca_coll_base_module_1_0_0_t * (*mca_coll_base_component_comm_query_1_0_0_fn_t) (struct ompi_communicator_t *comm, int *priority, struct mca_coll_base_comm_t **data);typedef int (*mca_coll_base_component_comm_unquery_fn_t) (struct ompi_communicator_t *comm, struct mca_coll_base_comm_t *data);/* * Coll module function typedefs */typedef const struct mca_coll_base_module_1_0_0_t * (*mca_coll_base_module_init_1_0_0_fn_t)(struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_finalize_fn_t) (struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_allgather_fn_t) (void *sbuf, int scount, struct ompi_datatype_t *sdtype, void *rbuf, int rcount, struct ompi_datatype_t *rdtype, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_allgatherv_fn_t) (void *sbuf, int scount, struct ompi_datatype_t *sdtype, void * rbuf, int *rcounts, int *disps, struct ompi_datatype_t *rdtype, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_allreduce_fn_t) (void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype, struct ompi_op_t *op, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_alltoall_fn_t) (void *sbuf, int scount, struct ompi_datatype_t *sdtype, void* rbuf, int rcount, struct ompi_datatype_t *rdtype, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_alltoallv_fn_t) (void *sbuf, int *scounts, int *sdisps, struct ompi_datatype_t *sdtype, void *rbuf, int *rcounts, int *rdisps, struct ompi_datatype_t *rdtype, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_alltoallw_fn_t) (void *sbuf, int *scounts, int *sdisps, struct ompi_datatype_t **sdtypes, void *rbuf, int *rcounts, int *rdisps, struct ompi_datatype_t **rdtypes, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_barrier_fn_t) (struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_bcast_fn_t) (void *buff, int count, struct ompi_datatype_t *datatype, int root, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_exscan_fn_t) (void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype, struct ompi_op_t *op, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_gather_fn_t) (void *sbuf, int scount, struct ompi_datatype_t *sdtype, void *rbuf, int rcount, struct ompi_datatype_t *rdtype, int root, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_gatherv_fn_t) (void *sbuf, int scount, struct ompi_datatype_t *sdtype, void *rbuf, int *rcounts, int *disps, struct ompi_datatype_t *rdtype, int root, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_reduce_fn_t) (void *sbuf, void* rbuf, int count, struct ompi_datatype_t *dtype, struct ompi_op_t *op, int root, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_reduce_scatter_fn_t) (void *sbuf, void *rbuf, int *rcounts, struct ompi_datatype_t *dtype, struct ompi_op_t *op, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_scan_fn_t) (void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype, struct ompi_op_t *op, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_scatter_fn_t) (void *sbuf, int scount, struct ompi_datatype_t *sdtype, void *rbuf, int rcount, struct ompi_datatype_t *rdtype, int root, struct ompi_communicator_t *comm);typedef int (*mca_coll_base_module_scatterv_fn_t) (void *sbuf, int *scounts, int *disps, struct ompi_datatype_t *sdtype, void* rbuf, int rcount, struct ompi_datatype_t *rdtype, int root, struct ompi_communicator_t *comm);/* * Structure for coll v1.0.0 components * Chained to MCA v1.0.0 */struct mca_coll_base_component_1_0_0_t { mca_base_component_t collm_version; mca_base_component_data_1_0_0_t collm_data; /* Initialization / querying functions */ mca_coll_base_component_init_query_fn_t collm_init_query; mca_coll_base_component_comm_query_1_0_0_fn_t collm_comm_query; mca_coll_base_component_comm_unquery_fn_t collm_comm_unquery;};typedef struct mca_coll_base_component_1_0_0_t mca_coll_base_component_1_0_0_t;/* * This struct is hung on the communicator by the winning coll component * after the negotiation. It has pointers for all the collective * functions, as well as a "finalize" function for when the * communicator is freed. */struct mca_coll_base_module_1_0_0_t { /* Per-communicator initialization and finalization functions */ mca_coll_base_module_init_1_0_0_fn_t coll_module_init; mca_coll_base_module_finalize_fn_t coll_module_finalize; /* Collective function pointers */ mca_coll_base_module_allgather_fn_t coll_allgather; mca_coll_base_module_allgatherv_fn_t coll_allgatherv; mca_coll_base_module_allreduce_fn_t coll_allreduce; mca_coll_base_module_alltoall_fn_t coll_alltoall; mca_coll_base_module_alltoallv_fn_t coll_alltoallv; mca_coll_base_module_alltoallw_fn_t coll_alltoallw; mca_coll_base_module_barrier_fn_t coll_barrier; mca_coll_base_module_bcast_fn_t coll_bcast; mca_coll_base_module_exscan_fn_t coll_exscan; mca_coll_base_module_gather_fn_t coll_gather; mca_coll_base_module_gatherv_fn_t coll_gatherv; mca_coll_base_module_reduce_fn_t coll_reduce; mca_coll_base_module_reduce_scatter_fn_t coll_reduce_scatter; mca_coll_base_module_scan_fn_t coll_scan; mca_coll_base_module_scatter_fn_t coll_scatter; mca_coll_base_module_scatterv_fn_t coll_scatterv;};typedef struct mca_coll_base_module_1_0_0_t mca_coll_base_module_1_0_0_t;/* * Macro for use in components that are of type coll v1.0.0 */#define MCA_COLL_BASE_VERSION_1_0_0 \ /* coll v1.0 is chained to MCA v1.0 */ \ MCA_BASE_VERSION_1_0_0, \ /* coll v1.0 */ \ "coll", 1, 0, 0#endif /* MCA_COLL_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?