root/ompi/mca/coll/inter/coll_inter.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
   3  *                         University Research and Technology
   4  *                         Corporation.  All rights reserved.
   5  * Copyright (c) 2004-2005 The University of Tennessee and The University
   6  *                         of Tennessee Research Foundation.  All rights
   7  *                         reserved.
   8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
   9  *                         University of Stuttgart.  All rights reserved.
  10  * Copyright (c) 2004-2005 The Regents of the University of California.
  11  *                         All rights reserved.
  12  * Copyright (c) 2006-2007 University of Houston. All rights reserved.
  13  * Copyright (c) 2008      Cisco Systems, Inc.  All rights reserved.
  14  * Copyright (c) 2015      Research Organization for Information Science
  15  *                         and Technology (RIST). All rights reserved.
  16  * $COPYRIGHT$
  17  *
  18  * Additional copyrights may follow
  19  *
  20  * $HEADER$
  21  */
  22 
  23 #ifndef MCA_COLL_INTER_EXPORT_H
  24 #define MCA_COLL_INTER_EXPORT_H
  25 
  26 #define mca_coll_inter_crossover 1
  27 #include "ompi_config.h"
  28 
  29 #include "mpi.h"
  30 #include "ompi/mca/mca.h"
  31 #include "ompi/mca/coll/coll.h"
  32 #include "ompi/communicator/communicator.h"
  33 
  34 BEGIN_C_DECLS
  35 
  36 /*
  37  * Globally exported variable
  38  */
  39 
  40 OMPI_MODULE_DECLSPEC extern const mca_coll_base_component_2_0_0_t mca_coll_inter_component;
  41 extern int mca_coll_inter_priority_param;
  42 extern int mca_coll_inter_verbose_param;
  43 
  44 
  45 /*
  46  * coll API functions
  47  */
  48 int mca_coll_inter_init_query(bool allow_inter_user_threads,
  49                               bool have_hidden_threads);
  50 mca_coll_base_module_t *
  51 mca_coll_inter_comm_query(struct ompi_communicator_t *comm, int *priority);
  52 
  53 int mca_coll_inter_module_enable(mca_coll_base_module_t *module,
  54                                  struct ompi_communicator_t *comm);
  55 
  56 int mca_coll_inter_allgather_inter(const void *sbuf, int scount,
  57                                    struct ompi_datatype_t *sdtype,
  58                                    void *rbuf, int rcount,
  59                                    struct ompi_datatype_t *rdtype,
  60                                    struct ompi_communicator_t *comm,
  61                                    mca_coll_base_module_t *module);
  62 int mca_coll_inter_allgatherv_inter(const void *sbuf, int scount,
  63                                     struct ompi_datatype_t *sdtype,
  64                                     void *rbuf, const int *rcounts, const int *disps,
  65                                     struct ompi_datatype_t *rdtype,
  66                                     struct ompi_communicator_t *comm,
  67                                     mca_coll_base_module_t *module);
  68 int mca_coll_inter_allreduce_inter(const void *sbuf, void *rbuf, int count,
  69                                    struct ompi_datatype_t *dtype,
  70                                    struct ompi_op_t *op,
  71                                    struct ompi_communicator_t *comm,
  72                                    mca_coll_base_module_t *module);
  73 int mca_coll_inter_bcast_inter(void *buff, int count,
  74                                struct ompi_datatype_t *datatype,
  75                                int root,
  76                                struct ompi_communicator_t *comm,
  77                                mca_coll_base_module_t *module);
  78 int mca_coll_inter_gather_inter(const void *sbuf, int scount,
  79                                 struct ompi_datatype_t *sdtype,
  80                                 void *rbuf, int rcount,
  81                                 struct ompi_datatype_t *rdtype,
  82                                 int root,
  83                                 struct ompi_communicator_t *comm,
  84                                 mca_coll_base_module_t *module);
  85 int mca_coll_inter_gatherv_inter(const void *sbuf, int scount,
  86                                  struct ompi_datatype_t *sdtype,
  87                                  void *rbuf, const int *rcounts, const int *disps,
  88                                  struct ompi_datatype_t *rdtype,
  89                                  int root,
  90                                  struct ompi_communicator_t *comm,
  91                                  mca_coll_base_module_t *module);
  92 int mca_coll_inter_reduce_inter(const void *sbuf, void* rbuf, int count,
  93                                 struct ompi_datatype_t *dtype,
  94                                 struct ompi_op_t *op,
  95                                 int root,
  96                                 struct ompi_communicator_t *comm,
  97                                 mca_coll_base_module_t *module);
  98 int mca_coll_inter_scatter_inter(const void *sbuf, int scount,
  99                                  struct ompi_datatype_t *sdtype, void *rbuf,
 100                                  int rcount, struct ompi_datatype_t *rdtype,
 101                                  int root, struct ompi_communicator_t *comm,
 102                                  mca_coll_base_module_t *module);
 103 int mca_coll_inter_scatterv_inter(const void *sbuf, const int *scounts, const int *disps,
 104                                   struct ompi_datatype_t *sdtype,
 105                                   void* rbuf, int rcount,
 106                                   struct ompi_datatype_t *rdtype, int root,
 107                                   struct ompi_communicator_t *comm,
 108                                   mca_coll_base_module_t *module);
 109 
 110 
 111 struct mca_coll_inter_module_t {
 112     mca_coll_base_module_t super;
 113 
 114     /* Clarifying some terminology:
 115      *  comm:    the input communicator, consisting of several lower level communicators.
 116      */
 117     struct ompi_communicator_t        *inter_comm; /* link back to the attached comm */
 118 };
 119 typedef struct mca_coll_inter_module_t mca_coll_inter_module_t;
 120 OBJ_CLASS_DECLARATION(mca_coll_inter_module_t);
 121 
 122 
 123 END_C_DECLS
 124 
 125 #endif /* MCA_COLL_INTER_EXPORT_H */

/* [<][>][^][v][top][bottom][index][help] */