00001 #ifndef HOCKNEY_COLLECTIVES_H_
00002 #define HOCKNEY_COLLECTIVES_H_
00003
00004 #ifdef HAVE_CONFIG_H
00005 #include "models/hockney.h"
00006 #else
00007 #include "hockney.h"
00008 #endif
00009
00016 #ifdef __cplusplus
00017 extern "C" {
00018 #endif
00019
00025 int Hockney_initialize(MPI_Comm comm, Hockney_model* model);
00026
00028 int Hockney_finalize(MPI_Comm comm);
00029
00031 int Hockney_Scatterv_sorted_flat_asc(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00032 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00033 int root, MPI_Comm comm);
00034
00036 int Hockney_Gatherv_sorted_flat_asc(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00037 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00038 int root, MPI_Comm comm);
00039
00041 int Hockney_Scatterv_sorted_flat_dsc(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00042 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00043 int root, MPI_Comm comm);
00044
00046 int Hockney_Gatherv_sorted_flat_dsc(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00047 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00048 int root, MPI_Comm comm);
00049
00051 int Hockney_Bcast_dfs_binomial_min(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00052
00054 int Hockney_Reduce_dfs_binomial_min(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00055 MPI_Op op, int root, MPI_Comm comm);
00056
00058 int Hockney_Bcast_dfs_binomial_max(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00059
00061 int Hockney_Reduce_bfs_binomial_min(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00062 MPI_Op op, int root, MPI_Comm comm);
00063
00065 int Hockney_Reduce_bfs_binomial_max(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00066 MPI_Op op, int root, MPI_Comm comm);
00067
00069 int Hockney_Bcast_bfs_binomial_min(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00070
00072 int Hockney_Bcast_bfs_binomial_max(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00073
00075 int Hockney_Reduce_dfs_binomial_max(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00076 MPI_Op op, int root, MPI_Comm comm);
00077
00079 int Hockney_Bcast_ucs_binomial_min(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00080
00082 int Hockney_Reduce_ucs_binomial_min(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00083 MPI_Op op, int root, MPI_Comm comm);
00084
00086 int Hockney_Bcast_ucs_binomial_max(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00087
00089 int Hockney_Reduce_ucs_binomial_max(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00090 MPI_Op op, int root, MPI_Comm comm);
00091
00093 int Hockney_Scatter_dfs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00094 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00095 int root, MPI_Comm comm);
00096
00098 int Hockney_Gather_dfs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00099 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00100 int root, MPI_Comm comm);
00101
00103 int Hockney_Scatter_dfs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00104 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00105 int root, MPI_Comm comm);
00106
00108 int Hockney_Gather_dfs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00109 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00110 int root, MPI_Comm comm);
00111
00113 int Hockney_Scatter_ucs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00114 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00115 int root, MPI_Comm comm);
00116
00118 int Hockney_Gather_ucs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00119 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00120 int root, MPI_Comm comm);
00121
00123 int Hockney_Scatter_ucs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00124 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00125 int root, MPI_Comm comm);
00126
00128 int Hockney_Gather_ucs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00129 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00130 int root, MPI_Comm comm);
00131
00133 int Hockney_Scatter_bfs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00134 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00135 int root, MPI_Comm comm);
00136
00138 int Hockney_Gather_bfs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00139 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00140 int root, MPI_Comm comm);
00141
00143 int Hockney_Scatter_bfs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00144 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00145 int root, MPI_Comm comm);
00146
00148 int Hockney_Gather_bfs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00149 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00150 int root, MPI_Comm comm);
00151
00153 int Hockney_Scatterv_dfs_binomial_min(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00154 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00155 int root, MPI_Comm comm);
00156
00158 int Hockney_Gatherv_dfs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00159 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00160 int root, MPI_Comm comm);
00161
00163 int Hockney_Scatterv_dfs_binomial_max(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00164 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00165 int root, MPI_Comm comm);
00166
00168 int Hockney_Gatherv_dfs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00169 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00170 int root, MPI_Comm comm);
00171
00173 int Hockney_Scatterv_bfs_binomial_min(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00174 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00175 int root, MPI_Comm comm);
00176
00178 int Hockney_Gatherv_bfs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00179 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00180 int root, MPI_Comm comm);
00181
00183 int Hockney_Scatterv_bfs_binomial_max(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00184 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00185 int root, MPI_Comm comm);
00186
00188 int Hockney_Gatherv_bfs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00189 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00190 int root, MPI_Comm comm);
00191
00193 int Hockney_Scatterv_ucs_binomial_min(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00194 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00195 int root, MPI_Comm comm);
00196
00198 int Hockney_Gatherv_ucs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00199 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00200 int root, MPI_Comm comm);
00201
00203 int Hockney_Scatterv_ucs_binomial_max(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00204 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00205 int root, MPI_Comm comm);
00206
00208 int Hockney_Gatherv_ucs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00209 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00210 int root, MPI_Comm comm);
00211
00213 int Hockney_Scatterv_Traff(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00214 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00215 int root, MPI_Comm comm);
00216
00218 int Hockney_Gatherv_Traff(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00219 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00220 int root, MPI_Comm comm);
00221
00222 #ifdef __cplusplus
00223 }
00224 #endif
00225
00229 #endif