📄 mpi.h.in
字号:
/* * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. * Copyright (c) 2004-2006 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */#ifndef OMPI_MPI_H#define OMPI_MPI_H/* The comment below (and the ending partner) are for building fat distributions on platforms that support it. Please do not remove *//* @OMPI_BEGIN_CONFIGURE_SECTION@ */#ifndef OMPI_CONFIG_H/* Only include these if OMPI_CONFIG_H isn't defined (meaning if ompi_config.h hasn't already been included). Otherwise, we'll duplicate all those symbols. OMPI coding standards say that ompi_config.h must be included before all other files, so this should be good enough *//* Whether we have FORTRAN INTEGER*1 or not */#undef OMPI_HAVE_FORTRAN_INTEGER1/* Whether we have FORTRAN INTEGER*16 or not */#undef OMPI_HAVE_FORTRAN_INTEGER16/* Whether we have FORTRAN INTEGER*2 or not */#undef OMPI_HAVE_FORTRAN_INTEGER2/* Whether we have FORTRAN INTEGER*4 or not */#undef OMPI_HAVE_FORTRAN_INTEGER4/* Whether we have FORTRAN INTEGER*8 or not */#undef OMPI_HAVE_FORTRAN_INTEGER8/* Whether we have FORTRAN REAL*16 or not */#undef OMPI_HAVE_FORTRAN_REAL16/* Whether we have FORTRAN REAL*4 or not */#undef OMPI_HAVE_FORTRAN_REAL4/* Whether we have FORTRAN REAL*8 or not */#undef OMPI_HAVE_FORTRAN_REAL8/* Define to 1 if you have the <sys/time.h> header file. */#undef HAVE_SYS_TIME_H/* Define to 1 if the system has the type `long long'. */#undef HAVE_LONG_LONG/* The size of a `bool', as computed by sizeof. */#undef SIZEOF_BOOL/* The size of a `int', as computed by sizeof. */#undef SIZEOF_INT/* Type of MPI_Offset -- has to be defined here and typedef'ed later because mpi.h does not get AC SUBST's */#undef OMPI_MPI_OFFSET_TYPE/* type to use for ptrdiff_t, if it does not exist, set to ptrdiff_t if it does exist */#undef OMPI_PTRDIFF_TYPE/* Whether we want MPI cxx support or not */#undef OMPI_WANT_CXX_BINDINGS/* do we want to try to work around C++ bindings SEEK_* issue? */#undef OMPI_WANT_MPI_CXX_SEEK/* Whether a const_cast on a 2-d array will work with the C++ compiler */#undef OMPI_CXX_SUPPORTS_2D_CONST_CAST/* Whether we want the MPI f77 bindings or not */#undef OMPI_WANT_F77_BINDINGS/* Whether we want the MPI f90 bindings or not */#undef OMPI_WANT_F90_BINDINGS/* Whether or not we have compiled with C++ exceptions support */#undef OMPI_HAVE_CXX_EXCEPTION_SUPPORT/* MPI datatype corresponding to MPI_Offset */#undef OMPI_OFFSET_DATATYPE/* Define to 1 if you have the ANSI C header files. */#undef STDC_HEADERS/* Major, minor, and release version of Open MPI */#undef OMPI_MAJOR_VERSION#undef OMPI_MINOR_VERSION#undef OMPI_RELEASE_VERSION/* A type that allows us to have sentinel type values that are still valid */#undef ompi_fortran_bogus_type_t/* C type corresponding to FORTRAN INTEGER */#undef ompi_fortran_integer_t#ifndef OMPI_DECLSPEC#if defined(WIN32) || defined(_WIN32)#define OMPI_DECLSPEC __declspec(dllimport)#else#define OMPI_DECLSPEC#endif#endif#ifndef MPI_Fint/* MPI_Fint is the same as ompi_fortran_INTEGER_t */#define MPI_Fint ompi_fortran_integer_t#endif#endif /* #ifndef OMPI_CONFIG_H *//* @OMPI_END_CONFIGURE_SECTION@ *//* include for ptrdiff_t */#ifdef STDC_HEADERS#include <stddef.h>#endif#ifndef OMPI_BUILDING#define OMPI_BUILDING 0#endif/* * Just in case you need it. :-) */#define OPEN_MPI 1/* * MPI version */#define MPI_VERSION 2#define MPI_SUBVERSION 0/* * To accomodate programs written for MPI implementations that use a * straight ROMIO import */#if !OMPI_BUILDING#define MPIO_Request MPI_Request#define MPIO_Test MPI_Test#define MPIO_Wait MPI_Wait#endif#if defined(c_plusplus) || defined(__cplusplus)extern "C" {#endif/* * Typedefs */typedef OMPI_PTRDIFF_TYPE MPI_Aint;typedef OMPI_MPI_OFFSET_TYPE MPI_Offset;typedef struct ompi_communicator_t *MPI_Comm;typedef struct ompi_datatype_t *MPI_Datatype;typedef struct ompi_errhandler_t *MPI_Errhandler;typedef struct ompi_file_t *MPI_File;typedef struct ompi_group_t *MPI_Group;typedef struct ompi_info_t *MPI_Info;typedef struct ompi_op_t *MPI_Op;typedef struct ompi_request_t *MPI_Request;typedef struct ompi_status_public_t MPI_Status;typedef struct ompi_win_t *MPI_Win;/* * MPI_Status */struct ompi_status_public_t { int MPI_SOURCE; int MPI_TAG; int MPI_ERROR; int _count; int _cancelled;};typedef struct ompi_status_public_t ompi_status_public_t;/* * User typedefs */typedef int (MPI_Copy_function)(MPI_Comm, int, void *, void *, void *, int *);typedef int (MPI_Delete_function)(MPI_Comm, int, void *, void *);typedef int (MPI_Datarep_extent_function)(MPI_Datatype, MPI_Aint *, void *);typedef int (MPI_Datarep_conversion_function)(void *, MPI_Datatype, int, void *, MPI_Offset, void *);typedef void (MPI_Comm_errhandler_fn)(MPI_Comm *, int *, ...);typedef void (MPI_File_errhandler_fn)(MPI_File *, int *, ...);typedef void (MPI_Win_errhandler_fn)(MPI_Win *, int *, ...);typedef void (MPI_Handler_function)(MPI_Comm *, int *, ...);typedef void (MPI_User_function)(void *, void *, int *, MPI_Datatype *);typedef int (MPI_Comm_copy_attr_function)(MPI_Comm, int, void *, void *, void *, int *);typedef int (MPI_Comm_delete_attr_function)(MPI_Comm, int, void *, void *);typedef int (MPI_Type_copy_attr_function)(MPI_Datatype, int, void *, void *, void *, int *);typedef int (MPI_Type_delete_attr_function)(MPI_Datatype, int, void *, void *);typedef int (MPI_Win_copy_attr_function)(MPI_Win, int, void *, void *, void *, int *);typedef int (MPI_Win_delete_attr_function)(MPI_Win, int, void *, void *);typedef int (MPI_Grequest_query_function)(void *, MPI_Status *);typedef int (MPI_Grequest_free_function)(void *);typedef int (MPI_Grequest_cancel_function)(void *, int); /* * Miscellaneous constants */#define MPI_ANY_SOURCE -1 /* match any source rank */#define MPI_PROC_NULL -2 /* rank of null process */#define MPI_ROOT -4#define MPI_ANY_TAG -1 /* match any message tag */#define MPI_MAX_PROCESSOR_NAME 256 /* max proc. name length */#define MPI_MAX_ERROR_STRING 256 /* max error message length */#define MPI_MAX_OBJECT_NAME 64 /* max object name length */#define MPI_UNDEFINED -32766 /* undefined stuff */#define MPI_CART 1 /* cartesian topology */#define MPI_GRAPH 2 /* graph topology */#define MPI_KEYVAL_INVALID -1 /* invalid key value *//* * More constants */#define MPI_BOTTOM ((void *) 0) /* base reference address */#define MPI_IN_PLACE ((void *) 1) /* in place buffer */#define MPI_BSEND_OVERHEAD 128 /* size of bsend header + ptr */#define MPI_MAX_INFO_KEY 36 /* max info key length */#define MPI_MAX_INFO_VAL 256 /* max info value length */#define MPI_ARGV_NULL ((char **) 0) /* NULL argument vector */#define MPI_ARGVS_NULL ((char ***) 0) /* NULL argument vectors */#define MPI_ERRCODES_IGNORE ((int *) 0) /* don't return error codes */#define MPI_MAX_PORT_NAME 36 /* max port name length */#define MPI_MAX_NAME_LEN MPI_MAX_PORT_NAME /* max port name length */#define MPI_ORDER_C 0 /* C row major order */#define MPI_ORDER_FORTRAN 1 /* Fortran column major order */#define MPI_DISTRIBUTE_BLOCK 0 /* block distribution */#define MPI_DISTRIBUTE_CYCLIC 1 /* cyclic distribution */#define MPI_DISTRIBUTE_NONE 2 /* not distributed */#define MPI_DISTRIBUTE_DFLT_DARG (-1) /* default distribution arg */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -