1
1
openmpi/ompi/mca/coll/ml/coll_ml_functions.h
Pavel Shamis b89f8fabc9 Adding Hierarchical Collectives project to the Open MPI trunk.
The project includes following components and frameworks: 
- ML Collective component
- NETPATTERNS and COMMPATTERNS common components
- BCOL framework
- SBGP framework

Note: By default the ML collective component is disabled. In order to enable
new collectives user should bump up the priority of ml component (coll_ml_priority)

=============================================

Primary Contributors (in alphabetical order):

Ishai Rabinovich (Mellanox)
Joshua S. Ladd (ORNL / Mellanox)
Manjunath Gorentla Venkata (ORNL)
Mike Dubman (Mellanox)
Noam Bloch (Mellanox)
Pavel (Pasha) Shamis (ORNL / Mellanox)
Richard Graham (ORNL / Mellanox)
Vasily Filipov (Mellanox)

This commit was SVN r27078.
2012-08-16 19:11:35 +00:00

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