00001
00002
00003
00004
00005
00006
00007 #ifndef MPI_INCLUDED
00008 #define MPI_INCLUDED
00009
00010
00011
00012
00013 #if defined(__cplusplus)
00014 extern "C" {
00015 #endif
00016
00017
00018 #define MPI_IDENT 0
00019 #define MPI_CONGRUENT 1
00020 #define MPI_SIMILAR 2
00021 #define MPI_UNEQUAL 3
00022
00023 typedef int MPI_Datatype;
00024 #define MPI_CHAR ((MPI_Datatype)0x4c000101)
00025 #define MPI_SIGNED_CHAR ((MPI_Datatype)0x4c000118)
00026 #define MPI_UNSIGNED_CHAR ((MPI_Datatype)0x4c000102)
00027 #define MPI_BYTE ((MPI_Datatype)0x4c00010d)
00028 #define MPI_WCHAR ((MPI_Datatype)0x4c00040e)
00029 #define MPI_SHORT ((MPI_Datatype)0x4c000203)
00030 #define MPI_UNSIGNED_SHORT ((MPI_Datatype)0x4c000204)
00031 #define MPI_INT ((MPI_Datatype)0x4c000405)
00032 #define MPI_UNSIGNED ((MPI_Datatype)0x4c000406)
00033 #define MPI_LONG ((MPI_Datatype)0x4c000407)
00034 #define MPI_UNSIGNED_LONG ((MPI_Datatype)0x4c000408)
00035 #define MPI_FLOAT ((MPI_Datatype)0x4c00040a)
00036 #define MPI_DOUBLE ((MPI_Datatype)0x4c00080b)
00037 #define MPI_LONG_DOUBLE ((MPI_Datatype)0x4c00100c)
00038 #define MPI_LONG_LONG_INT ((MPI_Datatype)0x4c000809)
00039 #define MPI_UNSIGNED_LONG_LONG ((MPI_Datatype)0x4c000819)
00040 #define MPI_LONG_LONG MPI_LONG_LONG_INT
00041
00042 #define MPI_PACKED ((MPI_Datatype)0x4c00010f)
00043 #define MPI_LB ((MPI_Datatype)0x4c000010)
00044 #define MPI_UB ((MPI_Datatype)0x4c000011)
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 #define MPI_FLOAT_INT ((MPI_Datatype)0x8c000000)
00055 #define MPI_DOUBLE_INT ((MPI_Datatype)0x8c000001)
00056 #define MPI_LONG_INT ((MPI_Datatype)0x8c000002)
00057 #define MPI_SHORT_INT ((MPI_Datatype)0x8c000003)
00058 #define MPI_2INT ((MPI_Datatype)0x4c000816)
00059 #define MPI_LONG_DOUBLE_INT ((MPI_Datatype)0x8c000004)
00060
00061
00062 #define MPI_COMPLEX ((MPI_Datatype)1275070494)
00063 #define MPI_DOUBLE_COMPLEX ((MPI_Datatype)1275072546)
00064 #define MPI_LOGICAL ((MPI_Datatype)1275069469)
00065 #define MPI_REAL ((MPI_Datatype)1275069468)
00066 #define MPI_DOUBLE_PRECISION ((MPI_Datatype)1275070495)
00067 #define MPI_INTEGER ((MPI_Datatype)1275069467)
00068 #define MPI_2INTEGER ((MPI_Datatype)1275070496)
00069 #define MPI_2COMPLEX ((MPI_Datatype)1275072548)
00070 #define MPI_2DOUBLE_COMPLEX ((MPI_Datatype)1275076645)
00071 #define MPI_2REAL ((MPI_Datatype)1275070497)
00072 #define MPI_2DOUBLE_PRECISION ((MPI_Datatype)1275072547)
00073 #define MPI_CHARACTER ((MPI_Datatype)1275068698)
00074
00075
00076 #define MPI_REAL4 ((MPI_Datatype)0x4c000427)
00077 #define MPI_REAL8 ((MPI_Datatype)0x4c000829)
00078 #define MPI_REAL16 ((MPI_Datatype)0x4c00102b)
00079 #define MPI_COMPLEX8 ((MPI_Datatype)0x4c000828)
00080 #define MPI_COMPLEX16 ((MPI_Datatype)0x4c00102a)
00081 #define MPI_COMPLEX32 ((MPI_Datatype)0x4c00202c)
00082 #define MPI_INTEGER1 ((MPI_Datatype)0x4c00012d)
00083 #define MPI_INTEGER2 ((MPI_Datatype)0x4c00022f)
00084 #define MPI_INTEGER4 ((MPI_Datatype)0x4c000430)
00085 #define MPI_INTEGER8 ((MPI_Datatype)0x4c000831)
00086 #define MPI_INTEGER16 ((MPI_Datatype)MPI_DATATYPE_NULL)
00087
00088
00089 #define MPI_TYPECLASS_REAL 1
00090 #define MPI_TYPECLASS_INTEGER 2
00091 #define MPI_TYPECLASS_COMPLEX 3
00092
00093
00094 typedef int MPI_Comm;
00095 #define MPI_COMM_WORLD ((MPI_Comm)0x44000000)
00096 #define MPI_COMM_SELF ((MPI_Comm)0x44000001)
00097
00098
00099 typedef int MPI_Group;
00100 #define MPI_GROUP_EMPTY ((MPI_Group)0x48000000)
00101
00102
00103 typedef int MPI_Win;
00104 #define MPI_WIN_NULL ((MPI_Win)0x20000000)
00105
00106
00107
00108 #define MPI_FILE_DEFINED
00109
00110
00111 typedef struct ADIOI_FileD *MPI_File;
00112 #define MPI_FILE_NULL ((MPI_File)0)
00113
00114
00115 typedef int MPI_Op;
00116
00117 #define MPI_MAX (MPI_Op)(0x58000001)
00118 #define MPI_MIN (MPI_Op)(0x58000002)
00119 #define MPI_SUM (MPI_Op)(0x58000003)
00120 #define MPI_PROD (MPI_Op)(0x58000004)
00121 #define MPI_LAND (MPI_Op)(0x58000005)
00122 #define MPI_BAND (MPI_Op)(0x58000006)
00123 #define MPI_LOR (MPI_Op)(0x58000007)
00124 #define MPI_BOR (MPI_Op)(0x58000008)
00125 #define MPI_LXOR (MPI_Op)(0x58000009)
00126 #define MPI_BXOR (MPI_Op)(0x5800000a)
00127 #define MPI_MINLOC (MPI_Op)(0x5800000b)
00128 #define MPI_MAXLOC (MPI_Op)(0x5800000c)
00129 #define MPI_REPLACE (MPI_Op)(0x5800000d)
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144 #define MPI_TAG_UB 0x64400001
00145 #define MPI_HOST 0x64400003
00146 #define MPI_IO 0x64400005
00147 #define MPI_WTIME_IS_GLOBAL 0x64400007
00148 #define MPI_UNIVERSE_SIZE 0x64400009
00149 #define MPI_LASTUSEDCODE 0x6440000b
00150 #define MPI_APPNUM 0x6440000d
00151
00152
00153
00154 #define MPI_WIN_BASE 0x66000001
00155 #define MPI_WIN_SIZE 0x66000003
00156 #define MPI_WIN_DISP_UNIT 0x66000005
00157
00158
00159 #define MPI_COMM_NULL ((MPI_Comm)0x04000000)
00160 #define MPI_OP_NULL ((MPI_Op)0x18000000)
00161 #define MPI_GROUP_NULL ((MPI_Group)0x08000000)
00162 #define MPI_DATATYPE_NULL ((MPI_Datatype)0x0c000000)
00163 #define MPI_REQUEST_NULL ((MPI_Request)0x2c000000)
00164 #define MPI_ERRHANDLER_NULL ((MPI_Errhandler)0x14000000)
00165
00166
00167 #define MPI_MAX_PROCESSOR_NAME 128
00168 #define MPI_MAX_ERROR_STRING 512
00169 #define MPI_MAX_NAME_STRING 63
00170 #define MPI_MAX_PORT_NAME 256
00171 #define MPI_MAX_OBJECT_NAME 128
00172
00173
00174 #define MPI_UNDEFINED (-32766)
00175 #define MPI_UNDEFINED_RANK MPI_UNDEFINED
00176 #define MPI_KEYVAL_INVALID 0x24000000
00177
00178
00179 #define MPI_BSEND_OVERHEAD 59
00180
00181
00182 typedef enum MPIR_Topo_type { MPI_GRAPH=1, MPI_CART=2 } MPIR_Topo_type;
00183
00184 #define MPI_BOTTOM (void *)0
00185
00186 #define MPI_PROC_NULL (-1)
00187 #define MPI_ANY_SOURCE (-2)
00188 #define MPI_ROOT (-3)
00189 #define MPI_ANY_TAG (-1)
00190
00191 #define MPI_LOCK_EXCLUSIVE 234
00192 #define MPI_LOCK_SHARED 235
00193
00194
00195 typedef void (MPI_Handler_function) ( MPI_Comm *, int *, ... );
00196 typedef int (MPI_Comm_copy_attr_function)(MPI_Comm, int, void *, void *,
00197 void *, int *);
00198 typedef int (MPI_Comm_delete_attr_function)(MPI_Comm, int, void *, void *);
00199 typedef int (MPI_Type_copy_attr_function)(MPI_Datatype, int, void *, void *,
00200 void *, int *);
00201 typedef int (MPI_Type_delete_attr_function)(MPI_Datatype, int, void *, void *);
00202 typedef int (MPI_Win_copy_attr_function)(MPI_Win, int, void *, void *, void *,
00203 int *);
00204 typedef int (MPI_Win_delete_attr_function)(MPI_Win, int, void *, void *);
00205 typedef void (MPI_Comm_errhandler_fn)(MPI_Comm *, int *, ...);
00206 typedef void (MPI_File_errhandler_fn)(MPI_File *, int *, ...);
00207 typedef void (MPI_Win_errhandler_fn)(MPI_Win *, int *, ...);
00208
00209
00210
00211 #define MPI_ERRORS_ARE_FATAL ((MPI_Errhandler)0x54000000)
00212 #define MPI_ERRORS_RETURN ((MPI_Errhandler)0x54000001)
00213
00214 typedef int MPI_Errhandler;
00215
00216
00217
00218
00219
00220 #define MPI_NULL_COPY_FN ((MPI_Copy_function *)0)
00221 #define MPI_NULL_DELETE_FN ((MPI_Delete_function *)0)
00222 #define MPI_DUP_FN MPIR_Dup_fn
00223
00224 #define MPI_COMM_NULL_COPY_FN ((MPI_Comm_copy_attr_function*)0)
00225 #define MPI_COMM_NULL_DELETE_FN ((MPI_Comm_delete_attr_function*)0)
00226 #define MPI_COMM_DUP_FN ((MPI_Comm_copy_attr_function *)MPI_DUP_FN)
00227 #define MPI_WIN_NULL_COPY_FN ((MPI_Win_copy_attr_function*)0)
00228 #define MPI_WIN_NULL_DELETE_FN ((MPI_Win_delete_attr_function*)0)
00229 #define MPI_WIN_DUP_FN ((MPI_Win_copy_attr_function*)MPI_DUP_FN)
00230 #define MPI_TYPE_NULL_COPY_FN ((MPI_Type_copy_attr_function*)0)
00231 #define MPI_TYPE_NULL_DELETE_FN ((MPI_Type_delete_attr_function*)0)
00232 #define MPI_TYPE_DUP_FN ((MPI_Type_copy_attr_function*)MPI_DUP_FN)
00233
00234
00235 typedef int MPI_Request;
00236
00237
00238 typedef void (MPI_User_function) ( void *, void *, int *, MPI_Datatype * );
00239
00240
00241 typedef int (MPI_Copy_function) ( MPI_Comm, int, void *, void *, void *, int * );
00242 typedef int (MPI_Delete_function) ( MPI_Comm, int, void *, void * );
00243
00244 #define MPI_VERSION 2
00245 #define MPI_SUBVERSION 0
00246 #define MPICH_NAME 2
00247 #define MPICH2 1
00248 #define MPICH_HAS_C2F 1
00249
00250
00251 enum MPI_COMBINER_ENUM {
00252 MPI_COMBINER_NAMED = 1,
00253 MPI_COMBINER_DUP = 2,
00254 MPI_COMBINER_CONTIGUOUS = 3,
00255 MPI_COMBINER_VECTOR = 4,
00256 MPI_COMBINER_HVECTOR_INTEGER = 5,
00257 MPI_COMBINER_HVECTOR = 6,
00258 MPI_COMBINER_INDEXED = 7,
00259 MPI_COMBINER_HINDEXED_INTEGER = 8,
00260 MPI_COMBINER_HINDEXED = 9,
00261 MPI_COMBINER_INDEXED_BLOCK = 10,
00262 MPI_COMBINER_STRUCT_INTEGER = 11,
00263 MPI_COMBINER_STRUCT = 12,
00264 MPI_COMBINER_SUBARRAY = 13,
00265 MPI_COMBINER_DARRAY = 14,
00266 MPI_COMBINER_F90_REAL = 15,
00267 MPI_COMBINER_F90_COMPLEX = 16,
00268 MPI_COMBINER_F90_INTEGER = 17,
00269 MPI_COMBINER_RESIZED = 18
00270 };
00271
00272
00273 typedef int MPI_Info;
00274 #define MPI_INFO_NULL ((MPI_Info)0x1c000000)
00275 #define MPI_MAX_INFO_KEY 255
00276 #define MPI_MAX_INFO_VAL 1024
00277
00278
00279 #define MPI_ORDER_C 56
00280 #define MPI_ORDER_FORTRAN 57
00281 #define MPI_DISTRIBUTE_BLOCK 121
00282 #define MPI_DISTRIBUTE_CYCLIC 122
00283 #define MPI_DISTRIBUTE_NONE 123
00284 #define MPI_DISTRIBUTE_DFLT_DARG -49767
00285
00286 #define MPI_IN_PLACE (void *) -1
00287
00288
00289 #define MPI_MODE_NOCHECK 1024
00290 #define MPI_MODE_NOSTORE 2048
00291 #define MPI_MODE_NOPUT 4096
00292 #define MPI_MODE_NOPRECEDE 8192
00293 #define MPI_MODE_NOSUCCEED 16384
00294
00295
00296 typedef int MPI_Aint;
00297 typedef int MPI_Fint;
00298
00299 #define HAVE_MPI_OFFSET
00300
00301
00302
00303 typedef long long MPI_Offset;
00304
00305
00306 typedef struct MPI_Status {
00307 int count;
00308 int cancelled;
00309 int MPI_SOURCE;
00310 int MPI_TAG;
00311 int MPI_ERROR;
00312
00313 } MPI_Status;
00314
00315
00316
00317
00318 #define MPI_Comm_c2f(comm) (MPI_Fint)(comm)
00319 #define MPI_Comm_f2c(comm) (MPI_Comm)(comm)
00320 #define MPI_Type_c2f(datatype) (MPI_Fint)(datatype)
00321 #define MPI_Type_f2c(datatype) (MPI_Datatype)(datatype)
00322 #define MPI_Group_c2f(group) (MPI_Fint)(group)
00323 #define MPI_Group_f2c(group) (MPI_Group)(group)
00324 #define MPI_Info_c2f(info) (MPI_Fint)(info)
00325 #define MPI_Info_f2c(info) (MPI_Info)(info)
00326 #define MPI_Request_f2c(request) (MPI_Request)(request)
00327 #define MPI_Request_c2f(request) (MPI_Fint)(request)
00328 #define MPI_Op_c2f(op) (MPI_Fint)(op)
00329 #define MPI_Op_f2c(op) (MPI_Op)(op)
00330 #define MPI_Errhandler_c2f(errhandler) (MPI_Fint)(errhandler)
00331 #define MPI_Errhandler_f2c(errhandler) (MPI_Errhandler)(errhandler)
00332 #define MPI_Win_c2f(win) (MPI_Fint)(win)
00333 #define MPI_Win_f2c(win) (MPI_Win)(win)
00334
00335
00336 #define PMPI_Comm_c2f(comm) (MPI_Fint)(comm)
00337 #define PMPI_Comm_f2c(comm) (MPI_Comm)(comm)
00338 #define PMPI_Type_c2f(datatype) (MPI_Fint)(datatype)
00339 #define PMPI_Type_f2c(datatype) (MPI_Datatype)(datatype)
00340 #define PMPI_Group_c2f(group) (MPI_Fint)(group)
00341 #define PMPI_Group_f2c(group) (MPI_Group)(group)
00342 #define PMPI_Info_c2f(info) (MPI_Fint)(info)
00343 #define PMPI_Info_f2c(info) (MPI_Info)(info)
00344 #define PMPI_Request_f2c(request) (MPI_Request)(request)
00345 #define PMPI_Request_c2f(request) (MPI_Fint)(request)
00346 #define PMPI_Op_c2f(op) (MPI_Fint)(op)
00347 #define PMPI_Op_f2c(op) (MPI_Op)(op)
00348 #define PMPI_Errhandler_c2f(errhandler) (MPI_Fint)(errhandler)
00349 #define PMPI_Errhandler_f2c(errhandler) (MPI_Errhandler)(errhandler)
00350 #define PMPI_Win_c2f(win) (MPI_Fint)(win)
00351 #define PMPI_Win_f2c(win) (MPI_Win)(win)
00352
00353 #define MPI_STATUS_IGNORE (MPI_Status *)1
00354 #define MPI_STATUSES_IGNORE (MPI_Status *)1
00355 #define MPI_ERRCODES_IGNORE (int *)0
00356
00357
00358 #define MPIU_DLL_SPEC
00359 extern MPIU_DLL_SPEC MPI_Fint * MPI_F_STATUS_IGNORE;
00360 extern MPIU_DLL_SPEC MPI_Fint * MPI_F_STATUSES_IGNORE;
00361
00362
00363
00364
00365
00366
00367
00368 #define MPI_ARGV_NULL (char **)0
00369 #define MPI_ARGVS_NULL (char ***)0
00370
00371
00372 #define MPI_THREAD_SINGLE 0
00373 #define MPI_THREAD_FUNNELED 1
00374 #define MPI_THREAD_SERIALIZED 2
00375 #define MPI_THREAD_MULTIPLE 3
00376
00377
00378 typedef int (MPI_Grequest_cancel_function)(void *, int);
00379 typedef int (MPI_Grequest_free_function)(void *);
00380 typedef int (MPI_Grequest_query_function)(void *, MPI_Status *);
00381
00382
00383 #define MPI_SUCCESS 0
00384
00385 #define MPI_ERR_BUFFER 1
00386 #define MPI_ERR_COUNT 2
00387 #define MPI_ERR_TYPE 3
00388 #define MPI_ERR_TAG 4
00389 #define MPI_ERR_COMM 5
00390 #define MPI_ERR_RANK 6
00391 #define MPI_ERR_ROOT 7
00392 #define MPI_ERR_TRUNCATE 14
00393
00394
00395 #define MPI_ERR_GROUP 8
00396 #define MPI_ERR_OP 9
00397 #define MPI_ERR_REQUEST 19
00398
00399
00400 #define MPI_ERR_TOPOLOGY 10
00401 #define MPI_ERR_DIMS 11
00402
00403
00404 #define MPI_ERR_ARG 12
00405
00406
00407 #define MPI_ERR_OTHER 15
00408
00409 #define MPI_ERR_UNKNOWN 13
00410 #define MPI_ERR_INTERN 16
00411
00412
00413 #define MPI_ERR_IN_STATUS 17
00414 #define MPI_ERR_PENDING 18
00415
00416
00417 #define MPI_ERR_FILE 27
00418 #define MPI_ERR_ACCESS 20
00419 #define MPI_ERR_AMODE 21
00420 #define MPI_ERR_BAD_FILE 22
00421 #define MPI_ERR_FILE_EXISTS 25
00422 #define MPI_ERR_FILE_IN_USE 26
00423 #define MPI_ERR_NO_SPACE 36
00424 #define MPI_ERR_NO_SUCH_FILE 37
00425 #define MPI_ERR_IO 32
00426 #define MPI_ERR_READ_ONLY 40
00427 #define MPI_ERR_CONVERSION 23
00428 #define MPI_ERR_DUP_DATAREP 24
00429 #define MPI_ERR_UNSUPPORTED_DATAREP 43
00430
00431
00432
00433 #define MPI_ERR_INFO 28
00434 #define MPI_ERR_INFO_KEY 29
00435 #define MPI_ERR_INFO_VALUE 30
00436 #define MPI_ERR_INFO_NOKEY 31
00437
00438 #define MPI_ERR_NAME 33
00439 #define MPI_ERR_NO_MEM 34
00440 #define MPI_ERR_NOT_SAME 35
00441 #define MPI_ERR_PORT 38
00442 #define MPI_ERR_QUOTA 39
00443 #define MPI_ERR_SERVICE 41
00444 #define MPI_ERR_SPAWN 42
00445 #define MPI_ERR_UNSUPPORTED_OPERATION 44
00446 #define MPI_ERR_WIN 45
00447
00448 #define MPI_ERR_BASE 46
00449 #define MPI_ERR_LOCKTYPE 47
00450 #define MPI_ERR_KEYVAL 48
00451 #define MPI_ERR_RMA_CONFLICT 49
00452 #define MPI_ERR_RMA_SYNC 50
00453 #define MPI_ERR_SIZE 51
00454 #define MPI_ERR_DISP 52
00455 #define MPI_ERR_ASSERT 53
00456
00457 #define MPI_ERR_LASTCODE 0x3fffffff
00458
00459 #define MPICH_ERR_LAST_CLASS 53
00460
00461
00462
00463
00464 typedef int (MPI_Datarep_conversion_function)(void *, MPI_Datatype, int,
00465 void *, MPI_Offset, void *);
00466 typedef int (MPI_Datarep_extent_function)(MPI_Datatype datatype, MPI_Aint *,
00467 void *);
00468 #define MPI_CONVERSION_FN_NULL ((MPI_Datarep_conversion_function *)0)
00469
00470
00471
00472
00473
00474
00475
00476
00477
00478
00479
00480
00481
00482
00483
00484 #ifndef MPICH_SUPPRESS_PROTOTYPES
00485
00486
00487 int MPI_Send(void*, int, MPI_Datatype, int, int, MPI_Comm);
00488 int MPI_Recv(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status *);
00489 int MPI_Get_count(MPI_Status *, MPI_Datatype, int *);
00490 int MPI_Bsend(void*, int, MPI_Datatype, int, int, MPI_Comm);
00491 int MPI_Ssend(void*, int, MPI_Datatype, int, int, MPI_Comm);
00492 int MPI_Rsend(void*, int, MPI_Datatype, int, int, MPI_Comm);
00493 int MPI_Buffer_attach( void*, int);
00494 int MPI_Buffer_detach( void*, int *);
00495 int MPI_Isend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00496 int MPI_Ibsend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00497 int MPI_Issend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00498 int MPI_Irsend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00499 int MPI_Irecv(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00500 int MPI_Wait(MPI_Request *, MPI_Status *);
00501 int MPI_Test(MPI_Request *, int *, MPI_Status *);
00502 int MPI_Request_free(MPI_Request *);
00503 int MPI_Waitany(int, MPI_Request *, int *, MPI_Status *);
00504 int MPI_Testany(int, MPI_Request *, int *, int *, MPI_Status *);
00505 int MPI_Waitall(int, MPI_Request *, MPI_Status *);
00506 int MPI_Testall(int, MPI_Request *, int *, MPI_Status *);
00507 int MPI_Waitsome(int, MPI_Request *, int *, int *, MPI_Status *);
00508 int MPI_Testsome(int, MPI_Request *, int *, int *, MPI_Status *);
00509 int MPI_Iprobe(int, int, MPI_Comm, int *, MPI_Status *);
00510 int MPI_Probe(int, int, MPI_Comm, MPI_Status *);
00511 int MPI_Cancel(MPI_Request *);
00512 int MPI_Test_cancelled(MPI_Status *, int *);
00513 int MPI_Send_init(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00514 int MPI_Bsend_init(void*, int, MPI_Datatype, int,int, MPI_Comm, MPI_Request *);
00515 int MPI_Ssend_init(void*, int, MPI_Datatype, int,int, MPI_Comm, MPI_Request *);
00516 int MPI_Rsend_init(void*, int, MPI_Datatype, int,int, MPI_Comm, MPI_Request *);
00517 int MPI_Recv_init(void*, int, MPI_Datatype, int,int, MPI_Comm, MPI_Request *);
00518 int MPI_Start(MPI_Request *);
00519 int MPI_Startall(int, MPI_Request *);
00520 int MPI_Sendrecv(void *, int, MPI_Datatype,int, int, void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status *);
00521 int MPI_Sendrecv_replace(void*, int, MPI_Datatype, int, int, int, int, MPI_Comm, MPI_Status *);
00522 int MPI_Type_contiguous(int, MPI_Datatype, MPI_Datatype *);
00523 int MPI_Type_vector(int, int, int, MPI_Datatype, MPI_Datatype *);
00524 int MPI_Type_hvector(int, int, MPI_Aint, MPI_Datatype, MPI_Datatype *);
00525 int MPI_Type_indexed(int, int *, int *, MPI_Datatype, MPI_Datatype *);
00526 int MPI_Type_hindexed(int, int *, MPI_Aint *, MPI_Datatype, MPI_Datatype *);
00527 int MPI_Type_struct(int, int *, MPI_Aint *, MPI_Datatype *, MPI_Datatype *);
00528 int MPI_Address(void*, MPI_Aint *);
00529
00530 int MPI_Type_extent(MPI_Datatype, MPI_Aint *);
00531
00532
00533
00534 int MPI_Type_size(MPI_Datatype, int *);
00535
00536 int MPI_Type_lb(MPI_Datatype, MPI_Aint *);
00537 int MPI_Type_ub(MPI_Datatype, MPI_Aint *);
00538 int MPI_Type_commit(MPI_Datatype *);
00539 int MPI_Type_free(MPI_Datatype *);
00540 int MPI_Get_elements(MPI_Status *, MPI_Datatype, int *);
00541 int MPI_Pack(void*, int, MPI_Datatype, void *, int, int *, MPI_Comm);
00542 int MPI_Unpack(void*, int, int *, void *, int, MPI_Datatype, MPI_Comm);
00543 int MPI_Pack_size(int, MPI_Datatype, MPI_Comm, int *);
00544 int MPI_Barrier(MPI_Comm );
00545 int MPI_Bcast(void*, int, MPI_Datatype, int, MPI_Comm );
00546 int MPI_Gather(void* , int, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm);
00547 int MPI_Gatherv(void* , int, MPI_Datatype, void*, int *, int *, MPI_Datatype, int, MPI_Comm);
00548 int MPI_Scatter(void* , int, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm);
00549 int MPI_Scatterv(void* , int *, int *, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm);
00550 int MPI_Allgather(void* , int, MPI_Datatype, void*, int, MPI_Datatype, MPI_Comm);
00551 int MPI_Allgatherv(void* , int, MPI_Datatype, void*, int *, int *, MPI_Datatype, MPI_Comm);
00552 int MPI_Alltoall(void* , int, MPI_Datatype, void*, int, MPI_Datatype, MPI_Comm);
00553 int MPI_Alltoallv(void* , int *, int *, MPI_Datatype, void*, int *, int *, MPI_Datatype, MPI_Comm);
00554 int MPI_Reduce(void* , void*, int, MPI_Datatype, MPI_Op, int, MPI_Comm);
00555 int MPI_Op_create(MPI_User_function *, int, MPI_Op *);
00556 int MPI_Op_free( MPI_Op *);
00557 int MPI_Allreduce(void* , void*, int, MPI_Datatype, MPI_Op, MPI_Comm);
00558 int MPI_Reduce_scatter(void* , void*, int *, MPI_Datatype, MPI_Op, MPI_Comm);
00559 int MPI_Scan(void* , void*, int, MPI_Datatype, MPI_Op, MPI_Comm );
00560 int MPI_Group_size(MPI_Group, int *);
00561 int MPI_Group_rank(MPI_Group, int *);
00562 int MPI_Group_translate_ranks (MPI_Group, int, int *, MPI_Group, int *);
00563 int MPI_Group_compare(MPI_Group, MPI_Group, int *);
00564 int MPI_Comm_group(MPI_Comm, MPI_Group *);
00565 int MPI_Group_union(MPI_Group, MPI_Group, MPI_Group *);
00566 int MPI_Group_intersection(MPI_Group, MPI_Group, MPI_Group *);
00567 int MPI_Group_difference(MPI_Group, MPI_Group, MPI_Group *);
00568 int MPI_Group_incl(MPI_Group, int, int *, MPI_Group *);
00569 int MPI_Group_excl(MPI_Group, int, int *, MPI_Group *);
00570 int MPI_Group_range_incl(MPI_Group, int, int [][3], MPI_Group *);
00571 int MPI_Group_range_excl(MPI_Group, int, int [][3], MPI_Group *);
00572 int MPI_Group_free(MPI_Group *);
00573 int MPI_Comm_size(MPI_Comm, int *);
00574 int MPI_Comm_rank(MPI_Comm, int *);
00575 int MPI_Comm_compare(MPI_Comm, MPI_Comm, int *);
00576 int MPI_Comm_dup(MPI_Comm, MPI_Comm *);
00577 int MPI_Comm_create(MPI_Comm, MPI_Group, MPI_Comm *);
00578 int MPI_Comm_split(MPI_Comm, int, int, MPI_Comm *);
00579 int MPI_Comm_free(MPI_Comm *);
00580 int MPI_Comm_test_inter(MPI_Comm, int *);
00581 int MPI_Comm_remote_size(MPI_Comm, int *);
00582 int MPI_Comm_remote_group(MPI_Comm, MPI_Group *);
00583 int MPI_Intercomm_create(MPI_Comm, int, MPI_Comm, int, int, MPI_Comm * );
00584 int MPI_Intercomm_merge(MPI_Comm, int, MPI_Comm *);
00585 int MPI_Keyval_create(MPI_Copy_function *, MPI_Delete_function *, int *, void*);
00586 int MPI_Keyval_free(int *);
00587 int MPI_Attr_put(MPI_Comm, int, void*);
00588 int MPI_Attr_get(MPI_Comm, int, void *, int *);
00589 int MPI_Attr_delete(MPI_Comm, int);
00590 int MPI_Topo_test(MPI_Comm, int *);
00591 int MPI_Cart_create(MPI_Comm, int, int *, int *, int, MPI_Comm *);
00592 int MPI_Dims_create(int, int, int *);
00593 int MPI_Graph_create(MPI_Comm, int, int *, int *, int, MPI_Comm *);
00594 int MPI_Graphdims_get(MPI_Comm, int *, int *);
00595 int MPI_Graph_get(MPI_Comm, int, int, int *, int *);
00596 int MPI_Cartdim_get(MPI_Comm, int *);
00597 int MPI_Cart_get(MPI_Comm, int, int *, int *, int *);
00598 int MPI_Cart_rank(MPI_Comm, int *, int *);
00599 int MPI_Cart_coords(MPI_Comm, int, int, int *);
00600 int MPI_Graph_neighbors_count(MPI_Comm, int, int *);
00601 int MPI_Graph_neighbors(MPI_Comm, int, int, int *);
00602 int MPI_Cart_shift(MPI_Comm, int, int, int *, int *);
00603 int MPI_Cart_sub(MPI_Comm, int *, MPI_Comm *);
00604 int MPI_Cart_map(MPI_Comm, int, int *, int *, int *);
00605 int MPI_Graph_map(MPI_Comm, int, int *, int *, int *);
00606 int MPI_Get_processor_name(char *, int *);
00607 int MPI_Get_version(int *, int *);
00608 int MPI_Errhandler_create(MPI_Handler_function *, MPI_Errhandler *);
00609 int MPI_Errhandler_set(MPI_Comm, MPI_Errhandler);
00610 int MPI_Errhandler_get(MPI_Comm, MPI_Errhandler *);
00611 int MPI_Errhandler_free(MPI_Errhandler *);
00612 int MPI_Error_string(int, char *, int *);
00613 int MPI_Error_class(int, int *);
00614 double MPI_Wtime(void);
00615 double MPI_Wtick(void);
00616 #ifndef MPI_Wtime
00617 double PMPI_Wtime(void);
00618 double PMPI_Wtick(void);
00619 #endif
00620 int MPI_Init(int *, char ***);
00621 int MPI_Finalize(void);
00622 int MPI_Initialized(int *);
00623 int MPI_Abort(MPI_Comm, int);
00624
00625
00626
00627
00628 int MPI_Pcontrol(const int, ...);
00629
00630 int MPI_DUP_FN ( MPI_Comm, int, void *, void *, void *, int * );
00631
00632
00633
00634
00635
00636 int MPI_Close_port(char *);
00637 int MPI_Comm_accept(char *, MPI_Info, int, MPI_Comm, MPI_Comm *);
00638 int MPI_Comm_connect(char *, MPI_Info, int, MPI_Comm, MPI_Comm *);
00639 int MPI_Comm_disconnect(MPI_Comm *);
00640 int MPI_Comm_get_parent(MPI_Comm *);
00641 int MPI_Comm_join(int, MPI_Comm *);
00642 int MPI_Comm_spawn(char *, char *[], int, MPI_Info, int, MPI_Comm, MPI_Comm *,
00643 int []);
00644 int MPI_Comm_spawn_multiple(int, char *[], char **[], int [], MPI_Info [], int,
00645 MPI_Comm, MPI_Comm *, int []);
00646 int MPI_Lookup_name(char *, MPI_Info, char *);
00647 int MPI_Open_port(MPI_Info, char *);
00648 int MPI_Publish_name(char *, MPI_Info, char *);
00649 int MPI_Unpublish_name(char *, MPI_Info, char *);
00650
00651
00652 int MPI_Accumulate(void *, int, MPI_Datatype, int, MPI_Aint, int,
00653 MPI_Datatype, MPI_Op, MPI_Win);
00654 int MPI_Get(void *, int, MPI_Datatype, int, MPI_Aint, int, MPI_Datatype,
00655 MPI_Win);
00656 int MPI_Put(void *, int, MPI_Datatype, int, MPI_Aint, int, MPI_Datatype,
00657 MPI_Win);
00658 int MPI_Win_complete(MPI_Win);
00659 int MPI_Win_create(void *, MPI_Aint, int, MPI_Info, MPI_Comm, MPI_Win *);
00660 int MPI_Win_fence(int, MPI_Win);
00661 int MPI_Win_free(MPI_Win *);
00662 int MPI_Win_get_group(MPI_Win, MPI_Group *);
00663 int MPI_Win_lock(int, int, int, MPI_Win);
00664 int MPI_Win_post(MPI_Group, int, MPI_Win);
00665 int MPI_Win_start(MPI_Group, int, MPI_Win);
00666 int MPI_Win_test(MPI_Win, int *);
00667 int MPI_Win_unlock(int, MPI_Win);
00668 int MPI_Win_wait(MPI_Win);
00669
00670
00671 int MPI_Alltoallw(void *, int [], int [], MPI_Datatype [], void *, int [],
00672 int [], MPI_Datatype [], MPI_Comm);
00673 int MPI_Exscan(void *, void *, int, MPI_Datatype, MPI_Op, MPI_Comm) ;
00674
00675
00676 int MPI_Add_error_class(int *);
00677 int MPI_Add_error_code(int, int *);
00678 int MPI_Add_error_string(int, char *);
00679 int MPI_Comm_call_errhandler(MPI_Comm, int);
00680 int MPI_Comm_create_keyval(MPI_Comm_copy_attr_function *,
00681 MPI_Comm_delete_attr_function *, int *, void *);
00682 int MPI_Comm_delete_attr(MPI_Comm, int);
00683 int MPI_Comm_free_keyval(int *);
00684 int MPI_Comm_get_attr(MPI_Comm, int, void *, int *);
00685 int MPI_Comm_get_name(MPI_Comm, char *, int *);
00686 int MPI_Comm_set_attr(MPI_Comm, int, void *);
00687 int MPI_Comm_set_name(MPI_Comm, char *);
00688 int MPI_File_call_errhandler(MPI_File, int);
00689 int MPI_Grequest_complete(MPI_Request);
00690 int MPI_Grequest_start(MPI_Grequest_query_function *,
00691 MPI_Grequest_free_function *,
00692 MPI_Grequest_cancel_function *, void *, MPI_Request *);
00693 int MPI_Init_thread(int *, char ***, int, int *);
00694 int MPI_Is_thread_main(int *);
00695 int MPI_Query_thread(int *);
00696 int MPI_Status_set_cancelled(MPI_Status *, int);
00697 int MPI_Status_set_elements(MPI_Status *, MPI_Datatype, int);
00698 int MPI_Type_create_keyval(MPI_Type_copy_attr_function *,
00699 MPI_Type_delete_attr_function *, int *, void *);
00700 int MPI_Type_delete_attr(MPI_Datatype, int);
00701 int MPI_Type_dup(MPI_Datatype, MPI_Datatype *);
00702 int MPI_Type_free_keyval(int *);
00703 int MPI_Type_get_attr(MPI_Datatype, int, void *, int *);
00704 int MPI_Type_get_contents(MPI_Datatype, int, int, int, int [], MPI_Aint [],
00705 MPI_Datatype []);
00706 int MPI_Type_get_envelope(MPI_Datatype, int *, int *, int *, int *);
00707 int MPI_Type_get_name(MPI_Datatype, char *, int *);
00708 int MPI_Type_set_attr(MPI_Datatype, int, void *);
00709 int MPI_Type_set_name(MPI_Datatype, char *);
00710 int MPI_Type_match_size( int, int, MPI_Datatype *);
00711 int MPI_Win_call_errhandler(MPI_Win, int);
00712 int MPI_Win_create_keyval(MPI_Win_copy_attr_function *,
00713 MPI_Win_delete_attr_function *, int *, void *);
00714 int MPI_Win_delete_attr(MPI_Win, int);
00715 int MPI_Win_free_keyval(int *);
00716 int MPI_Win_get_attr(MPI_Win, int, void *, int *);
00717 int MPI_Win_get_name(MPI_Win, char *, int *);
00718 int MPI_Win_set_attr(MPI_Win, int, void *);
00719 int MPI_Win_set_name(MPI_Win, char *);
00720
00721
00722 #ifdef FOO
00723 MPI_Comm MPI_Comm_f2c(MPI_Fint);
00724 MPI_Datatype MPI_Type_f2c(MPI_Fint);
00725 MPI_File MPI_File_f2c(MPI_Fint);
00726 MPI_Fint MPI_Comm_c2f(MPI_Comm);
00727 MPI_Fint MPI_File_c2f(MPI_File);
00728 MPI_Fint MPI_Group_c2f(MPI_Group);
00729 MPI_Fint MPI_Info_c2f(MPI_Info);
00730 MPI_Fint MPI_Op_c2f(MPI_Op);
00731 MPI_Fint MPI_Request_c2f(MPI_Request);
00732 MPI_Fint MPI_Type_c2f(MPI_Datatype);
00733 MPI_Fint MPI_Win_c2f(MPI_Win);
00734 MPI_Group MPI_Group_f2c(MPI_Fint);
00735 MPI_Info MPI_Info_f2c(MPI_Fint);
00736 MPI_Op MPI_Op_f2c(MPI_Fint);
00737 MPI_Request MPI_Request_f2c(MPI_Fint);
00738 MPI_Win MPI_Win_f2c(MPI_Fint);
00739 #endif
00740
00741 int MPI_Alloc_mem(MPI_Aint, MPI_Info info, void *baseptr);
00742 int MPI_Comm_create_errhandler(MPI_Comm_errhandler_fn *, MPI_Errhandler *);
00743 int MPI_Comm_get_errhandler(MPI_Comm, MPI_Errhandler *);
00744 int MPI_Comm_set_errhandler(MPI_Comm, MPI_Errhandler);
00745 int MPI_File_create_errhandler(MPI_File_errhandler_fn *, MPI_Errhandler *);
00746 int MPI_File_get_errhandler(MPI_File, MPI_Errhandler *);
00747 int MPI_File_set_errhandler(MPI_File, MPI_Errhandler);
00748 int MPI_Finalized(int *);
00749 int MPI_Free_mem(void *);
00750 int MPI_Get_address(void *, MPI_Aint *);
00751 int MPI_Info_create(MPI_Info *);
00752 int MPI_Info_delete(MPI_Info, char *);
00753 int MPI_Info_dup(MPI_Info, MPI_Info *);
00754 int MPI_Info_free(MPI_Info *info);
00755 int MPI_Info_get(MPI_Info, char *, int, char *, int *);
00756 int MPI_Info_get_nkeys(MPI_Info, int *);
00757 int MPI_Info_get_nthkey(MPI_Info, int, char *);
00758 int MPI_Info_get_valuelen(MPI_Info, char *, int *, int *);
00759 int MPI_Info_set(MPI_Info, char *, char *);
00760 int MPI_Pack_external(char *, void *, int, MPI_Datatype, void *, MPI_Aint,
00761 MPI_Aint *);
00762 int MPI_Pack_external_size(char *, int, MPI_Datatype, MPI_Aint *);
00763 int MPI_Request_get_status(MPI_Request, int *, MPI_Status *);
00764 int MPI_Status_c2f(MPI_Status *, MPI_Fint *);
00765 int MPI_Status_f2c(MPI_Fint *, MPI_Status *);
00766 int MPI_Type_create_darray(int, int, int, int [], int [], int [], int [], int,
00767 MPI_Datatype, MPI_Datatype *);
00768 int MPI_Type_create_hindexed(int, int [], MPI_Aint [], MPI_Datatype,
00769 MPI_Datatype *);
00770 int MPI_Type_create_hvector(int, int, MPI_Aint, MPI_Datatype, MPI_Datatype *);
00771 int MPI_Type_create_indexed_block(int, int, int [], MPI_Datatype,
00772 MPI_Datatype *);
00773 int MPI_Type_create_resized(MPI_Datatype, MPI_Aint, MPI_Aint, MPI_Datatype *);
00774 int MPI_Type_create_struct(int, int [], MPI_Aint [], MPI_Datatype [],
00775 MPI_Datatype *);
00776 int MPI_Type_create_subarray(int, int [], int [], int [], int, MPI_Datatype,
00777 MPI_Datatype *);
00778 int MPI_Type_get_extent(MPI_Datatype, MPI_Aint *, MPI_Aint *);
00779 int MPI_Type_get_true_extent(MPI_Datatype, MPI_Aint *, MPI_Aint *);
00780 int MPI_Unpack_external(char *, void *, MPI_Aint, MPI_Aint *, void *, int,
00781 MPI_Datatype);
00782 int MPI_Win_create_errhandler(MPI_Win_errhandler_fn *, MPI_Errhandler *);
00783 int MPI_Win_get_errhandler(MPI_Win, MPI_Errhandler *);
00784 int MPI_Win_set_errhandler(MPI_Win, MPI_Errhandler);
00785
00786
00787
00788
00789 int MPI_Type_create_f90_integer( int, MPI_Datatype * );
00790 int MPI_Type_create_f90_real( int, int, MPI_Datatype * );
00791 int MPI_Type_create_f90_complex( int, int, MPI_Datatype * );
00792
00793
00794 #endif
00795
00796
00797
00798
00799 #if !defined(MPI_BUILD_PROFILING)
00800 int PMPI_Send(void*, int, MPI_Datatype, int, int, MPI_Comm);
00801 int PMPI_Recv(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status *);
00802 int PMPI_Get_count(MPI_Status *, MPI_Datatype, int *);
00803 int PMPI_Bsend(void*, int, MPI_Datatype, int, int, MPI_Comm);
00804 int PMPI_Ssend(void*, int, MPI_Datatype, int, int, MPI_Comm);
00805 int PMPI_Rsend(void*, int, MPI_Datatype, int, int, MPI_Comm);
00806 int PMPI_Buffer_attach( void* buffer, int);
00807 int PMPI_Buffer_detach( void* buffer, int *);
00808 int PMPI_Isend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00809 int PMPI_Ibsend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00810 int PMPI_Issend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00811 int PMPI_Irsend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00812 int PMPI_Irecv(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00813 int PMPI_Wait(MPI_Request *, MPI_Status *);
00814 int PMPI_Test(MPI_Request *, int *, MPI_Status *);
00815 int PMPI_Request_free(MPI_Request *);
00816 int PMPI_Waitany(int, MPI_Request *, int *, MPI_Status *);
00817 int PMPI_Testany(int, MPI_Request *, int *, int *, MPI_Status *);
00818 int PMPI_Waitall(int, MPI_Request *, MPI_Status *);
00819 int PMPI_Testall(int, MPI_Request *, int *, MPI_Status *);
00820 int PMPI_Waitsome(int, MPI_Request *, int *, int *, MPI_Status *);
00821 int PMPI_Testsome(int, MPI_Request *, int *, int *, MPI_Status *);
00822 int PMPI_Iprobe(int, int, MPI_Comm, int *, MPI_Status *);
00823 int PMPI_Probe(int, int, MPI_Comm, MPI_Status *);
00824 int PMPI_Cancel(MPI_Request *);
00825 int PMPI_Test_cancelled(MPI_Status *, int *);
00826 int PMPI_Send_init(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00827 int PMPI_Bsend_init(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00828 int PMPI_Ssend_init(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00829 int PMPI_Rsend_init(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00830 int PMPI_Recv_init(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
00831 int PMPI_Start(MPI_Request *);
00832 int PMPI_Startall(int, MPI_Request *);
00833 int PMPI_Sendrecv(void *, int, MPI_Datatype, int, int, void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status *);
00834 int PMPI_Sendrecv_replace(void*, int, MPI_Datatype, int, int, int, int, MPI_Comm, MPI_Status *);
00835 int PMPI_Type_contiguous(int, MPI_Datatype, MPI_Datatype *);
00836 int PMPI_Type_vector(int, int, int, MPI_Datatype, MPI_Datatype *);
00837 int PMPI_Type_hvector(int, int, MPI_Aint, MPI_Datatype, MPI_Datatype *);
00838 int PMPI_Type_indexed(int, int *, int *, MPI_Datatype, MPI_Datatype *);
00839 int PMPI_Type_hindexed(int, int *, MPI_Aint *, MPI_Datatype, MPI_Datatype *);
00840 int PMPI_Type_struct(int, int *, MPI_Aint *, MPI_Datatype *, MPI_Datatype *);
00841 int PMPI_Address(void*, MPI_Aint *);
00842 int PMPI_Type_extent(MPI_Datatype, MPI_Aint *);
00843 int PMPI_Type_size(MPI_Datatype, int *);
00844 int PMPI_Type_lb(MPI_Datatype, MPI_Aint *);
00845 int PMPI_Type_ub(MPI_Datatype, MPI_Aint *);
00846 int PMPI_Type_commit(MPI_Datatype *);
00847 int PMPI_Type_free(MPI_Datatype *);
00848 int PMPI_Get_elements(MPI_Status *, MPI_Datatype, int *);
00849 int PMPI_Pack(void*, int, MPI_Datatype, void *, int, int *, MPI_Comm);
00850 int PMPI_Unpack(void*, int, int *, void *, int, MPI_Datatype, MPI_Comm);
00851 int PMPI_Pack_size(int, MPI_Datatype, MPI_Comm, int *);
00852 int PMPI_Barrier(MPI_Comm );
00853 int PMPI_Bcast(void* buffer, int, MPI_Datatype, int, MPI_Comm );
00854 int PMPI_Gather(void* , int, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm);
00855 int PMPI_Gatherv(void* , int, MPI_Datatype, void*, int *, int *, MPI_Datatype, int, MPI_Comm);
00856 int PMPI_Scatter(void* , int, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm);
00857 int PMPI_Scatterv(void* , int *, int *displs, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm);
00858 int PMPI_Allgather(void* , int, MPI_Datatype, void*, int, MPI_Datatype, MPI_Comm);
00859 int PMPI_Allgatherv(void* , int, MPI_Datatype, void*, int *, int *, MPI_Datatype, MPI_Comm);
00860 int PMPI_Alltoall(void* , int, MPI_Datatype, void*, int, MPI_Datatype, MPI_Comm);
00861 int PMPI_Alltoallv(void* , int *, int *, MPI_Datatype, void*, int *, int *, MPI_Datatype, MPI_Comm);
00862 int PMPI_Reduce(void* , void*, int, MPI_Datatype, MPI_Op, int, MPI_Comm);
00863 int PMPI_Op_create(MPI_User_function *, int, MPI_Op *);
00864 int PMPI_Op_free( MPI_Op *);
00865 int PMPI_Allreduce(void* , void*, int, MPI_Datatype, MPI_Op, MPI_Comm);
00866 int PMPI_Reduce_scatter(void* , void*, int *, MPI_Datatype, MPI_Op, MPI_Comm);
00867 int PMPI_Scan(void* , void*, int, MPI_Datatype, MPI_Op, MPI_Comm );
00868 int PMPI_Group_size(MPI_Group, int *);
00869 int PMPI_Group_rank(MPI_Group, int *);
00870 int PMPI_Group_translate_ranks (MPI_Group, int, int *, MPI_Group, int *);
00871 int PMPI_Group_compare(MPI_Group, MPI_Group, int *);
00872 int PMPI_Comm_group(MPI_Comm, MPI_Group *);
00873 int PMPI_Group_union(MPI_Group, MPI_Group, MPI_Group *);
00874 int PMPI_Group_intersection(MPI_Group, MPI_Group, MPI_Group *);
00875 int PMPI_Group_difference(MPI_Group, MPI_Group, MPI_Group *);
00876 int PMPI_Group_incl(MPI_Group, int, int *, MPI_Group *);
00877 int PMPI_Group_excl(MPI_Group, int, int *, MPI_Group *);
00878 int PMPI_Group_range_incl(MPI_Group, int, int [][3], MPI_Group *);
00879 int PMPI_Group_range_excl(MPI_Group, int, int [][3], MPI_Group *);
00880 int PMPI_Group_free(MPI_Group *);
00881 int PMPI_Comm_size(MPI_Comm, int *);
00882 int PMPI_Comm_rank(MPI_Comm, int *);
00883 int PMPI_Comm_compare(MPI_Comm, MPI_Comm, int *);
00884 int PMPI_Comm_dup(MPI_Comm, MPI_Comm *);
00885 int PMPI_Comm_create(MPI_Comm, MPI_Group, MPI_Comm *);
00886 int PMPI_Comm_split(MPI_Comm, int, int, MPI_Comm *);
00887 int PMPI_Comm_free(MPI_Comm *);
00888 int PMPI_Comm_test_inter(MPI_Comm, int *);
00889 int PMPI_Comm_remote_size(MPI_Comm, int *);
00890 int PMPI_Comm_remote_group(MPI_Comm, MPI_Group *);
00891 int PMPI_Intercomm_create(MPI_Comm, int, MPI_Comm, int, int, MPI_Comm *);
00892 int PMPI_Intercomm_merge(MPI_Comm, int, MPI_Comm *);
00893 int PMPI_Keyval_create(MPI_Copy_function *, MPI_Delete_function *, int *, void*);
00894 int PMPI_Keyval_free(int *);
00895 int PMPI_Attr_put(MPI_Comm, int, void*);
00896 int PMPI_Attr_get(MPI_Comm, int, void *, int *);
00897 int PMPI_Attr_delete(MPI_Comm, int);
00898 int PMPI_Topo_test(MPI_Comm, int *);
00899 int PMPI_Cart_create(MPI_Comm, int, int *, int *, int, MPI_Comm *);
00900 int PMPI_Dims_create(int, int, int *);
00901 int PMPI_Graph_create(MPI_Comm, int, int *, int *, int, MPI_Comm *);
00902 int PMPI_Graphdims_get(MPI_Comm, int *, int *);
00903 int PMPI_Graph_get(MPI_Comm, int, int, int *, int *);
00904 int PMPI_Cartdim_get(MPI_Comm, int *);
00905 int PMPI_Cart_get(MPI_Comm, int, int *, int *, int *);
00906 int PMPI_Cart_rank(MPI_Comm, int *, int *);
00907 int PMPI_Cart_coords(MPI_Comm, int, int, int *);
00908 int PMPI_Graph_neighbors_count(MPI_Comm, int, int *);
00909 int PMPI_Graph_neighbors(MPI_Comm, int, int, int *);
00910 int PMPI_Cart_shift(MPI_Comm, int, int, int *, int *);
00911 int PMPI_Cart_sub(MPI_Comm, int *, MPI_Comm *);
00912 int PMPI_Cart_map(MPI_Comm, int, int *, int *, int *);
00913 int PMPI_Graph_map(MPI_Comm, int, int *, int *, int *);
00914 int PMPI_Get_processor_name(char *, int *);
00915 int PMPI_Get_version(int *, int *);
00916 int PMPI_Errhandler_create(MPI_Handler_function *, MPI_Errhandler *);
00917 int PMPI_Errhandler_set(MPI_Comm, MPI_Errhandler);
00918 int PMPI_Errhandler_get(MPI_Comm, MPI_Errhandler *);
00919 int PMPI_Errhandler_free(MPI_Errhandler *);
00920 int PMPI_Error_string(int, char *, int *);
00921 int PMPI_Error_class(int, int *);
00922
00923 int PMPI_Type_get_envelope(MPI_Datatype, int *, int *, int *, int *);
00924
00925
00926 int PMPI_Init(int *, char ***);
00927 int PMPI_Finalize(void);
00928 int PMPI_Initialized(int *);
00929 int PMPI_Abort(MPI_Comm, int);
00930
00931 int PMPI_Pcontrol(const int, ...);
00932
00933
00934
00935
00936 int PMPI_Close_port(char *);
00937 int PMPI_Comm_accept(char *, MPI_Info, int, MPI_Comm, MPI_Comm *);
00938 int PMPI_Comm_connect(char *, MPI_Info, int, MPI_Comm, MPI_Comm *);
00939 int PMPI_Comm_disconnect(MPI_Comm *);
00940 int PMPI_Comm_get_parent(MPI_Comm *);
00941 int PMPI_Comm_join(int, MPI_Comm *);
00942 int PMPI_Comm_spawn(char *, char *[], int, MPI_Info, int, MPI_Comm, MPI_Comm *,
00943 int []);
00944 int PMPI_Comm_spawn_multiple(int, char *[], char **[], int [], MPI_Info [], int,
00945 MPI_Comm, MPI_Comm *, int []);
00946 int PMPI_Lookup_name(char *, MPI_Info, char *);
00947 int PMPI_Open_port(MPI_Info, char *);
00948 int PMPI_Publish_name(char *, MPI_Info, char *);
00949 int PMPI_Unpublish_name(char *, MPI_Info, char *);
00950
00951
00952 int PMPI_Accumulate(void *, int, MPI_Datatype, int, MPI_Aint, int,
00953 MPI_Datatype, MPI_Op, MPI_Win);
00954 int PMPI_Get(void *, int, MPI_Datatype, int, MPI_Aint, int, MPI_Datatype,
00955 MPI_Win);
00956 int PMPI_Put(void *, int, MPI_Datatype, int, MPI_Aint, int, MPI_Datatype,
00957 MPI_Win);
00958 int PMPI_Win_complete(MPI_Win);
00959 int PMPI_Win_create(void *, MPI_Aint, int, MPI_Info, MPI_Comm, MPI_Win *);
00960 int PMPI_Win_fence(int, MPI_Win);
00961 int PMPI_Win_free(MPI_Win *);
00962 int PMPI_Win_get_group(MPI_Win, MPI_Group *);
00963 int PMPI_Win_lock(int, int, int, MPI_Win);
00964 int PMPI_Win_post(MPI_Group, int, MPI_Win);
00965 int PMPI_Win_start(MPI_Group, int, MPI_Win);
00966 int PMPI_Win_test(MPI_Win, int *);
00967 int PMPI_Win_unlock(int, MPI_Win);
00968 int PMPI_Win_wait(MPI_Win);
00969
00970
00971 int PMPI_Alltoallw(void *, int [], int [], MPI_Datatype [], void *, int [],
00972 int [], MPI_Datatype [], MPI_Comm);
00973 int PMPI_Exscan(void *, void *, int, MPI_Datatype, MPI_Op, MPI_Comm) ;
00974
00975
00976 int PMPI_Add_error_class(int *);
00977 int PMPI_Add_error_code(int, int *);
00978 int PMPI_Add_error_string(int, char *);
00979 int PMPI_Comm_call_errhandler(MPI_Comm, int);
00980 int PMPI_Comm_create_keyval(MPI_Comm_copy_attr_function *,
00981 MPI_Comm_delete_attr_function *, int *, void *);
00982 int PMPI_Comm_delete_attr(MPI_Comm, int);
00983 int PMPI_Comm_free_keyval(int *);
00984 int PMPI_Comm_get_attr(MPI_Comm, int, void *, int *);
00985 int PMPI_Comm_get_name(MPI_Comm, char *, int *);
00986 int PMPI_Comm_set_attr(MPI_Comm, int, void *);
00987 int PMPI_Comm_set_name(MPI_Comm, char *);
00988 int PMPI_File_call_errhandler(MPI_File, int);
00989 int PMPI_Grequest_complete(MPI_Request);
00990 int PMPI_Grequest_start(MPI_Grequest_query_function *,
00991 MPI_Grequest_free_function *,
00992 MPI_Grequest_cancel_function *, void *, MPI_Request *);
00993 int PMPI_Init_thread(int *, char ***, int, int *);
00994 int PMPI_Is_thread_main(int *);
00995 int PMPI_Query_thread(int *);
00996 int PMPI_Status_set_cancelled(MPI_Status *, int);
00997 int PMPI_Status_set_elements(MPI_Status *, MPI_Datatype, int);
00998 int PMPI_Type_create_keyval(MPI_Type_copy_attr_function *,
00999 MPI_Type_delete_attr_function *, int *, void *);
01000 int PMPI_Type_delete_attr(MPI_Datatype, int);
01001 int PMPI_Type_dup(MPI_Datatype, MPI_Datatype *);
01002 int PMPI_Type_free_keyval(int *);
01003 int PMPI_Type_get_attr(MPI_Datatype, int, void *, int *);
01004 int PMPI_Type_get_contents(MPI_Datatype, int, int, int, int [], MPI_Aint [],
01005 MPI_Datatype []);
01006 int PMPI_Type_get_envelope(MPI_Datatype, int *, int *, int *, int *);
01007 int PMPI_Type_get_name(MPI_Datatype, char *, int *);
01008 int PMPI_Type_set_attr(MPI_Datatype, int, void *);
01009 int PMPI_Type_set_name(MPI_Datatype, char *);
01010 int PMPI_Type_match_size( int, int, MPI_Datatype *);
01011 int PMPI_Win_call_errhandler(MPI_Win, int);
01012 int PMPI_Win_create_keyval(MPI_Win_copy_attr_function *,
01013 MPI_Win_delete_attr_function *, int *, void *);
01014 int PMPI_Win_delete_attr(MPI_Win, int);
01015 int PMPI_Win_free_keyval(int *);
01016 int PMPI_Win_get_attr(MPI_Win, int, void *, int *);
01017 int PMPI_Win_get_name(MPI_Win, char *, int *);
01018 int PMPI_Win_set_attr(MPI_Win, int, void *);
01019 int PMPI_Win_set_name(MPI_Win, char *);
01020
01021
01022
01023
01024 int PMPI_Type_create_f90_integer( int, MPI_Datatype * );
01025 int PMPI_Type_create_f90_real( int, int, MPI_Datatype * );
01026 int PMPI_Type_create_f90_complex( int, int, MPI_Datatype * );
01027
01028
01029 int PMPI_Alloc_mem(MPI_Aint, MPI_Info info, void *baseptr);
01030 int PMPI_Comm_create_errhandler(MPI_Comm_errhandler_fn *, MPI_Errhandler *);
01031 int PMPI_Comm_get_errhandler(MPI_Comm, MPI_Errhandler *);
01032 int PMPI_Comm_set_errhandler(MPI_Comm, MPI_Errhandler);
01033 int PMPI_File_create_errhandler(MPI_File_errhandler_fn *, MPI_Errhandler *);
01034 int PMPI_File_get_errhandler(MPI_File, MPI_Errhandler *);
01035 int PMPI_File_set_errhandler(MPI_File, MPI_Errhandler);
01036 int PMPI_Finalized(int *);
01037 int PMPI_Free_mem(void *);
01038 int PMPI_Get_address(void *, MPI_Aint *);
01039 int PMPI_Info_create(MPI_Info *);
01040 int PMPI_Info_delete(MPI_Info, char *);
01041 int PMPI_Info_dup(MPI_Info, MPI_Info *);
01042 int PMPI_Info_free(MPI_Info *info);
01043 int PMPI_Info_get(MPI_Info, char *, int, char *, int *);
01044 int PMPI_Info_get_nkeys(MPI_Info, int *);
01045 int PMPI_Info_get_nthkey(MPI_Info, int, char *);
01046 int PMPI_Info_get_valuelen(MPI_Info, char *, int *, int *);
01047 int PMPI_Info_set(MPI_Info, char *, char *);
01048 int PMPI_Pack_external(char *, void *, int, MPI_Datatype, void *, MPI_Aint,
01049 MPI_Aint *);
01050 int PMPI_Pack_external_size(char *, int, MPI_Datatype, MPI_Aint *);
01051 int PMPI_Request_get_status(MPI_Request, int *, MPI_Status *);
01052 int PMPI_Status_c2f(MPI_Status *, MPI_Fint *);
01053 int PMPI_Status_f2c(MPI_Fint *, MPI_Status *);
01054 int PMPI_Type_create_darray(int, int, int, int [], int [], int [], int [], int,
01055 MPI_Datatype, MPI_Datatype *);
01056 int PMPI_Type_create_hindexed(int, int [], MPI_Aint [], MPI_Datatype,
01057 MPI_Datatype *);
01058 int PMPI_Type_create_hvector(int, int, MPI_Aint, MPI_Datatype, MPI_Datatype *);
01059 int PMPI_Type_create_indexed_block(int, int, int [], MPI_Datatype,
01060 MPI_Datatype *);
01061 int PMPI_Type_create_resized(MPI_Datatype, MPI_Aint, MPI_Aint, MPI_Datatype *);
01062 int PMPI_Type_create_struct(int, int [], MPI_Aint [], MPI_Datatype [],
01063 MPI_Datatype *);
01064 int PMPI_Type_create_subarray(int, int [], int [], int [], int, MPI_Datatype,
01065 MPI_Datatype *);
01066 int PMPI_Type_get_extent(MPI_Datatype, MPI_Aint *, MPI_Aint *);
01067 int PMPI_Type_get_true_extent(MPI_Datatype, MPI_Aint *, MPI_Aint *);
01068 int PMPI_Unpack_external(char *, void *, MPI_Aint, MPI_Aint *, void *, int,
01069 MPI_Datatype);
01070 int PMPI_Win_create_errhandler(MPI_Win_errhandler_fn *, MPI_Errhandler *);
01071 int PMPI_Win_get_errhandler(MPI_Win, MPI_Errhandler *);
01072 int PMPI_Win_set_errhandler(MPI_Win, MPI_Errhandler);
01073 #endif
01074
01075
01076
01077 #define MPIIMPL_ADVERTISES_FEATURES 1
01078 #define MPIIMPL_HAVE_MPI_INFO 1
01079 #define MPIIMPL_HAVE_MPI_COMBINER_DARRAY 1
01080 #define MPIIMPL_HAVE_MPI_TYPE_CREATE_DARRAY 1
01081 #define MPIIMPL_HAVE_MPI_COMBINER_SUBARRAY 1
01082 #define MPIIMPL_HAVE_MPI_TYPE_CREATE_DARRAY 1
01083 #define MPIIMPL_HAVE_MPI_COMBINER_DUP 1
01084 #define MPIIMPL_HAVE_MPI_GREQUEST 1
01085 #define MPIIMPL_HAVE_STATUS_SET_BYTES 1
01086 #define MPIIMPL_HAVE_STATUS_SET_INFO 1
01087
01088 #include "mpio.h"
01089
01090 #if defined(__cplusplus)
01091 }
01092
01093
01094
01095
01096
01097
01098
01099
01100 #if !defined(MPICH_SKIP_MPICXX)
01101
01102
01103
01104 #include "mpicxx.h"
01105 #endif
01106 #endif
01107
01108 #endif