/* * 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 */