00001 #ifndef LININTERP_COLLECTIVES_H_
00002 #define LININTERP_COLLECTIVES_H_
00003
00004 #ifdef HAVE_CONFIG_H
00005 #include "models/lininterp.h"
00006 #else
00007 #include "lininterp.h"
00008 #endif
00009
00016 #ifdef __cplusplus
00017 extern "C" {
00018 #endif
00019
00026 int LinInterp_initialize(MPI_Comm comm, LinInterp_model* model);
00027
00032 int LinInterp_finalize(MPI_Comm comm);
00033
00035 int LinInterp_Scatterv_sorted_flat_asc(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00036 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00037 int root, MPI_Comm comm);
00038
00040 int LinInterp_Gatherv_sorted_flat_asc(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00041 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00042 int root, MPI_Comm comm);
00043
00045 int LinInterp_Scatterv_sorted_flat_dsc(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00046 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00047 int root, MPI_Comm comm);
00048
00050 int LinInterp_Gatherv_sorted_flat_dsc(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00051 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00052 int root, MPI_Comm comm);
00053
00055 int LinInterp_Bcast_dfs_binomial_min(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00056
00058 int LinInterp_Reduce_dfs_binomial_min(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00059 MPI_Op op, int root, MPI_Comm comm);
00060
00062 int LinInterp_Bcast_dfs_binomial_max(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00063
00065 int LinInterp_Reduce_bfs_binomial_min(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00066 MPI_Op op, int root, MPI_Comm comm);
00067
00069 int LinInterp_Reduce_bfs_binomial_max(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00070 MPI_Op op, int root, MPI_Comm comm);
00071
00073 int LinInterp_Bcast_bfs_binomial_min(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00074
00076 int LinInterp_Bcast_bfs_binomial_max(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00077
00079 int LinInterp_Reduce_dfs_binomial_max(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00080 MPI_Op op, int root, MPI_Comm comm);
00081
00083 int LinInterp_Bcast_ucs_binomial_min(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00084
00086 int LinInterp_Reduce_ucs_binomial_min(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00087 MPI_Op op, int root, MPI_Comm comm);
00088
00090 int LinInterp_Bcast_ucs_binomial_max(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
00091
00093 int LinInterp_Reduce_ucs_binomial_max(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype,
00094 MPI_Op op, int root, MPI_Comm comm);
00095
00097 int LinInterp_Scatter_dfs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00098 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00099 int root, MPI_Comm comm);
00100
00102 int LinInterp_Gather_dfs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00103 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00104 int root, MPI_Comm comm);
00105
00107 int LinInterp_Scatter_dfs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00108 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00109 int root, MPI_Comm comm);
00110
00112 int LinInterp_Gather_dfs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00113 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00114 int root, MPI_Comm comm);
00115
00117 int LinInterp_Scatter_ucs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00118 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00119 int root, MPI_Comm comm);
00120
00122 int LinInterp_Gather_ucs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00123 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00124 int root, MPI_Comm comm);
00125
00127 int LinInterp_Scatter_ucs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00128 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00129 int root, MPI_Comm comm);
00130
00132 int LinInterp_Gather_ucs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00133 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00134 int root, MPI_Comm comm);
00135
00137 int LinInterp_Scatter_bfs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00138 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00139 int root, MPI_Comm comm);
00140
00142 int LinInterp_Gather_bfs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00143 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00144 int root, MPI_Comm comm);
00145
00147 int LinInterp_Scatter_bfs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00148 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00149 int root, MPI_Comm comm);
00150
00152 int LinInterp_Gather_bfs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00153 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00154 int root, MPI_Comm comm);
00155
00157 int LinInterp_Scatterv_dfs_binomial_min(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00158 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00159 int root, MPI_Comm comm);
00160
00162 int LinInterp_Gatherv_dfs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00163 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00164 int root, MPI_Comm comm);
00165
00167 int LinInterp_Scatterv_dfs_binomial_max(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00168 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00169 int root, MPI_Comm comm);
00170
00172 int LinInterp_Gatherv_dfs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00173 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00174 int root, MPI_Comm comm);
00175
00177 int LinInterp_Scatterv_bfs_binomial_min(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00178 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00179 int root, MPI_Comm comm);
00180
00182 int LinInterp_Gatherv_bfs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00183 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00184 int root, MPI_Comm comm);
00185
00187 int LinInterp_Scatterv_bfs_binomial_max(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00188 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00189 int root, MPI_Comm comm);
00190
00192 int LinInterp_Gatherv_bfs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00193 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00194 int root, MPI_Comm comm);
00195
00197 int LinInterp_Scatterv_ucs_binomial_min(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00198 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00199 int root, MPI_Comm comm);
00200
00202 int LinInterp_Gatherv_ucs_binomial_min(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00203 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00204 int root, MPI_Comm comm);
00205
00207 int LinInterp_Scatterv_ucs_binomial_max(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00208 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00209 int root, MPI_Comm comm);
00210
00212 int LinInterp_Gatherv_ucs_binomial_max(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00213 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00214 int root, MPI_Comm comm);
00215
00217 int LinInterp_Scatterv_Traff(void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00218 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00219 int root, MPI_Comm comm);
00220
00222 int LinInterp_Gatherv_Traff(void* sendbuf, int sendcount, MPI_Datatype sendtype,
00223 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00224 int root, MPI_Comm comm);
00225
00226 #ifdef __cplusplus
00227 }
00228 #endif
00229
00233 #endif