00001 #ifndef CPM_COLLECTIVES_H_
00002 #define CPM_COLLECTIVES_H_
00003
00004 #include <mpi.h>
00005 #include "models/cpm_model.h"
00006 #include "MPIBlib/collectives/libmpib_coll.h"
00007
00055 #ifdef __cplusplus
00056 extern "C" {
00057 #endif
00058
00060 int CPM_Scatterv_sorted_flat(CPM_predictor* predictor, MPIB_sort_order order,
00061 void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00062 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00063 int root, MPI_Comm comm);
00064
00066 int CPM_Gatherv_sorted_flat(CPM_predictor* predictor, MPIB_sort_order order,
00067 void* sendbuf, int sendcount, MPI_Datatype sendtype,
00068 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00069 int root, MPI_Comm comm);
00070
00072 int CPM_Bcast_dfs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00073 void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00074
00076 int CPM_Bcast_bfs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00077 void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00078
00080 int CPM_Reduce_dfs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00081 void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00082 MPI_Op op, int root, MPI_Comm comm);
00083
00085 int CPM_Reduce_bfs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00086 void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00087 MPI_Op op, int root, MPI_Comm comm);
00088
00090 int CPM_Bcast_ucs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00091 void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00092
00094 int CPM_Reduce_ucs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00095 void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00096 MPI_Op op, int root, MPI_Comm comm);
00097
00099 int CPM_Scatter_ucs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00100 void* sendbuf, int sendcount, MPI_Datatype sendtype,
00101 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00102 int root, MPI_Comm comm);
00103
00105 int CPM_Gather_ucs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00106 void* sendbuf, int sendcount, MPI_Datatype sendtype,
00107 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00108 int root, MPI_Comm comm);
00109
00111 int CPM_Scatter_bfs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00112 void* sendbuf, int sendcount, MPI_Datatype sendtype,
00113 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00114 int root, MPI_Comm comm);
00115
00117 int CPM_Scatter_dfs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00118 void* sendbuf, int sendcount, MPI_Datatype sendtype,
00119 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00120 int root, MPI_Comm comm);
00121
00123 int CPM_Gather_bfs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00124 void* sendbuf, int sendcount, MPI_Datatype sendtype,
00125 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00126 int root, MPI_Comm comm);
00127
00129 int CPM_Gather_dfs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00130 void* sendbuf, int sendcount, MPI_Datatype sendtype,
00131 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00132 int root, MPI_Comm comm);
00133
00135 int CPM_Scatterv_dfs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00136 void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00137 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00138 int root, MPI_Comm comm);
00139
00141 int CPM_Scatterv_bfs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00142 void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00143 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00144 int root, MPI_Comm comm);
00145
00147 int CPM_Scatterv_ucs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00148 void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00149 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00150 int root, MPI_Comm comm);
00151
00153 int CPM_Gatherv_dfs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00154 void* sendbuf, int sendcount, MPI_Datatype sendtype,
00155 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00156 int root, MPI_Comm comm);
00157
00159 int CPM_Gatherv_bfs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00160 void* sendbuf, int sendcount, MPI_Datatype sendtype,
00161 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00162 int root, MPI_Comm comm);
00163
00165 int CPM_Gatherv_ucs_binomial(CPM_predictor* predictor, CPM_next_node_strategy next_node,
00166 void* sendbuf, int sendcount, MPI_Datatype sendtype,
00167 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00168 int root, MPI_Comm comm);
00169
00171 int CPM_Scatterv_Traff(CPM_predictor* predictor,
00172 void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00173 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00174 int root, MPI_Comm comm);
00175
00177 int CPM_Gatherv_Traff(CPM_predictor* predictor,
00178 void* sendbuf, int sendcount, MPI_Datatype sendtype,
00179 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00180 int root, MPI_Comm comm);
00181
00182 #ifdef __cplusplus
00183 }
00184 #endif
00185
00189 #endif