1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 
  21 
  22 
  23 
  24 
  25 
  26 
  27 
  28 
  29 
  30 
  31 
  32 
  33 
  34 
  35 
  36 
  37 
  38 
  39 
  40 
  41 
  42 
  43 
  44 
  45 
  46 
  47 
  48 
  49 
  50 
  51 
  52 
  53 
  54 
  55 
  56 
  57 
  58 
  59 
  60 
  61 
  62 
  63 #ifndef OMPI_MCA_COLL_COLL_H
  64 #define OMPI_MCA_COLL_COLL_H
  65 
  66 #include "ompi_config.h"
  67 
  68 #include "mpi.h"
  69 #include "ompi/mca/mca.h"
  70 #include "opal/mca/base/base.h"
  71 
  72 #include "opal/mca/crs/crs.h"
  73 #include "opal/mca/crs/base/base.h"
  74 #include "ompi/request/request.h"
  75 
  76 BEGIN_C_DECLS
  77 
  78 
  79 
  80 
  81 
  82 struct ompi_communicator_t;
  83 struct ompi_datatype_t;
  84 struct ompi_op_t;
  85 
  86 
  87 
  88 
  89 
  90 
  91 
  92 
  93 
  94 
  95 
  96 
  97 
  98 
  99 
 100 
 101 
 102 
 103 
 104 
 105 
 106 
 107 
 108 
 109 typedef int (*mca_coll_base_component_init_query_fn_t)
 110      (bool enable_progress_threads, bool enable_mpi_threads);
 111 
 112 
 113 
 114 
 115 
 116 
 117 
 118 
 119 
 120 
 121 
 122 
 123 
 124 
 125 
 126 
 127 
 128 
 129 
 130 
 131 
 132 
 133 
 134 
 135 
 136 
 137 
 138 
 139 
 140 
 141 typedef struct mca_coll_base_module_2_3_0_t *
 142   (*mca_coll_base_component_comm_query_2_0_0_fn_t)
 143     (struct ompi_communicator_t *comm, int *priority);
 144 
 145 
 146 
 147 
 148 
 149 
 150 
 151 
 152 
 153 
 154 
 155 
 156 
 157 
 158 
 159 
 160 
 161 
 162 
 163 
 164 
 165 
 166 
 167 
 168 
 169 
 170 
 171 
 172 
 173 
 174 
 175 
 176 
 177 
 178 
 179 
 180 typedef int
 181 (*mca_coll_base_module_enable_1_1_0_fn_t)(struct mca_coll_base_module_2_3_0_t* module,
 182                                           struct ompi_communicator_t *comm);
 183 
 184 
 185 
 186 
 187 
 188 
 189 
 190 
 191 
 192 
 193 
 194 
 195 typedef int
 196 (*mca_coll_base_module_disable_1_2_0_fn_t)(struct mca_coll_base_module_2_3_0_t* module,
 197                                           struct ompi_communicator_t *comm);
 198 
 199 
 200 typedef int (*mca_coll_base_module_allgather_fn_t)
 201   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 202    void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
 203    struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 204 typedef int (*mca_coll_base_module_allgatherv_fn_t)
 205   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 206    void * rbuf, const int *rcounts, const int *disps,  struct ompi_datatype_t *rdtype,
 207    struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 208 typedef int (*mca_coll_base_module_allreduce_fn_t)
 209   (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
 210    struct ompi_op_t *op, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 211 typedef int (*mca_coll_base_module_alltoall_fn_t)
 212   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 213    void* rbuf, int rcount, struct ompi_datatype_t *rdtype,
 214    struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 215 typedef int (*mca_coll_base_module_alltoallv_fn_t)
 216   (const void *sbuf, const int *scounts, const int *sdisps, struct ompi_datatype_t *sdtype,
 217    void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t *rdtype,
 218    struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 219 typedef int (*mca_coll_base_module_alltoallw_fn_t)
 220   (const void *sbuf, const int *scounts, const int *sdisps, struct ompi_datatype_t * const *sdtypes,
 221    void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t * const *rdtypes,
 222    struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 223 typedef int (*mca_coll_base_module_barrier_fn_t)
 224   (struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 225 typedef int (*mca_coll_base_module_bcast_fn_t)
 226   (void *buff, int count, struct ompi_datatype_t *datatype, int root,
 227    struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 228 typedef int (*mca_coll_base_module_exscan_fn_t)
 229   (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
 230    struct ompi_op_t *op, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 231 typedef int (*mca_coll_base_module_gather_fn_t)
 232   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 233    void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
 234    int root, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 235 typedef int (*mca_coll_base_module_gatherv_fn_t)
 236   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 237    void *rbuf, const int *rcounts, const int *disps, struct ompi_datatype_t *rdtype,
 238    int root, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 239 typedef int (*mca_coll_base_module_reduce_fn_t)
 240   (const void *sbuf, void* rbuf, int count, struct ompi_datatype_t *dtype,
 241    struct ompi_op_t *op, int root, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 242 typedef int (*mca_coll_base_module_reduce_scatter_fn_t)
 243   (const void *sbuf, void *rbuf, const int *rcounts, struct ompi_datatype_t *dtype,
 244    struct ompi_op_t *op, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 245 typedef int (*mca_coll_base_module_reduce_scatter_block_fn_t)
 246   (const void *sbuf, void *rbuf, int rcount, struct ompi_datatype_t *dtype,
 247    struct ompi_op_t *op, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 248 typedef int (*mca_coll_base_module_scan_fn_t)
 249   (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
 250    struct ompi_op_t *op, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 251 typedef int (*mca_coll_base_module_scatter_fn_t)
 252   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 253    void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
 254    int root, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 255 typedef int (*mca_coll_base_module_scatterv_fn_t)
 256   (const void *sbuf, const int *scounts, const int *disps, struct ompi_datatype_t *sdtype,
 257    void* rbuf, int rcount, struct ompi_datatype_t *rdtype,
 258    int root, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 259 
 260 
 261 typedef int (*mca_coll_base_module_iallgather_fn_t)
 262   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 263    void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
 264    struct ompi_communicator_t *comm, ompi_request_t ** request,
 265    struct mca_coll_base_module_2_3_0_t *module);
 266 typedef int (*mca_coll_base_module_iallgatherv_fn_t)
 267   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 268    void * rbuf, const int *rcounts, const int *disps,  struct ompi_datatype_t *rdtype,
 269    struct ompi_communicator_t *comm, ompi_request_t ** request,
 270    struct mca_coll_base_module_2_3_0_t *module);
 271 typedef int (*mca_coll_base_module_iallreduce_fn_t)
 272   (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
 273    struct ompi_op_t *op, struct ompi_communicator_t *comm,
 274    ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module);
 275 typedef int (*mca_coll_base_module_ialltoall_fn_t)
 276   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 277    void* rbuf, int rcount, struct ompi_datatype_t *rdtype,
 278    struct ompi_communicator_t *comm, ompi_request_t ** request,
 279    struct mca_coll_base_module_2_3_0_t *module);
 280 typedef int (*mca_coll_base_module_ialltoallv_fn_t)
 281   (const void *sbuf, const int *scounts, const int *sdisps, struct ompi_datatype_t *sdtype,
 282    void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t *rdtype,
 283    struct ompi_communicator_t *comm, ompi_request_t ** request,
 284    struct mca_coll_base_module_2_3_0_t *module);
 285 typedef int (*mca_coll_base_module_ialltoallw_fn_t)
 286   (const void *sbuf, const int *scounts, const int *sdisps, struct ompi_datatype_t * const *sdtypes,
 287    void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t * const *rdtypes,
 288    struct ompi_communicator_t *comm, ompi_request_t ** request,
 289    struct mca_coll_base_module_2_3_0_t *module);
 290 typedef int (*mca_coll_base_module_ibarrier_fn_t)
 291   (struct ompi_communicator_t *comm, ompi_request_t ** request,
 292    struct mca_coll_base_module_2_3_0_t *module);
 293 typedef int (*mca_coll_base_module_ibcast_fn_t)
 294   (void *buff, int count, struct ompi_datatype_t *datatype, int root,
 295    struct ompi_communicator_t *comm, ompi_request_t ** request,
 296    struct mca_coll_base_module_2_3_0_t *module);
 297 typedef int (*mca_coll_base_module_iexscan_fn_t)
 298   (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
 299    struct ompi_op_t *op, struct ompi_communicator_t *comm, ompi_request_t ** request,
 300    struct mca_coll_base_module_2_3_0_t *module);
 301 typedef int (*mca_coll_base_module_igather_fn_t)
 302   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 303    void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
 304    int root, struct ompi_communicator_t *comm, ompi_request_t ** request,
 305    struct mca_coll_base_module_2_3_0_t *module);
 306 typedef int (*mca_coll_base_module_igatherv_fn_t)
 307   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 308    void *rbuf, const int *rcounts, const int *disps, struct ompi_datatype_t *rdtype,
 309    int root, struct ompi_communicator_t *comm, ompi_request_t ** request,
 310    struct mca_coll_base_module_2_3_0_t *module);
 311 typedef int (*mca_coll_base_module_ireduce_fn_t)
 312   (const void *sbuf, void* rbuf, int count, struct ompi_datatype_t *dtype,
 313    struct ompi_op_t *op, int root, struct ompi_communicator_t *comm, ompi_request_t ** request,
 314    struct mca_coll_base_module_2_3_0_t *module);
 315 typedef int (*mca_coll_base_module_ireduce_scatter_fn_t)
 316   (const void *sbuf, void *rbuf, const int *rcounts, struct ompi_datatype_t *dtype,
 317    struct ompi_op_t *op, struct ompi_communicator_t *comm, ompi_request_t ** request,
 318    struct mca_coll_base_module_2_3_0_t *module);
 319 typedef int (*mca_coll_base_module_ireduce_scatter_block_fn_t)
 320   (const void *sbuf, void *rbuf, int rcount, struct ompi_datatype_t *dtype,
 321    struct ompi_op_t *op, struct ompi_communicator_t *comm, ompi_request_t ** request,
 322    struct mca_coll_base_module_2_3_0_t *module);
 323 typedef int (*mca_coll_base_module_iscan_fn_t)
 324   (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
 325    struct ompi_op_t *op, struct ompi_communicator_t *comm, ompi_request_t ** request,
 326    struct mca_coll_base_module_2_3_0_t *module);
 327 typedef int (*mca_coll_base_module_iscatter_fn_t)
 328   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 329    void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
 330    int root, struct ompi_communicator_t *comm, ompi_request_t ** request,
 331    struct mca_coll_base_module_2_3_0_t *module);
 332 typedef int (*mca_coll_base_module_iscatterv_fn_t)
 333   (const void *sbuf, const int *scounts, const int *disps, struct ompi_datatype_t *sdtype,
 334    void* rbuf, int rcount, struct ompi_datatype_t *rdtype,
 335    int root, struct ompi_communicator_t *comm, ompi_request_t ** request,
 336    struct mca_coll_base_module_2_3_0_t *module);
 337 
 338 
 339 typedef int (*mca_coll_base_module_allgather_init_fn_t)
 340   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 341    void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
 342    struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 343    struct mca_coll_base_module_2_3_0_t *module);
 344 typedef int (*mca_coll_base_module_allgatherv_init_fn_t)
 345   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 346    void * rbuf, const int *rcounts, const int *disps,  struct ompi_datatype_t *rdtype,
 347    struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 348    struct mca_coll_base_module_2_3_0_t *module);
 349 typedef int (*mca_coll_base_module_allreduce_init_fn_t)
 350   (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
 351    struct ompi_op_t *op, struct ompi_communicator_t *comm, struct ompi_info_t *info,
 352    ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module);
 353 typedef int (*mca_coll_base_module_alltoall_init_fn_t)
 354   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 355    void* rbuf, int rcount, struct ompi_datatype_t *rdtype,
 356    struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 357    struct mca_coll_base_module_2_3_0_t *module);
 358 typedef int (*mca_coll_base_module_alltoallv_init_fn_t)
 359   (const void *sbuf, const int *scounts, const int *sdisps, struct ompi_datatype_t *sdtype,
 360    void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t *rdtype,
 361    struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 362    struct mca_coll_base_module_2_3_0_t *module);
 363 typedef int (*mca_coll_base_module_alltoallw_init_fn_t)
 364   (const void *sbuf, const int *scounts, const int *sdisps, struct ompi_datatype_t * const *sdtypes,
 365    void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t * const *rdtypes,
 366    struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 367    struct mca_coll_base_module_2_3_0_t *module);
 368 typedef int (*mca_coll_base_module_barrier_init_fn_t)
 369   (struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 370    struct mca_coll_base_module_2_3_0_t *module);
 371 typedef int (*mca_coll_base_module_bcast_init_fn_t)
 372   (void *buff, int count, struct ompi_datatype_t *datatype, int root,
 373    struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 374    struct mca_coll_base_module_2_3_0_t *module);
 375 typedef int (*mca_coll_base_module_exscan_init_fn_t)
 376   (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
 377    struct ompi_op_t *op, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 378    struct mca_coll_base_module_2_3_0_t *module);
 379 typedef int (*mca_coll_base_module_gather_init_fn_t)
 380   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 381    void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
 382    int root, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 383    struct mca_coll_base_module_2_3_0_t *module);
 384 typedef int (*mca_coll_base_module_gatherv_init_fn_t)
 385   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 386    void *rbuf, const int *rcounts, const int *disps, struct ompi_datatype_t *rdtype,
 387    int root, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 388    struct mca_coll_base_module_2_3_0_t *module);
 389 typedef int (*mca_coll_base_module_reduce_init_fn_t)
 390   (const void *sbuf, void* rbuf, int count, struct ompi_datatype_t *dtype,
 391    struct ompi_op_t *op, int root, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 392    struct mca_coll_base_module_2_3_0_t *module);
 393 typedef int (*mca_coll_base_module_reduce_scatter_init_fn_t)
 394   (const void *sbuf, void *rbuf, const int *rcounts, struct ompi_datatype_t *dtype,
 395    struct ompi_op_t *op, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 396    struct mca_coll_base_module_2_3_0_t *module);
 397 typedef int (*mca_coll_base_module_reduce_scatter_block_init_fn_t)
 398   (const void *sbuf, void *rbuf, int rcount, struct ompi_datatype_t *dtype,
 399    struct ompi_op_t *op, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 400    struct mca_coll_base_module_2_3_0_t *module);
 401 typedef int (*mca_coll_base_module_scan_init_fn_t)
 402   (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
 403    struct ompi_op_t *op, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 404    struct mca_coll_base_module_2_3_0_t *module);
 405 typedef int (*mca_coll_base_module_scatter_init_fn_t)
 406   (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
 407    void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
 408    int root, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 409    struct mca_coll_base_module_2_3_0_t *module);
 410 typedef int (*mca_coll_base_module_scatterv_init_fn_t)
 411   (const void *sbuf, const int *scounts, const int *disps, struct ompi_datatype_t *sdtype,
 412    void* rbuf, int rcount, struct ompi_datatype_t *rdtype,
 413    int root, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 414    struct mca_coll_base_module_2_3_0_t *module);
 415 
 416 
 417 
 418 
 419 typedef int (*mca_coll_base_module_neighbor_alltoallw_fn_t)
 420   (const void *sbuf, const int *scounts, const MPI_Aint *sdisps, struct ompi_datatype_t * const *sdtypes,
 421    void *rbuf, const int *rcounts, const MPI_Aint *rdisps, struct ompi_datatype_t * const *rdtypes,
 422    struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
 423 typedef int (*mca_coll_base_module_ineighbor_alltoallw_fn_t)
 424   (const void *sbuf, const int *scounts, const MPI_Aint *sdisps, struct ompi_datatype_t * const *sdtypes,
 425    void *rbuf, const int *rcounts, const MPI_Aint *rdisps, struct ompi_datatype_t * const *rdtypes,
 426    struct ompi_communicator_t *comm, ompi_request_t ** request,
 427    struct mca_coll_base_module_2_3_0_t *module);
 428 typedef int (*mca_coll_base_module_neighbor_alltoallw_init_fn_t)
 429   (const void *sbuf, const int *scounts, const MPI_Aint *sdisps, struct ompi_datatype_t * const *sdtypes,
 430    void *rbuf, const int *rcounts, const MPI_Aint *rdisps, struct ompi_datatype_t * const *rdtypes,
 431    struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
 432    struct mca_coll_base_module_2_3_0_t *module);
 433 
 434 
 435 
 436 
 437 
 438 
 439 
 440 typedef int (*mca_coll_base_module_reduce_local_fn_t)
 441    (const void *inbuf, void *inoutbuf, int count,
 442     struct ompi_datatype_t * dtype, struct ompi_op_t * op,
 443     struct mca_coll_base_module_2_3_0_t *module);
 444 
 445 
 446 
 447 
 448 
 449 
 450 
 451 
 452 
 453 
 454 
 455 
 456 
 457 typedef int (*mca_coll_base_module_ft_event_fn_t) (int state);
 458 
 459 
 460 
 461 
 462 
 463 
 464 
 465 
 466 
 467 
 468 
 469 
 470 
 471 struct mca_coll_base_component_2_0_0_t {
 472     
 473     mca_base_component_t collm_version;
 474     
 475     mca_base_component_data_t collm_data;
 476 
 477     
 478     mca_coll_base_component_init_query_fn_t collm_init_query;
 479     
 480     mca_coll_base_component_comm_query_2_0_0_fn_t collm_comm_query;
 481 };
 482 typedef struct mca_coll_base_component_2_0_0_t mca_coll_base_component_2_0_0_t;
 483 
 484 
 485 
 486 
 487 typedef struct mca_coll_base_component_2_0_0_t mca_coll_base_component_t;
 488 
 489 
 490 
 491 
 492 
 493 
 494 
 495 
 496 
 497 
 498 
 499 
 500 
 501 
 502 
 503 
 504 struct mca_coll_base_module_2_3_0_t {
 505     
 506     opal_object_t super;
 507 
 508     
 509 
 510     mca_coll_base_module_enable_1_1_0_fn_t coll_module_enable;
 511 
 512     
 513 
 514     
 515     mca_coll_base_module_allgather_fn_t coll_allgather;
 516     mca_coll_base_module_allgatherv_fn_t coll_allgatherv;
 517     mca_coll_base_module_allreduce_fn_t coll_allreduce;
 518     mca_coll_base_module_alltoall_fn_t coll_alltoall;
 519     mca_coll_base_module_alltoallv_fn_t coll_alltoallv;
 520     mca_coll_base_module_alltoallw_fn_t coll_alltoallw;
 521     mca_coll_base_module_barrier_fn_t coll_barrier;
 522     mca_coll_base_module_bcast_fn_t coll_bcast;
 523     mca_coll_base_module_exscan_fn_t coll_exscan;
 524     mca_coll_base_module_gather_fn_t coll_gather;
 525     mca_coll_base_module_gatherv_fn_t coll_gatherv;
 526     mca_coll_base_module_reduce_fn_t coll_reduce;
 527     mca_coll_base_module_reduce_scatter_fn_t coll_reduce_scatter;
 528     mca_coll_base_module_reduce_scatter_block_fn_t coll_reduce_scatter_block;
 529     mca_coll_base_module_scan_fn_t coll_scan;
 530     mca_coll_base_module_scatter_fn_t coll_scatter;
 531     mca_coll_base_module_scatterv_fn_t coll_scatterv;
 532 
 533     
 534     mca_coll_base_module_iallgather_fn_t coll_iallgather;
 535     mca_coll_base_module_iallgatherv_fn_t coll_iallgatherv;
 536     mca_coll_base_module_iallreduce_fn_t coll_iallreduce;
 537     mca_coll_base_module_ialltoall_fn_t coll_ialltoall;
 538     mca_coll_base_module_ialltoallv_fn_t coll_ialltoallv;
 539     mca_coll_base_module_ialltoallw_fn_t coll_ialltoallw;
 540     mca_coll_base_module_ibarrier_fn_t coll_ibarrier;
 541     mca_coll_base_module_ibcast_fn_t coll_ibcast;
 542     mca_coll_base_module_iexscan_fn_t coll_iexscan;
 543     mca_coll_base_module_igather_fn_t coll_igather;
 544     mca_coll_base_module_igatherv_fn_t coll_igatherv;
 545     mca_coll_base_module_ireduce_fn_t coll_ireduce;
 546     mca_coll_base_module_ireduce_scatter_fn_t coll_ireduce_scatter;
 547     mca_coll_base_module_ireduce_scatter_block_fn_t coll_ireduce_scatter_block;
 548     mca_coll_base_module_iscan_fn_t coll_iscan;
 549     mca_coll_base_module_iscatter_fn_t coll_iscatter;
 550     mca_coll_base_module_iscatterv_fn_t coll_iscatterv;
 551 
 552     
 553     mca_coll_base_module_allgather_init_fn_t coll_allgather_init;
 554     mca_coll_base_module_allgatherv_init_fn_t coll_allgatherv_init;
 555     mca_coll_base_module_allreduce_init_fn_t coll_allreduce_init;
 556     mca_coll_base_module_alltoall_init_fn_t coll_alltoall_init;
 557     mca_coll_base_module_alltoallv_init_fn_t coll_alltoallv_init;
 558     mca_coll_base_module_alltoallw_init_fn_t coll_alltoallw_init;
 559     mca_coll_base_module_barrier_init_fn_t coll_barrier_init;
 560     mca_coll_base_module_bcast_init_fn_t coll_bcast_init;
 561     mca_coll_base_module_exscan_init_fn_t coll_exscan_init;
 562     mca_coll_base_module_gather_init_fn_t coll_gather_init;
 563     mca_coll_base_module_gatherv_init_fn_t coll_gatherv_init;
 564     mca_coll_base_module_reduce_init_fn_t coll_reduce_init;
 565     mca_coll_base_module_reduce_scatter_init_fn_t coll_reduce_scatter_init;
 566     mca_coll_base_module_reduce_scatter_block_init_fn_t coll_reduce_scatter_block_init;
 567     mca_coll_base_module_scan_init_fn_t coll_scan_init;
 568     mca_coll_base_module_scatter_init_fn_t coll_scatter_init;
 569     mca_coll_base_module_scatterv_init_fn_t coll_scatterv_init;
 570 
 571     
 572     mca_coll_base_module_allgather_fn_t coll_neighbor_allgather;
 573     mca_coll_base_module_allgatherv_fn_t coll_neighbor_allgatherv;
 574     mca_coll_base_module_alltoall_fn_t coll_neighbor_alltoall;
 575     mca_coll_base_module_alltoallv_fn_t coll_neighbor_alltoallv;
 576     mca_coll_base_module_neighbor_alltoallw_fn_t coll_neighbor_alltoallw;
 577 
 578     
 579     mca_coll_base_module_iallgather_fn_t coll_ineighbor_allgather;
 580     mca_coll_base_module_iallgatherv_fn_t coll_ineighbor_allgatherv;
 581     mca_coll_base_module_ialltoall_fn_t coll_ineighbor_alltoall;
 582     mca_coll_base_module_ialltoallv_fn_t coll_ineighbor_alltoallv;
 583     mca_coll_base_module_ineighbor_alltoallw_fn_t coll_ineighbor_alltoallw;
 584 
 585     
 586     mca_coll_base_module_allgather_init_fn_t coll_neighbor_allgather_init;
 587     mca_coll_base_module_allgatherv_init_fn_t coll_neighbor_allgatherv_init;
 588     mca_coll_base_module_alltoall_init_fn_t coll_neighbor_alltoall_init;
 589     mca_coll_base_module_alltoallv_init_fn_t coll_neighbor_alltoallv_init;
 590     mca_coll_base_module_neighbor_alltoallw_init_fn_t coll_neighbor_alltoallw_init;
 591 
 592     
 593     mca_coll_base_module_ft_event_fn_t ft_event;
 594 
 595     
 596 
 597     mca_coll_base_module_disable_1_2_0_fn_t coll_module_disable;
 598 
 599     mca_coll_base_module_reduce_local_fn_t coll_reduce_local;
 600 
 601     
 602 
 603     struct mca_coll_base_comm_t* base_data;
 604 };
 605 typedef struct mca_coll_base_module_2_3_0_t mca_coll_base_module_2_3_0_t;
 606 
 607 
 608 
 609 
 610 typedef struct mca_coll_base_module_2_3_0_t mca_coll_base_module_t;
 611 OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_coll_base_module_t);
 612 
 613 
 614 
 615 
 616 
 617 
 618 
 619 
 620 
 621 
 622 struct mca_coll_base_comm_coll_t {
 623 
 624     
 625     mca_coll_base_module_allgather_fn_t coll_allgather;
 626     mca_coll_base_module_2_3_0_t *coll_allgather_module;
 627     mca_coll_base_module_allgatherv_fn_t coll_allgatherv;
 628     mca_coll_base_module_2_3_0_t *coll_allgatherv_module;
 629     mca_coll_base_module_allreduce_fn_t coll_allreduce;
 630     mca_coll_base_module_2_3_0_t *coll_allreduce_module;
 631     mca_coll_base_module_alltoall_fn_t coll_alltoall;
 632     mca_coll_base_module_2_3_0_t *coll_alltoall_module;
 633     mca_coll_base_module_alltoallv_fn_t coll_alltoallv;
 634     mca_coll_base_module_2_3_0_t *coll_alltoallv_module;
 635     mca_coll_base_module_alltoallw_fn_t coll_alltoallw;
 636     mca_coll_base_module_2_3_0_t *coll_alltoallw_module;
 637     mca_coll_base_module_barrier_fn_t coll_barrier;
 638     mca_coll_base_module_2_3_0_t *coll_barrier_module;
 639     mca_coll_base_module_bcast_fn_t coll_bcast;
 640     mca_coll_base_module_2_3_0_t *coll_bcast_module;
 641     mca_coll_base_module_exscan_fn_t coll_exscan;
 642     mca_coll_base_module_2_3_0_t *coll_exscan_module;
 643     mca_coll_base_module_gather_fn_t coll_gather;
 644     mca_coll_base_module_2_3_0_t *coll_gather_module;
 645     mca_coll_base_module_gatherv_fn_t coll_gatherv;
 646     mca_coll_base_module_2_3_0_t *coll_gatherv_module;
 647     mca_coll_base_module_reduce_fn_t coll_reduce;
 648     mca_coll_base_module_2_3_0_t *coll_reduce_module;
 649     mca_coll_base_module_reduce_scatter_fn_t coll_reduce_scatter;
 650     mca_coll_base_module_2_3_0_t *coll_reduce_scatter_module;
 651     mca_coll_base_module_reduce_scatter_block_fn_t coll_reduce_scatter_block;
 652     mca_coll_base_module_2_3_0_t *coll_reduce_scatter_block_module;
 653     mca_coll_base_module_scan_fn_t coll_scan;
 654     mca_coll_base_module_2_3_0_t *coll_scan_module;
 655     mca_coll_base_module_scatter_fn_t coll_scatter;
 656     mca_coll_base_module_2_3_0_t *coll_scatter_module;
 657     mca_coll_base_module_scatterv_fn_t coll_scatterv;
 658     mca_coll_base_module_2_3_0_t *coll_scatterv_module;
 659 
 660     
 661     mca_coll_base_module_iallgather_fn_t coll_iallgather;
 662     mca_coll_base_module_2_3_0_t *coll_iallgather_module;
 663     mca_coll_base_module_iallgatherv_fn_t coll_iallgatherv;
 664     mca_coll_base_module_2_3_0_t *coll_iallgatherv_module;
 665     mca_coll_base_module_iallreduce_fn_t coll_iallreduce;
 666     mca_coll_base_module_2_3_0_t *coll_iallreduce_module;
 667     mca_coll_base_module_ialltoall_fn_t coll_ialltoall;
 668     mca_coll_base_module_2_3_0_t *coll_ialltoall_module;
 669     mca_coll_base_module_ialltoallv_fn_t coll_ialltoallv;
 670     mca_coll_base_module_2_3_0_t *coll_ialltoallv_module;
 671     mca_coll_base_module_ialltoallw_fn_t coll_ialltoallw;
 672     mca_coll_base_module_2_3_0_t *coll_ialltoallw_module;
 673     mca_coll_base_module_ibarrier_fn_t coll_ibarrier;
 674     mca_coll_base_module_2_3_0_t *coll_ibarrier_module;
 675     mca_coll_base_module_ibcast_fn_t coll_ibcast;
 676     mca_coll_base_module_2_3_0_t *coll_ibcast_module;
 677     mca_coll_base_module_iexscan_fn_t coll_iexscan;
 678     mca_coll_base_module_2_3_0_t *coll_iexscan_module;
 679     mca_coll_base_module_igather_fn_t coll_igather;
 680     mca_coll_base_module_2_3_0_t *coll_igather_module;
 681     mca_coll_base_module_igatherv_fn_t coll_igatherv;
 682     mca_coll_base_module_2_3_0_t *coll_igatherv_module;
 683     mca_coll_base_module_ireduce_fn_t coll_ireduce;
 684     mca_coll_base_module_2_3_0_t *coll_ireduce_module;
 685     mca_coll_base_module_ireduce_scatter_fn_t coll_ireduce_scatter;
 686     mca_coll_base_module_2_3_0_t *coll_ireduce_scatter_module;
 687     mca_coll_base_module_ireduce_scatter_block_fn_t coll_ireduce_scatter_block;
 688     mca_coll_base_module_2_3_0_t *coll_ireduce_scatter_block_module;
 689     mca_coll_base_module_iscan_fn_t coll_iscan;
 690     mca_coll_base_module_2_3_0_t *coll_iscan_module;
 691     mca_coll_base_module_iscatter_fn_t coll_iscatter;
 692     mca_coll_base_module_2_3_0_t *coll_iscatter_module;
 693     mca_coll_base_module_iscatterv_fn_t coll_iscatterv;
 694     mca_coll_base_module_2_3_0_t *coll_iscatterv_module;
 695 
 696     
 697     mca_coll_base_module_allgather_init_fn_t coll_allgather_init;
 698     mca_coll_base_module_2_3_0_t *coll_allgather_init_module;
 699     mca_coll_base_module_allgatherv_init_fn_t coll_allgatherv_init;
 700     mca_coll_base_module_2_3_0_t *coll_allgatherv_init_module;
 701     mca_coll_base_module_allreduce_init_fn_t coll_allreduce_init;
 702     mca_coll_base_module_2_3_0_t *coll_allreduce_init_module;
 703     mca_coll_base_module_alltoall_init_fn_t coll_alltoall_init;
 704     mca_coll_base_module_2_3_0_t *coll_alltoall_init_module;
 705     mca_coll_base_module_alltoallv_init_fn_t coll_alltoallv_init;
 706     mca_coll_base_module_2_3_0_t *coll_alltoallv_init_module;
 707     mca_coll_base_module_alltoallw_init_fn_t coll_alltoallw_init;
 708     mca_coll_base_module_2_3_0_t *coll_alltoallw_init_module;
 709     mca_coll_base_module_barrier_init_fn_t coll_barrier_init;
 710     mca_coll_base_module_2_3_0_t *coll_barrier_init_module;
 711     mca_coll_base_module_bcast_init_fn_t coll_bcast_init;
 712     mca_coll_base_module_2_3_0_t *coll_bcast_init_module;
 713     mca_coll_base_module_exscan_init_fn_t coll_exscan_init;
 714     mca_coll_base_module_2_3_0_t *coll_exscan_init_module;
 715     mca_coll_base_module_gather_init_fn_t coll_gather_init;
 716     mca_coll_base_module_2_3_0_t *coll_gather_init_module;
 717     mca_coll_base_module_gatherv_init_fn_t coll_gatherv_init;
 718     mca_coll_base_module_2_3_0_t *coll_gatherv_init_module;
 719     mca_coll_base_module_reduce_init_fn_t coll_reduce_init;
 720     mca_coll_base_module_2_3_0_t *coll_reduce_init_module;
 721     mca_coll_base_module_reduce_scatter_init_fn_t coll_reduce_scatter_init;
 722     mca_coll_base_module_2_3_0_t *coll_reduce_scatter_init_module;
 723     mca_coll_base_module_reduce_scatter_block_init_fn_t coll_reduce_scatter_block_init;
 724     mca_coll_base_module_2_3_0_t *coll_reduce_scatter_block_init_module;
 725     mca_coll_base_module_scan_init_fn_t coll_scan_init;
 726     mca_coll_base_module_2_3_0_t *coll_scan_init_module;
 727     mca_coll_base_module_scatter_init_fn_t coll_scatter_init;
 728     mca_coll_base_module_2_3_0_t *coll_scatter_init_module;
 729     mca_coll_base_module_scatterv_init_fn_t coll_scatterv_init;
 730     mca_coll_base_module_2_3_0_t *coll_scatterv_init_module;
 731 
 732     
 733     mca_coll_base_module_allgather_fn_t coll_neighbor_allgather;
 734     mca_coll_base_module_2_3_0_t *coll_neighbor_allgather_module;
 735     mca_coll_base_module_allgatherv_fn_t coll_neighbor_allgatherv;
 736     mca_coll_base_module_2_3_0_t *coll_neighbor_allgatherv_module;
 737     mca_coll_base_module_alltoall_fn_t coll_neighbor_alltoall;
 738     mca_coll_base_module_2_3_0_t *coll_neighbor_alltoall_module;
 739     mca_coll_base_module_alltoallv_fn_t coll_neighbor_alltoallv;
 740     mca_coll_base_module_2_3_0_t *coll_neighbor_alltoallv_module;
 741     mca_coll_base_module_neighbor_alltoallw_fn_t coll_neighbor_alltoallw;
 742     mca_coll_base_module_2_3_0_t *coll_neighbor_alltoallw_module;
 743 
 744     
 745     mca_coll_base_module_iallgather_fn_t coll_ineighbor_allgather;
 746     mca_coll_base_module_2_3_0_t *coll_ineighbor_allgather_module;
 747     mca_coll_base_module_iallgatherv_fn_t coll_ineighbor_allgatherv;
 748     mca_coll_base_module_2_3_0_t *coll_ineighbor_allgatherv_module;
 749     mca_coll_base_module_ialltoall_fn_t coll_ineighbor_alltoall;
 750     mca_coll_base_module_2_3_0_t *coll_ineighbor_alltoall_module;
 751     mca_coll_base_module_ialltoallv_fn_t coll_ineighbor_alltoallv;
 752     mca_coll_base_module_2_3_0_t *coll_ineighbor_alltoallv_module;
 753     mca_coll_base_module_ineighbor_alltoallw_fn_t coll_ineighbor_alltoallw;
 754     mca_coll_base_module_2_3_0_t *coll_ineighbor_alltoallw_module;
 755 
 756     
 757     mca_coll_base_module_allgather_init_fn_t coll_neighbor_allgather_init;
 758     mca_coll_base_module_2_3_0_t *coll_neighbor_allgather_init_module;
 759     mca_coll_base_module_allgatherv_init_fn_t coll_neighbor_allgatherv_init;
 760     mca_coll_base_module_2_3_0_t *coll_neighbor_allgatherv_init_module;
 761     mca_coll_base_module_alltoall_init_fn_t coll_neighbor_alltoall_init;
 762     mca_coll_base_module_2_3_0_t *coll_neighbor_alltoall_init_module;
 763     mca_coll_base_module_alltoallv_init_fn_t coll_neighbor_alltoallv_init;
 764     mca_coll_base_module_2_3_0_t *coll_neighbor_alltoallv_init_module;
 765     mca_coll_base_module_neighbor_alltoallw_init_fn_t coll_neighbor_alltoallw_init;
 766     mca_coll_base_module_2_3_0_t *coll_neighbor_alltoallw_init_module;
 767 
 768     mca_coll_base_module_reduce_local_fn_t coll_reduce_local;
 769     mca_coll_base_module_2_3_0_t *coll_reduce_local_module;
 770 };
 771 typedef struct mca_coll_base_comm_coll_t mca_coll_base_comm_coll_t;
 772 
 773 
 774 
 775 
 776 
 777 
 778 
 779 
 780 #define MCA_COLL_BASE_VERSION_2_0_0 \
 781     OMPI_MCA_BASE_VERSION_2_1_0("coll", 2, 0, 0)
 782 
 783 
 784 
 785 
 786 
 787 END_C_DECLS
 788 
 789 #endif