1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 
  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 
  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 
  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     
 115 
 116 
 117     struct ompi_communicator_t        *inter_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