1
1
openmpi/ompi/mca/coll/ml/coll_ml_functions.h

122 строки
2.6 KiB
C
Исходник Обычный вид История

/*
* Copyright (c) 2009-2012 Oak Ridge National Laboratory. All rights reserved.
* Copyright (c) 2009-2012 Mellanox Technologies. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
/** @file */
#ifndef MCA_COLL_ML_FUNCTIONS_H
#define MCA_COLL_ML_FUNCTIONS_H
#include "ompi_config.h"
BEGIN_C_DECLS
#define ML_MEMSYNC -100
enum {
ML_BARRIER_DEFAULT
};
/* small data algorithm */
/* broadcast functions */
enum {
/* small data algorithm */
ML_BCAST_SMALL_DATA_KNOWN,
/* small data - dynamic decision making supported */
ML_BCAST_SMALL_DATA_UNKNOWN,
/* Sequential algorithm */
ML_BCAST_SMALL_DATA_SEQUENTIAL,
ML_BCAST_LARGE_DATA_KNOWN,
ML_BCAST_LARGE_DATA_UNKNOWN,
ML_BCAST_LARGE_DATA_SEQUENTIAL,
/* marker - all routines about this are expected to be used in
* selection logic that is based on size of the data */
ML_N_DATASIZE_BINS,
/* number of functions - also counts some markers, but ... */
ML_NUM_BCAST_FUNCTIONS
};
/* scatter functions */
enum {
/* small data algorithm */
ML_SCATTER_SMALL_DATA_KNOWN,
/* marker - all routines about this are expected to be used in
* selection logic that is based on size of the data */
ML_SCATTER_N_DATASIZE_BINS,
/* small data - dynamic decision making supported */
ML_SCATTER_SMALL_DATA_UNKNOWN,
/* Sequential algorithm */
ML_SCATTER_SMALL_DATA_SEQUENTIAL,
/* number of functions - also counts some markers, but ... */
ML_NUM_SCATTER_FUNCTIONS
};
/* Allreduce functions */
enum {
/* small data algorithm */
ML_SMALL_DATA_ALLREDUCE,
/* Large data algorithm */
ML_LARGE_DATA_ALLREDUCE,
/* If some of bcols doesn't support
all possibles types, use these extra algthms */
/* small data algorithm */
ML_SMALL_DATA_EXTRA_TOPO_ALLREDUCE,
/* large data algorithm */
ML_LARGE_DATA_EXTRA_TOPO_ALLREDUCE,
/* number of functions */
ML_NUM_ALLREDUCE_FUNCTIONS
};
/* Alltoall functions */
enum {
/* small data algorithm */
ML_SMALL_DATA_ALLTOALL,
/* large all to all */
ML_LARGE_DATA_ALLTOALL,
/* number of functions */
ML_NUM_ALLTOALL_FUNCTIONS
};
/* Allgather functions */
enum {
/* small data */
ML_SMALL_DATA_ALLGATHER,
/* large data */
ML_LARGE_DATA_ALLGATHER,
/* number of functions */
ML_NUM_ALLGATHER_FUNCTIONS
};
/* gather functions */
enum {
/* small data */
ML_SMALL_DATA_GATHER,
/* large data */
ML_LARGE_DATA_GATHER,
/* number of functions */
ML_NUM_GATHER_FUNCTIONS
};
END_C_DECLS
#endif /* MCA_COLL_ML_FUNCTIONS_H */