⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpi.h.in

📁 MPI stands for the Message Passing Interface. Written by the MPI Forum (a large committee comprising
💻 IN
📖 第 1 页 / 共 5 页
字号:
/* * Since these values are arbitrary to Open MPI, we might as well make * them the same as ROMIO for ease of mapping.  These values taken * from ROMIO's mpio.h file. */#define MPI_MODE_CREATE              1  /* ADIO_CREATE */ #define MPI_MODE_RDONLY              2  /* ADIO_RDONLY */#define MPI_MODE_WRONLY              4  /* ADIO_WRONLY  */#define MPI_MODE_RDWR                8  /* ADIO_RDWR  */#define MPI_MODE_DELETE_ON_CLOSE    16  /* ADIO_DELETE_ON_CLOSE */#define MPI_MODE_UNIQUE_OPEN        32  /* ADIO_UNIQUE_OPEN */#define MPI_MODE_EXCL               64  /* ADIO_EXCL */#define MPI_MODE_APPEND            128  /* ADIO_APPEND */#define MPI_MODE_SEQUENTIAL        256  /* ADIO_SEQUENTIAL */#define MPI_DISPLACEMENT_CURRENT   -54278278#define MPI_SEEK_SET            600#define MPI_SEEK_CUR            602#define MPI_SEEK_END            604#define MPI_MAX_DATAREP_STRING  128/* * MPI-2 One-Sided Communications asserts */#define MPI_MODE_NOCHECK             1#define MPI_MODE_NOPRECEDE           2#define MPI_MODE_NOPUT               4#define MPI_MODE_NOSTORE             8#define MPI_MODE_NOSUCCEED          16#define MPI_LOCK_EXCLUSIVE           1#define MPI_LOCK_SHARED              2/* * Predefined attribute keyvals * * DO NOT CHANGE THE ORDER WITHOUT ALSO CHANGING THE ORDER IN * src/attribute/attribute_predefined.c and mpif.h.in. */enum {    /* MPI-1 */    MPI_TAG_UB,    MPI_HOST,    MPI_IO,    MPI_WTIME_IS_GLOBAL,    /* MPI-2 */    MPI_APPNUM,    MPI_LASTUSEDCODE,    MPI_UNIVERSE_SIZE,    MPI_WIN_BASE,    MPI_WIN_SIZE,    MPI_WIN_DISP_UNIT,    /* Even though these four are IMPI attributes, they need to be there       for all MPI jobs */    IMPI_CLIENT_SIZE,    IMPI_CLIENT_COLOR,    IMPI_HOST_SIZE,    IMPI_HOST_COLOR};/* * Error classes and codes * Do not change the values of these without also modifying mpif.h.in. */#define MPI_SUCCESS                   0  #define MPI_ERR_BUFFER                1#define MPI_ERR_COUNT                 2#define MPI_ERR_TYPE                  3#define MPI_ERR_TAG                   4#define MPI_ERR_COMM                  5#define MPI_ERR_RANK                  6#define MPI_ERR_REQUEST               7#define MPI_ERR_ROOT                  8#define MPI_ERR_GROUP                 9#define MPI_ERR_OP                    10#define MPI_ERR_TOPOLOGY              11#define MPI_ERR_DIMS                  12#define MPI_ERR_ARG                   13#define MPI_ERR_UNKNOWN               14#define MPI_ERR_TRUNCATE              15#define MPI_ERR_OTHER                 16#define MPI_ERR_INTERN                17#define MPI_ERR_IN_STATUS             18#define MPI_ERR_PENDING               19#define MPI_ERR_ACCESS                20#define MPI_ERR_AMODE                 21#define MPI_ERR_ASSERT                22#define MPI_ERR_BAD_FILE              23#define MPI_ERR_BASE                  24#define MPI_ERR_CONVERSION            25#define MPI_ERR_DISP                  26#define MPI_ERR_DUP_DATAREP           27#define MPI_ERR_FILE_EXISTS           28#define MPI_ERR_FILE_IN_USE           29#define MPI_ERR_FILE                  30#define MPI_ERR_INFO_KEY              31#define MPI_ERR_INFO_NOKEY            32#define MPI_ERR_INFO_VALUE            33#define MPI_ERR_INFO                  34#define MPI_ERR_IO                    35#define MPI_ERR_KEYVAL                36#define MPI_ERR_LOCKTYPE              37#define MPI_ERR_NAME                  38#define MPI_ERR_NO_MEM                39#define MPI_ERR_NOT_SAME              40#define MPI_ERR_NO_SPACE              41#define MPI_ERR_NO_SUCH_FILE          42#define MPI_ERR_PORT                  43#define MPI_ERR_QUOTA                 44#define MPI_ERR_READ_ONLY             45#define MPI_ERR_RMA_CONFLICT          46#define MPI_ERR_RMA_SYNC              47#define MPI_ERR_SERVICE               48#define MPI_ERR_SIZE                  49#define MPI_ERR_SPAWN                 50#define MPI_ERR_UNSUPPORTED_DATAREP   51#define MPI_ERR_UNSUPPORTED_OPERATION 52#define MPI_ERR_WIN                   53#define MPI_ERR_LASTCODE              54#define MPI_ERR_SYSRESOURCE          -2/* * Comparison results.  Don't change the order of these, the group * comparison functions rely on it. * Do not change the order of these without also modifying mpif.h.in. */enum {  MPI_IDENT,  MPI_CONGRUENT,  MPI_SIMILAR,  MPI_UNEQUAL};/* * MPI_Init_thread constants * Do not change the order of these without also modifying mpif.h.in. */enum {  MPI_THREAD_SINGLE,  MPI_THREAD_FUNNELED,  MPI_THREAD_SERIALIZED,  MPI_THREAD_MULTIPLE};/* * Datatype combiners. * Do not change the order of these without also modifying mpif.h.in. */enum {  MPI_COMBINER_NAMED,  MPI_COMBINER_DUP,  MPI_COMBINER_CONTIGUOUS,  MPI_COMBINER_VECTOR,  MPI_COMBINER_HVECTOR_INTEGER,  MPI_COMBINER_HVECTOR,  MPI_COMBINER_INDEXED,  MPI_COMBINER_HINDEXED_INTEGER,  MPI_COMBINER_HINDEXED,  MPI_COMBINER_INDEXED_BLOCK,  MPI_COMBINER_STRUCT_INTEGER,  MPI_COMBINER_STRUCT,  MPI_COMBINER_SUBARRAY,  MPI_COMBINER_DARRAY,  MPI_COMBINER_F90_REAL,  MPI_COMBINER_F90_COMPLEX,  MPI_COMBINER_F90_INTEGER,  MPI_COMBINER_RESIZED};/* * NULL handles */#define MPI_GROUP_NULL (&ompi_mpi_group_null)#define MPI_COMM_NULL (&ompi_mpi_comm_null)#define MPI_REQUEST_NULL (&ompi_request_null)#define MPI_OP_NULL (&ompi_mpi_op_null)#define MPI_ERRHANDLER_NULL (&ompi_mpi_errhandler_null)#define MPI_INFO_NULL (&ompi_mpi_info_null)#define MPI_WIN_NULL (&ompi_mpi_win_null)#define MPI_FILE_NULL (&ompi_mpi_file_null)#define MPI_STATUS_IGNORE ((MPI_Status *) 0)#define MPI_STATUSES_IGNORE ((MPI_Status *) 0)/* MPI-2 specifies that the name "MPI_TYPE_NULL_DELETE_FN" (and all   related friends) must be accessible in C, C++, and Fortran. This is   unworkable if the back-end Fortran compiler uses all caps for its   linker symbol convention -- it results in two functions with   different signatures that have the same name (i.e., both C and   Fortran use the symbol MPI_TYPE_NULL_DELETE_FN).  So we have to   #define the C names to be something else, so that they names are   *accessed* through MPI_TYPE_NULL_DELETE_FN, but their actual symbol   name is different.   However, this file is included when the fortran wrapper functions   are compiled in Open MPI, so we do *not* want these #defines in   this case (i.e., we need the Fortran wrapper function to be   compiled as MPI_TYPE_NULL_DELETE_FN).  So add some #if kinds of   protection for this case. */#if !defined(OMPI_COMPILING_F77_WRAPPERS)#define MPI_NULL_DELETE_FN OMPI_C_MPI_NULL_DELETE_FN#define MPI_NULL_COPY_FN OMPI_C_MPI_NULL_COPY_FN#define MPI_DUP_FN OMPI_C_MPI_DUP_FN#define MPI_TYPE_NULL_DELETE_FN OMPI_C_MPI_TYPE_NULL_DELETE_FN#define MPI_TYPE_NULL_COPY_FN OMPI_C_MPI_TYPE_NULL_COPY_FN#define MPI_TYPE_DUP_FN OMPI_C_MPI_TYPE_DUP_FN#define MPI_COMM_NULL_DELETE_FN OMPI_C_MPI_COMM_NULL_DELETE_FN#define MPI_COMM_NULL_COPY_FN OMPI_C_MPI_COMM_NULL_COPY_FN#define MPI_COMM_DUP_FN OMPI_C_MPI_COMM_DUP_FN#define MPI_WIN_NULL_DELETE_FN OMPI_C_MPI_WIN_NULL_DELETE_FN#define MPI_WIN_NULL_COPY_FN OMPI_C_MPI_WIN_NULL_COPY_FN#define MPI_WIN_DUP_FN OMPI_C_MPI_WIN_DUP_FN#endifOMPI_DECLSPEC int OMPI_C_MPI_TYPE_NULL_DELETE_FN( MPI_Datatype datatype,                                                   int type_keyval,                                                  void* attribute_val_out,                                                   void* extra_state );OMPI_DECLSPEC int OMPI_C_MPI_TYPE_NULL_COPY_FN( MPI_Datatype datatype,                                                 int type_keyval,                                                 void* extra_state,                                                void* attribute_val_in,                                                 void* attribute_val_out,                                                 int* flag );OMPI_DECLSPEC int OMPI_C_MPI_TYPE_DUP_FN( MPI_Datatype datatype,                                           int type_keyval,                                           void* extra_state,                                           void* attribute_val_in,                                           void* attribute_val_out,                                           int* flag );OMPI_DECLSPEC int OMPI_C_MPI_COMM_NULL_DELETE_FN( MPI_Comm comm,                                                   int comm_keyval,                                                  void* attribute_val_out,                                                   void* extra_state );OMPI_DECLSPEC int OMPI_C_MPI_COMM_NULL_COPY_FN( MPI_Comm comm,                                                 int comm_keyval,                                                 void* extra_state,                                                 void* attribute_val_in,                                                void* attribute_val_out,                                                 int* flag );OMPI_DECLSPEC int OMPI_C_MPI_COMM_DUP_FN( MPI_Comm comm, int comm_keyval,                                           void* extra_state,                                          void* attribute_val_in, 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -