Blob Blame History Raw
#ifndef COLL_ALGO_PARAMS_H_INCLUDED
#define COLL_ALGO_PARAMS_H_INCLUDED

#include "../src/ch4_coll_params.h"
#include "../src/ch4_coll_containers.h"
/* *INDENT-OFF* */
@ch4_netmod_coll_params_include@
#include "../shm/src/shm_coll_params.h"
/* *INDENT-ON* */

#define MPIDI_COLL_AUTO_SELECT (-1)

typedef union MPIDIG_Barrier_algo_params {
    /* *INDENT-OFF* */
    MPIDI_BARRIER_PARAMS_DECL;
    @ch4_netmod_barrier_params_decl@
    MPIDI_SHM_BARRIER_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_BARRIER_ALGO_params_t;

typedef union MPIDIG_Bcast_algo_params {
    /* *INDENT-OFF* */
    MPIDI_BCAST_PARAMS_DECL;
    @ch4_netmod_bcast_params_decl@
    MPIDI_SHM_BCAST_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_BCAST_ALGO_params_t;

typedef union MPIDIG_Reduce_algo_params {
    /* *INDENT-OFF* */
    MPIDI_REDUCE_PARAMS_DECL;
    @ch4_netmod_reduce_params_decl@
    MPIDI_SHM_REDUCE_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_REDUCE_ALGO_params_t;

typedef union MPIDIG_Allreduce_algo_params {
    /* *INDENT-OFF* */
    MPIDI_ALLREDUCE_PARAMS_DECL;
    @ch4_netmod_allreduce_params_decl@
    MPIDI_SHM_ALLREDUCE_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_ALLREDUCE_ALGO_params_t;

typedef union MPIDIG_Alltoall_algo_params {
    /* *INDENT-OFF* */
    MPIDI_ALLTOALL_PARAMS_DECL;
    @ch4_netmod_alltoall_params_decl@
    MPIDI_SHM_ALLTOALL_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_ALLTOALL_ALGO_params_t;

typedef union MPIDIG_Alltoallv_algo_params {
    /* *INDENT-OFF* */
    MPIDI_ALLTOALLV_PARAMS_DECL;
    @ch4_netmod_alltoallv_params_decl@
    MPIDI_SHM_ALLTOALLV_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_ALLTOALLV_ALGO_params_t;

typedef union MPIDIG_Alltoallw_algo_params {
    /* *INDENT-OFF* */
    MPIDI_ALLTOALLW_PARAMS_DECL;
    @ch4_netmod_alltoallw_params_decl@
    MPIDI_SHM_ALLTOALLW_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_ALLTOALLW_ALGO_params_t;

typedef union MPIDIG_Allgather_algo_params {
    /* *INDENT-OFF* */
    MPIDI_ALLGATHER_PARAMS_DECL;
    @ch4_netmod_allgather_params_decl@
    MPIDI_SHM_ALLGATHER_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_ALLGATHER_ALGO_params_t;

typedef union MPIDIG_Allgatherv_algo_params {
    /* *INDENT-OFF* */
    MPIDI_ALLGATHERV_PARAMS_DECL;
    @ch4_netmod_allgatherv_params_decl@
    MPIDI_SHM_ALLGATHERV_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_ALLGATHERV_ALGO_params_t;

typedef union MPIDIG_Gather_algo_params {
    /* *INDENT-OFF* */
    MPIDI_GATHER_PARAMS_DECL;
    @ch4_netmod_gather_params_decl@
    MPIDI_SHM_GATHER_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_GATHER_ALGO_params_t;

typedef union MPIDIG_Gatherv_algo_params {
    /* *INDENT-OFF* */
    MPIDI_GATHERV_PARAMS_DECL;
    @ch4_netmod_gatherv_params_decl@
    MPIDI_SHM_GATHERV_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_GATHERV_ALGO_params_t;

typedef union MPIDIG_Scatter_algo_params {
    /* *INDENT-OFF* */
    MPIDI_SCATTER_PARAMS_DECL;
    @ch4_netmod_scatter_params_decl@
    MPIDI_SHM_SCATTER_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_SCATTER_ALGO_params_t;

typedef union MPIDIG_Scatterv_algo_params {
    /* *INDENT-OFF* */
    MPIDI_SCATTERV_PARAMS_DECL;
    @ch4_netmod_scatterv_params_decl@
    MPIDI_SHM_SCATTERV_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_SCATTERV_ALGO_params_t;

typedef union MPIDIG_Reduce_scatter_algo_params {
    /* *INDENT-OFF* */
    MPIDI_REDUCE_SCATTER_PARAMS_DECL;
    @ch4_netmod_reduce_scatter_params_decl@
    MPIDI_SHM_REDUCE_SCATTER_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_REDUCE_SCATTER_ALGO_params_t;

typedef union MPIDIG_Reduce_scatter_block_algo_params {
    /* *INDENT-OFF* */
    MPIDI_REDUCE_SCATTER_BLOCK_PARAMS_DECL;
    @ch4_netmod_reduce_scatter_block_params_decl@
    MPIDI_SHM_REDUCE_SCATTER_BLOCK_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_REDUCE_SCATTER_BLOCK_ALGO_params_t;

typedef union MPIDIG_Scan_algo_params {
    /* *INDENT-OFF* */
    MPIDI_SCAN_PARAMS_DECL;
    @ch4_netmod_scan_params_decl@
    MPIDI_SHM_SCAN_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_SCAN_ALGO_params_t;

typedef union MPIDIG_Exscan_algo_params {
    /* *INDENT-OFF* */
    MPIDI_EXSCAN_PARAMS_DECL;
    @ch4_netmod_exscan_params_decl@
    MPIDI_SHM_EXSCAN_PARAMS_DECL;
    /* *INDENT-ON* */
} MPIDIG_EXSCAN_ALGO_params_t;

#define MPIDIG_BARRIER_PARAMS_DECL MPIDIG_BARRIER_ALGO_params_t barrier_params;
#define MPIDIG_BCAST_PARAMS_DECL MPIDIG_BCAST_ALGO_params_t bcast_params;
#define MPIDIG_REDUCE_PARAMS_DECL MPIDIG_REDUCE_ALGO_params_t reduce_params;
#define MPIDIG_ALLREDUCE_PARAMS_DECL MPIDIG_ALLREDUCE_ALGO_params_t allreduce_params;
#define MPIDIG_ALLTOALL_PARAMS_DECL MPIDIG_ALLTOALL_ALGO_params_t alltoall_params;
#define MPIDIG_ALLTOALLV_PARAMS_DECL MPIDIG_ALLTOALLV_ALGO_params_t alltoallv_params;
#define MPIDIG_ALLTOALLW_PARAMS_DECL MPIDIG_ALLTOALLW_ALGO_params_t alltoallw_params;
#define MPIDIG_ALLGATHER_PARAMS_DECL MPIDIG_ALLGATHER_ALGO_params_t allgather_params;
#define MPIDIG_ALLGATHERV_PARAMS_DECL MPIDIG_ALLGATHERV_ALGO_params_t allgatherv_params;
#define MPIDIG_GATHER_PARAMS_DECL MPIDIG_GATHER_ALGO_params_t gather_params;
#define MPIDIG_GATHERV_PARAMS_DECL MPIDIG_GATHERV_ALGO_params_t gatherv_params;
#define MPIDIG_SCATTER_PARAMS_DECL MPIDIG_SCATTER_ALGO_params_t scatter_params;
#define MPIDIG_SCATTERV_PARAMS_DECL MPIDIG_SCATTERV_ALGO_params_t scatterv_params;
#define MPIDIG_REDUCE_SCATTER_PARAMS_DECL MPIDIG_REDUCE_SCATTER_ALGO_params_t reduce_scatter_params;
#define MPIDIG_REDUCE_SCATTER_BLOCK_PARAMS_DECL MPIDIG_REDUCE_SCATTER_BLOCK_ALGO_params_t reduce_scatter_block_params;
#define MPIDIG_SCAN_PARAMS_DECL MPIDIG_SCAN_ALGO_params_t scan_params;
#define MPIDIG_EXSCAN_PARAMS_DECL MPIDIG_EXSCAN_ALGO_params_t exscan_params;

typedef union MPIDIG_coll_algo_generic_params {
    MPIDIG_BARRIER_PARAMS_DECL;
    MPIDIG_BCAST_PARAMS_DECL;
    MPIDIG_REDUCE_PARAMS_DECL;
    MPIDIG_ALLREDUCE_PARAMS_DECL;
    MPIDIG_ALLTOALL_PARAMS_DECL;
    MPIDIG_ALLTOALLV_PARAMS_DECL;
    MPIDIG_ALLTOALLW_PARAMS_DECL;
    MPIDIG_ALLGATHER_PARAMS_DECL;
    MPIDIG_ALLGATHERV_PARAMS_DECL;
    MPIDIG_GATHER_PARAMS_DECL;
    MPIDIG_GATHERV_PARAMS_DECL;
    MPIDIG_SCATTER_PARAMS_DECL;
    MPIDIG_SCATTERV_PARAMS_DECL;
    MPIDIG_REDUCE_SCATTER_PARAMS_DECL;
    MPIDIG_REDUCE_SCATTER_BLOCK_PARAMS_DECL;
    MPIDIG_SCAN_PARAMS_DECL;
    MPIDIG_EXSCAN_PARAMS_DECL;
} MPIDIG_coll_algo_generic_params_t;

typedef struct MPIDIG_coll_algo_generic_container {
    int id;
    MPIDIG_coll_algo_generic_params_t params;
} MPIDIG_coll_algo_generic_container_t;

const void *MPIDI_coll_get_next_container(const void *container);

#endif /* COLL_ALGO_PARAMS_H_INCLUDED */