00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef MPI_H_INCLUDED
00014 #define MPI_H_INCLUDED
00015
00016 #if defined(__cplusplus)
00017 extern "C" {
00018 #endif
00019
00020 #define MPI_VERSION 1
00021 #define MPI_SUBVERSION 2
00022
00023 #define MPI_BOTTOM ((MPI_Aint)0)
00024
00025 typedef long MPI_Aint;
00026 typedef unsigned int MPI_Request;
00027 typedef unsigned int MPI_Group;
00028 typedef unsigned int MPI_Comm;
00029 typedef unsigned int MPI_Errhandler;
00030 typedef unsigned int MPI_Op;
00031 typedef unsigned int MPI_Datatype;
00032
00033 typedef struct {
00034 int MPI_SOURCE;
00035 int MPI_TAG;
00036 int MPI_ERROR;
00037 int size;
00038 int reserved[2];
00039 } MPI_Status;
00040
00041 enum {
00042 MPI_COMM_NULL = 0,
00043 MPI_COMM_WORLD = 1,
00044 MPI_COMM_SELF = 2
00045 };
00046
00047 enum {
00048 MPI_ERRHANDLER_NULL = 0,
00049 MPI_ERRORS_ARE_FATAL = 1,
00050 MPI_ERRORS_RETURN = 2
00051 };
00052
00053 enum {
00054 MPI_GROUP_NULL = 0,
00055 MPI_GROUP_EMPTY = 1
00056 };
00057
00058 enum {
00059 MPI_REQUEST_NULL = 0
00060 };
00061
00062 enum {
00063 MPI_OP_NULL = 0,
00064 MPI_MAX = 1,
00065 MPI_MIN = 2,
00066 MPI_SUM = 3,
00067 MPI_PROD = 4,
00068 MPI_LAND = 5,
00069 MPI_BAND = 6,
00070 MPI_LOR = 7,
00071 MPI_BOR = 8,
00072 MPI_LXOR = 9,
00073 MPI_BXOR = 10,
00074 MPI_MAXLOC = 11,
00075 MPI_MINLOC = 12
00076 };
00077
00078 enum {
00079 MPI_DATATYPE_NULL = 0,
00080
00081 MPI_CHAR = 1,
00082 MPI_SHORT = 2,
00083 MPI_INT = 3,
00084 MPI_LONG = 4,
00085 MPI_UNSIGNED_CHAR = 5,
00086 MPI_UNSIGNED_SHORT = 6,
00087 MPI_UNSIGNED = 7,
00088 MPI_UNSIGNED_LONG = 8,
00089 MPI_FLOAT = 9,
00090 MPI_DOUBLE = 10,
00091 MPI_LONG_DOUBLE = 11,
00092 MPI_LONG_LONG = 12,
00093
00094 MPI_INTEGER = 13,
00095 MPI_REAL = 14,
00096 MPI_DOUBLE_PRECISION = 15,
00097 MPI_COMPLEX = 16,
00098 MPI_DOUBLE_COMPLEX = 17,
00099 MPI_LOGICAL = 18,
00100 MPI_CHARACTER = 19,
00101 MPI_INTEGER1 = 20,
00102 MPI_INTEGER2 = 21,
00103 MPI_INTEGER4 = 22,
00104 MPI_INTEGER8 = 23,
00105 MPI_REAL4 = 24,
00106 MPI_REAL8 = 25,
00107 MPI_REAL16 = 26,
00108
00109 MPI_BYTE = 27,
00110 MPI_PACKED = 28,
00111 MPI_UB = 29,
00112 MPI_LB = 30,
00113
00114 MPI_FLOAT_INT = 31,
00115 MPI_DOUBLE_INT = 32,
00116 MPI_LONG_INT = 33,
00117 MPI_2INT = 34,
00118 MPI_SHORT_INT = 35,
00119 MPI_LONG_DOUBLE_INT = 36,
00120
00121 MPI_2REAL = 37,
00122 MPI_2DOUBLE_PRECISION = 38,
00123 MPI_2INTEGER = 39
00124 };
00125
00126 #define MPI_LONG_LONG_INT MPI_LONG_LONG
00127
00128 enum {
00129 MPI_SUCCESS = 0,
00130 MPI_ERR_BUFFER = 1,
00131 MPI_ERR_COUNT = 2,
00132 MPI_ERR_TYPE = 3,
00133 MPI_ERR_TAG = 4,
00134 MPI_ERR_COMM = 5,
00135 MPI_ERR_RANK = 6,
00136 MPI_ERR_REQUEST = 7,
00137 MPI_ERR_ROOT = 8,
00138 MPI_ERR_GROUP = 9,
00139 MPI_ERR_OP = 10,
00140 MPI_ERR_TOPOLOGY = 11,
00141 MPI_ERR_DIMS = 12,
00142 MPI_ERR_ARG = 13,
00143 MPI_ERR_UNKNOWN = 14,
00144 MPI_ERR_TRUNCATE = 15,
00145 MPI_ERR_OTHER = 16,
00146 MPI_ERR_INTERN = 17,
00147 MPI_ERR_IN_STATUS = 18,
00148 MPI_ERR_PENDING = 19,
00149 MPI_ERR_LASTCODE = 31
00150 };
00151
00152 enum {
00153 MPI_KEYVAL_INVALID = 0,
00154 MPI_TAG_UB = 1,
00155 MPI_HOST = 2,
00156 MPI_IO = 3,
00157 MPI_WTIME_IS_GLOBAL = 4
00158 };
00159
00160 enum {
00161 MPI_IDENT = 0,
00162 MPI_CONGRUENT = 1,
00163 MPI_SIMILAR = 2,
00164 MPI_UNEQUAL = 3
00165 };
00166
00167 enum {
00168 MPI_GRAPH = 1,
00169 MPI_CART = 2
00170 };
00171
00172 enum {
00173 MPI_UNDEFINED = -3,
00174 MPI_ANY_SOURCE = -2,
00175 MPI_PROC_NULL = -1
00176 };
00177
00178 enum {
00179 MPI_ANY_TAG = -1
00180 };
00181
00182 enum {
00183 MPI_BSEND_OVERHEAD = 32
00184 };
00185
00186 enum {
00187 MPI_MAX_PROCESSOR_NAME = 256
00188 };
00189
00190 enum {
00191 MPI_MAX_ERROR_STRING = 256
00192 };
00193
00194 typedef int MPI_Copy_function(MPI_Comm, int, void *, void *, void *, int *);
00195 typedef int MPI_Delete_function(MPI_Comm, int, void *, void *);
00196 typedef void MPI_Handler_function(MPI_Comm *, int *, ...);
00197 typedef void MPI_User_function(void *, void *, int *, MPI_Datatype *);
00198
00199 MPI_Copy_function MPI_NULL_COPY_FN, MPI_DUP_FN;
00200 MPI_Delete_function MPI_NULL_DELETE_FN;
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210 int MPI_Send(void *, int, MPI_Datatype, int, int, MPI_Comm);
00211 int PMPI_Send(void *, int, MPI_Datatype, int, int, MPI_Comm);
00212
00213 int MPI_Recv(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status *);
00214 int PMPI_Recv(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status *);
00215
00216 int MPI_Get_count(MPI_Status *, MPI_Datatype, int *);
00217 int PMPI_Get_count(MPI_Status *, MPI_Datatype, int *);
00218
00219
00220
00221 int MPI_Bsend(void *, int, MPI_Datatype, int, int, MPI_Comm);
00222 int PMPI_Bsend(void *, int, MPI_Datatype, int, int, MPI_Comm);
00223
00224 int MPI_Ssend(void *, int, MPI_Datatype, int, int, MPI_Comm);
00225 int PMPI_Ssend(void *, int, MPI_Datatype, int, int, MPI_Comm);
00226
00227 int MPI_Rsend(void *, int, MPI_Datatype, int, int, MPI_Comm);
00228 int PMPI_Rsend(void *, int, MPI_Datatype, int, int, MPI_Comm);
00229
00230
00231
00232 int MPI_Buffer_attach(void *, int);
00233 int PMPI_Buffer_attach(void *, int);
00234
00235 int MPI_Buffer_detach(void *, int *);
00236 int PMPI_Buffer_detach(void *, int *);
00237
00238
00239
00240 int MPI_Isend(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00241 int PMPI_Isend(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00242
00243 int MPI_Ibsend(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00244 int PMPI_Ibsend(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00245
00246 int MPI_Issend(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00247 int PMPI_Issend(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00248
00249 int MPI_Irsend(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00250 int PMPI_Irsend(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00251
00252 int MPI_Irecv(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00253 int PMPI_Irecv(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00254
00255 int MPI_Wait(MPI_Request *, MPI_Status *);
00256 int PMPI_Wait(MPI_Request *, MPI_Status *);
00257
00258 int MPI_Test(MPI_Request *, int *, MPI_Status *);
00259 int PMPI_Test(MPI_Request *, int *, MPI_Status *);
00260
00261 int MPI_Request_free(MPI_Request *);
00262 int PMPI_Request_free(MPI_Request *);
00263
00264 int MPI_Waitany(int, MPI_Request *, int *, MPI_Status *);
00265 int PMPI_Waitany(int, MPI_Request *, int *, MPI_Status *);
00266
00267 int MPI_Testany(int, MPI_Request *, int *, int *, MPI_Status *);
00268 int PMPI_Testany(int, MPI_Request *, int *, int *, MPI_Status *);
00269
00270 int MPI_Waitall(int, MPI_Request *, MPI_Status *);
00271 int PMPI_Waitall(int, MPI_Request *, MPI_Status *);
00272
00273 int MPI_Testall(int, MPI_Request *, int *, MPI_Status *);
00274 int PMPI_Testall(int, MPI_Request *, int *, MPI_Status *);
00275
00276 int MPI_Waitsome(int, MPI_Request *, int *, int *, MPI_Status *);
00277 int PMPI_Waitsome(int, MPI_Request *, int *, int *, MPI_Status *);
00278
00279 int MPI_Testsome(int, MPI_Request *, int *, int *, MPI_Status *);
00280 int PMPI_Testsome(int, MPI_Request *, int *, int *, MPI_Status *);
00281
00282
00283
00284 int MPI_Iprobe(int, int, MPI_Comm, int *, MPI_Status *);
00285 int PMPI_Iprobe(int, int, MPI_Comm, int *, MPI_Status *);
00286
00287 int MPI_Probe(int, int, MPI_Comm, MPI_Status *);
00288 int PMPI_Probe(int, int, MPI_Comm, MPI_Status *);
00289
00290 int MPI_Cancel(MPI_Request *);
00291 int PMPI_Cancel(MPI_Request *);
00292
00293 int MPI_Test_cancelled(MPI_Status *, int *);
00294 int PMPI_Test_cancelled(MPI_Status *, int *);
00295
00296
00297
00298 int MPI_Send_init(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00299 int PMPI_Send_init(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00300
00301 int MPI_Bsend_init(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00302 int PMPI_Bsend_init(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00303
00304 int MPI_Ssend_init(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00305 int PMPI_Ssend_init(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00306
00307 int MPI_Rsend_init(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00308 int PMPI_Rsend_init(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00309
00310 int MPI_Recv_init(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00311 int PMPI_Recv_init(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00312
00313 int MPI_Start(MPI_Request *);
00314 int PMPI_Start(MPI_Request *);
00315
00316 int MPI_Startall(int, MPI_Request *);
00317 int PMPI_Startall(int, MPI_Request *);
00318
00319
00320
00321 int MPI_Sendrecv(void *, int, MPI_Datatype, int, int, void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status *);
00322 int PMPI_Sendrecv(void *, int, MPI_Datatype, int, int, void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status *);
00323
00324 int MPI_Sendrecv_replace(void *, int, MPI_Datatype, int, int, int, int, MPI_Comm, MPI_Status *);
00325 int PMPI_Sendrecv_replace(void *, int, MPI_Datatype, int, int, int, int, MPI_Comm, MPI_Status *);
00326
00327
00328
00329 int MPI_Type_contiguous(int, MPI_Datatype, MPI_Datatype *);
00330 int PMPI_Type_contiguous(int, MPI_Datatype, MPI_Datatype *);
00331
00332 int MPI_Type_vector(int, int, int, MPI_Datatype, MPI_Datatype *);
00333 int PMPI_Type_vector(int, int, int, MPI_Datatype, MPI_Datatype *);
00334
00335 int MPI_Type_hvector(int, int, MPI_Aint, MPI_Datatype, MPI_Datatype *);
00336 int PMPI_Type_hvector(int, int, MPI_Aint, MPI_Datatype, MPI_Datatype *);
00337
00338 int MPI_Type_indexed(int, int *, int *, MPI_Datatype, MPI_Datatype *);
00339 int PMPI_Type_indexed(int, int *, int *, MPI_Datatype, MPI_Datatype *);
00340
00341 int MPI_Type_hindexed(int, int *, MPI_Aint *, MPI_Datatype, MPI_Datatype *);
00342 int PMPI_Type_hindexed(int, int *, MPI_Aint *, MPI_Datatype, MPI_Datatype *);
00343
00344 int MPI_Type_struct(int, int *, MPI_Aint *, MPI_Datatype *, MPI_Datatype *);
00345 int PMPI_Type_struct(int, int *, MPI_Aint *, MPI_Datatype *, MPI_Datatype *);
00346
00347 int MPI_Address(void *, MPI_Aint *);
00348 int PMPI_Address(void *, MPI_Aint *);
00349
00350 int MPI_Type_extent(MPI_Datatype, MPI_Aint *);
00351 int PMPI_Type_extent(MPI_Datatype, MPI_Aint *);
00352
00353 int MPI_Type_size(MPI_Datatype, int *);
00354 int PMPI_Type_size(MPI_Datatype, int *);
00355
00356 int MPI_Type_lb(MPI_Datatype, MPI_Aint *);
00357 int PMPI_Type_lb(MPI_Datatype, MPI_Aint *);
00358
00359 int MPI_Type_ub(MPI_Datatype, MPI_Aint *);
00360 int PMPI_Type_ub(MPI_Datatype, MPI_Aint *);
00361
00362 int MPI_Type_commit(MPI_Datatype *);
00363 int PMPI_Type_commit(MPI_Datatype *);
00364
00365 int MPI_Type_free(MPI_Datatype *);
00366 int PMPI_Type_free(MPI_Datatype *);
00367
00368 int MPI_Get_elements(MPI_Status *, MPI_Datatype, int *);
00369 int PMPI_Get_elements(MPI_Status *, MPI_Datatype, int *);
00370
00371
00372
00373 int MPI_Pack(void *, int, MPI_Datatype, void *, int, int *, MPI_Comm);
00374 int PMPI_Pack(void *, int, MPI_Datatype, void *, int, int *, MPI_Comm);
00375
00376 int MPI_Unpack(void *, int, int *, void *, int, MPI_Datatype, MPI_Comm);
00377 int PMPI_Unpack(void *, int, int *, void *, int, MPI_Datatype, MPI_Comm);
00378
00379 int MPI_Pack_size(int, MPI_Datatype, MPI_Comm, int *);
00380 int PMPI_Pack_size(int, MPI_Datatype, MPI_Comm, int *);
00381
00382
00383
00384 int MPI_Barrier(MPI_Comm);
00385 int PMPI_Barrier(MPI_Comm);
00386
00387
00388
00389 int MPI_Bcast(void *, int, MPI_Datatype, int, MPI_Comm);
00390 int PMPI_Bcast(void *, int, MPI_Datatype, int, MPI_Comm);
00391
00392
00393
00394 int MPI_Gather(void *, int, MPI_Datatype, void *, int, MPI_Datatype, int, MPI_Comm);
00395 int PMPI_Gather(void *, int, MPI_Datatype, void *, int, MPI_Datatype, int, MPI_Comm);
00396
00397 int MPI_Gatherv(void *, int, MPI_Datatype, void *, int *, int *, MPI_Datatype, int, MPI_Comm);
00398 int PMPI_Gatherv(void *, int, MPI_Datatype, void *, int *, int *, MPI_Datatype, int, MPI_Comm);
00399
00400
00401
00402 int MPI_Scatter(void *, int, MPI_Datatype, void *, int, MPI_Datatype, int, MPI_Comm);
00403 int PMPI_Scatter(void *, int, MPI_Datatype, void *, int, MPI_Datatype, int, MPI_Comm);
00404
00405 int MPI_Scatterv(void *, int *, int *, MPI_Datatype, void *, int, MPI_Datatype, int, MPI_Comm);
00406 int PMPI_Scatterv(void *, int *, int *, MPI_Datatype, void *, int, MPI_Datatype, int, MPI_Comm);
00407
00408
00409
00410 int MPI_Allgather(void *, int, MPI_Datatype, void *, int, MPI_Datatype, MPI_Comm);
00411 int PMPI_Allgather(void *, int, MPI_Datatype, void *, int, MPI_Datatype, MPI_Comm);
00412
00413 int MPI_Allgatherv(void *, int, MPI_Datatype, void *, int *, int *, MPI_Datatype, MPI_Comm);
00414 int PMPI_Allgatherv(void *, int, MPI_Datatype, void *, int *, int *, MPI_Datatype, MPI_Comm);
00415
00416
00417
00418 int MPI_Alltoall(void *, int, MPI_Datatype, void *, int, MPI_Datatype, MPI_Comm);
00419 int PMPI_Alltoall(void *, int, MPI_Datatype, void *, int, MPI_Datatype, MPI_Comm);
00420
00421 int MPI_Alltoallv(void *, int *, int *, MPI_Datatype, void *, int *, int *, MPI_Datatype, MPI_Comm);
00422 int PMPI_Alltoallv(void *, int *, int *, MPI_Datatype, void *, int *, int *, MPI_Datatype, MPI_Comm);
00423
00424
00425
00426 int MPI_Reduce(void *, void *, int, MPI_Datatype, MPI_Op, int, MPI_Comm);
00427 int PMPI_Reduce(void *, void *, int, MPI_Datatype, MPI_Op, int, MPI_Comm);
00428
00429 int MPI_Op_create(MPI_User_function *, int, MPI_Op *);
00430 int PMPI_Op_create(MPI_User_function *, int, MPI_Op *);
00431
00432 int MPI_Op_free(MPI_Op *);
00433 int PMPI_Op_free(MPI_Op *);
00434
00435 int MPI_Allreduce(void *, void *, int, MPI_Datatype, MPI_Op, MPI_Comm);
00436 int PMPI_Allreduce(void *, void *, int, MPI_Datatype, MPI_Op, MPI_Comm);
00437
00438
00439
00440 int MPI_Reduce_scatter(void *, void *, int *, MPI_Datatype, MPI_Op, MPI_Comm);
00441 int PMPI_Reduce_scatter(void *, void *, int *, MPI_Datatype, MPI_Op, MPI_Comm);
00442
00443
00444
00445 int MPI_Scan(void *, void *, int, MPI_Datatype, MPI_Op, MPI_Comm);
00446 int PMPI_Scan(void *, void *, int, MPI_Datatype, MPI_Op, MPI_Comm);
00447
00448
00449
00450 int MPI_Group_size(MPI_Group, int *);
00451 int PMPI_Group_size(MPI_Group, int *);
00452
00453 int MPI_Group_rank(MPI_Group, int *);
00454 int PMPI_Group_rank(MPI_Group, int *);
00455
00456 int MPI_Group_translate_ranks(MPI_Group, int, int *, MPI_Group, int *);
00457 int PMPI_Group_translate_ranks(MPI_Group, int, int *, MPI_Group, int *);
00458
00459 int MPI_Group_compare(MPI_Group, MPI_Group, int *);
00460 int PMPI_Group_compare(MPI_Group, MPI_Group, int *);
00461
00462 int MPI_Comm_group(MPI_Comm, MPI_Group *);
00463 int PMPI_Comm_group(MPI_Comm, MPI_Group *);
00464
00465 int MPI_Group_union(MPI_Group, MPI_Group, MPI_Group *);
00466 int PMPI_Group_union(MPI_Group, MPI_Group, MPI_Group *);
00467
00468 int MPI_Group_intersection(MPI_Group, MPI_Group, MPI_Group *);
00469 int PMPI_Group_intersection(MPI_Group, MPI_Group, MPI_Group *);
00470
00471 int MPI_Group_difference(MPI_Group, MPI_Group, MPI_Group *);
00472 int PMPI_Group_difference(MPI_Group, MPI_Group, MPI_Group *);
00473
00474 int MPI_Group_incl(MPI_Group, int, int *, MPI_Group *);
00475 int PMPI_Group_incl(MPI_Group, int, int *, MPI_Group *);
00476
00477 int MPI_Group_excl(MPI_Group, int, int *, MPI_Group *);
00478 int PMPI_Group_excl(MPI_Group, int, int *, MPI_Group *);
00479
00480 int MPI_Group_range_incl(MPI_Group, int, int [][3], MPI_Group *);
00481 int PMPI_Group_range_incl(MPI_Group, int, int [][3], MPI_Group *);
00482
00483 int MPI_Group_range_excl(MPI_Group, int, int [][3], MPI_Group *);
00484 int PMPI_Group_range_excl(MPI_Group, int, int [][3], MPI_Group *);
00485
00486 int MPI_Group_free(MPI_Group *);
00487 int PMPI_Group_free(MPI_Group *);
00488
00489
00490
00491 int MPI_Comm_size(MPI_Comm, int *);
00492 int PMPI_Comm_size(MPI_Comm, int *);
00493
00494 int MPI_Comm_rank(MPI_Comm, int *);
00495 int PMPI_Comm_rank(MPI_Comm, int *);
00496
00497 int MPI_Comm_compare(MPI_Comm, MPI_Comm, int *);
00498 int PMPI_Comm_compare(MPI_Comm, MPI_Comm, int *);
00499
00500 int MPI_Comm_dup(MPI_Comm, MPI_Comm *);
00501 int PMPI_Comm_dup(MPI_Comm, MPI_Comm *);
00502
00503 int MPI_Comm_create(MPI_Comm, MPI_Group, MPI_Comm *);
00504 int PMPI_Comm_create(MPI_Comm, MPI_Group, MPI_Comm *);
00505
00506 int MPI_Comm_split(MPI_Comm, int, int, MPI_Comm *);
00507 int PMPI_Comm_split(MPI_Comm, int, int, MPI_Comm *);
00508
00509 int MPI_Comm_free(MPI_Comm *);
00510 int PMPI_Comm_free(MPI_Comm *);
00511
00512
00513
00514 int MPI_Comm_test_inter(MPI_Comm, int *);
00515 int PMPI_Comm_test_inter(MPI_Comm, int *);
00516
00517 int MPI_Comm_remote_size(MPI_Comm, int *);
00518 int PMPI_Comm_remote_size(MPI_Comm, int *);
00519
00520 int MPI_Comm_remote_group(MPI_Comm, MPI_Group *);
00521 int PMPI_Comm_remote_group(MPI_Comm, MPI_Group *);
00522
00523 int MPI_Intercomm_create(MPI_Comm, int, MPI_Comm, int, int, MPI_Comm *);
00524 int PMPI_Intercomm_create(MPI_Comm, int, MPI_Comm, int, int, MPI_Comm *);
00525
00526 int MPI_Intercomm_merge(MPI_Comm, int, MPI_Comm *);
00527 int PMPI_Intercomm_merge(MPI_Comm, int, MPI_Comm *);
00528
00529
00530
00531 int MPI_Keyval_create(MPI_Copy_function *, MPI_Delete_function *, int *, void *);
00532 int PMPI_Keyval_create(MPI_Copy_function *, MPI_Delete_function *, int *, void *);
00533
00534 int MPI_Keyval_free(int *);
00535 int PMPI_Keyval_free(int *);
00536
00537 int MPI_Attr_put(MPI_Comm, int, void *);
00538 int PMPI_Attr_put(MPI_Comm, int, void *);
00539
00540 int MPI_Attr_get(MPI_Comm, int, void *, int *);
00541 int PMPI_Attr_get(MPI_Comm, int, void *, int *);
00542
00543 int MPI_Attr_delete(MPI_Comm, int);
00544 int PMPI_Attr_delete(MPI_Comm, int);
00545
00546
00547
00548 int MPI_Cart_create(MPI_Comm, int, int *, int *, int, MPI_Comm *);
00549 int PMPI_Cart_create(MPI_Comm, int, int *, int *, int, MPI_Comm *);
00550
00551 int MPI_Dims_create(int, int, int *);
00552 int PMPI_Dims_create(int, int, int *);
00553
00554 int MPI_Graph_create(MPI_Comm, int, int *, int *, int, MPI_Comm *);
00555 int PMPI_Graph_create(MPI_Comm, int, int *, int *, int, MPI_Comm *);
00556
00557 int MPI_Topo_test(MPI_Comm, int *);
00558 int PMPI_Topo_test(MPI_Comm, int *);
00559
00560 int MPI_Graphdims_get(MPI_Comm, int *, int *);
00561 int PMPI_Graphdims_get(MPI_Comm, int *, int *);
00562
00563 int MPI_Graph_get(MPI_Comm, int, int, int *, int *);
00564 int PMPI_Graph_get(MPI_Comm, int, int, int *, int *);
00565
00566 int MPI_Cartdim_get(MPI_Comm, int *);
00567 int PMPI_Cartdim_get(MPI_Comm, int *);
00568
00569 int MPI_Cart_get(MPI_Comm, int, int *, int *, int *);
00570 int PMPI_Cart_get(MPI_Comm, int, int *, int *, int *);
00571
00572 int MPI_Cart_rank(MPI_Comm, int *, int *);
00573 int PMPI_Cart_rank(MPI_Comm, int *, int *);
00574
00575 int MPI_Cart_coords(MPI_Comm, int, int, int *);
00576 int PMPI_Cart_coords(MPI_Comm, int, int, int *);
00577
00578 int MPI_Graph_neighbors_count(MPI_Comm, int, int *);
00579 int PMPI_Graph_neighbors_count(MPI_Comm, int, int *);
00580
00581 int MPI_Graph_neighbors(MPI_Comm, int, int, int *);
00582 int PMPI_Graph_neighbors(MPI_Comm, int, int, int *);
00583
00584 int MPI_Cart_shift(MPI_Comm, int, int, int *, int *);
00585 int PMPI_Cart_shift(MPI_Comm, int, int, int *, int *);
00586
00587 int MPI_Cart_sub(MPI_Comm, int *, MPI_Comm *);
00588 int PMPI_Cart_sub(MPI_Comm, int *, MPI_Comm *);
00589
00590 int MPI_Cart_map(MPI_Comm, int, int *, int *, int *);
00591 int PMPI_Cart_map(MPI_Comm, int, int *, int *, int *);
00592
00593 int MPI_Graph_map(MPI_Comm, int, int *, int *, int *);
00594 int PMPI_Graph_map(MPI_Comm, int, int *, int *, int *);
00595
00596
00597
00598 int MPI_Get_processor_name(char *, int *);
00599 int PMPI_Get_processor_name(char *, int *);
00600
00601
00602
00603 int MPI_Errhandler_create(MPI_Handler_function *, MPI_Errhandler *);
00604 int PMPI_Errhandler_create(MPI_Handler_function *, MPI_Errhandler *);
00605
00606 int MPI_Errhandler_set(MPI_Comm, MPI_Errhandler);
00607 int PMPI_Errhandler_set(MPI_Comm, MPI_Errhandler);
00608
00609 int MPI_Errhandler_get(MPI_Comm, MPI_Errhandler *);
00610 int PMPI_Errhandler_get(MPI_Comm, MPI_Errhandler *);
00611
00612 int MPI_Errhandler_free(MPI_Errhandler *);
00613 int PMPI_Errhandler_free(MPI_Errhandler *);
00614
00615 int MPI_Error_string(int, char *, int *);
00616 int PMPI_Error_string(int, char *, int *);
00617
00618
00619
00620 int MPI_Error_class(int, int *);
00621 int PMPI_Error_class(int, int *);
00622
00623
00624
00625 double MPI_Wtime(void);
00626 double PMPI_Wtime(void);
00627
00628 double MPI_Wtick(void);
00629 double PMPI_Wtick(void);
00630
00631
00632
00633 int MPI_Init(int *, char ***);
00634 int PMPI_Init(int *, char ***);
00635
00636 int MPI_Finalize(void);
00637 int PMPI_Finalize(void);
00638
00639 int MPI_Initialized(int *);
00640 int PMPI_Initialized(int *);
00641
00642 int MPI_Abort(MPI_Comm, int);
00643 int PMPI_Abort(MPI_Comm, int);
00644
00645
00646
00647 int MPI_Pcontrol(int, ...);
00648 int PMPI_Pcontrol(int, ...);
00649
00650
00651
00652 int MPI_Get_version(int *, int *);
00653 int PMPI_Get_version(int *, int *);
00654
00655
00656
00657
00658
00659
00660
00661
00662
00663
00664
00665
00666
00667
00668 enum {
00669 MPI_FUNDAMENTAL = -1
00670 };
00671
00672
00673
00674 #define MPI_COMBINER_NAMED (-1)
00675 #define MPI_COMBINER_CONTIGUOUS 0
00676 #define MPI_COMBINER_VECTOR 1
00677 #define MPI_COMBINER_HVECTOR 2
00678 #define MPI_COMBINER_INDEXED 3
00679 #define MPI_COMBINER_HINDEXED 4
00680 #define MPI_COMBINER_STRUCT 5
00681
00682
00683
00684
00685
00686
00687
00688 int MPI_Free_mem(void *);
00689 int PMPI_Free_mem(void *);
00690
00691
00692
00693 int MPI_Type_get_envelope(MPI_Datatype, int *, int *, int *, int *);
00694 int PMPI_Type_get_envelope(MPI_Datatype, int *, int *, int *, int *);
00695
00696 int MPI_Type_get_contents(MPI_Datatype, int, int, int, int *, MPI_Aint *, MPI_Datatype *);
00697 int PMPI_Type_get_contents(MPI_Datatype, int, int, int, int *, MPI_Aint *, MPI_Datatype *);
00698
00699
00700
00701 int MPI_Type_dup(MPI_Datatype, MPI_Datatype *);
00702 int PMPI_Type_dup(MPI_Datatype, MPI_Datatype *);
00703
00704
00705
00706 int MPI_Finalized(int *);
00707 int PMPI_Finalized(int *);
00708
00709 #if defined(__cplusplus)
00710 }
00711 #endif
00712
00713 #endif