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

📄 mpi.h

📁 hl2 source code. Do not use it illegal.
💻 H
📖 第 1 页 / 共 3 页
字号:

#define MPI_VERSION    1
#define MPI_SUBVERSION 2
#define MPICH_NAME     1

/********************** MPI-2 FEATURES BEGIN HERE ***************************/
#define MPICH_HAS_C2F

/* for the datatype decoders */
#define MPI_COMBINER_NAMED         2312
#define MPI_COMBINER_CONTIGUOUS    2313
#define MPI_COMBINER_VECTOR        2314
#define MPI_COMBINER_HVECTOR       2315
#define MPI_COMBINER_INDEXED       2316
#define MPI_COMBINER_HINDEXED      2317
#define MPI_COMBINER_STRUCT        2318

/* for info */
typedef struct MPIR_Info *MPI_Info;
# define MPI_INFO_NULL         ((MPI_Info) 0)
# define MPI_MAX_INFO_KEY       255
# define MPI_MAX_INFO_VAL      1024

/* for subarray and darray constructors */
#define MPI_ORDER_C              56
#define MPI_ORDER_FORTRAN        57
#define MPI_DISTRIBUTE_BLOCK    121
#define MPI_DISTRIBUTE_CYCLIC   122
#define MPI_DISTRIBUTE_NONE     123
#define MPI_DISTRIBUTE_DFLT_DARG -49767

/* mpidefs.h includes configuration-specific information, such as the 
   type of MPI_Aint or MPI_Fint, also mpio.h, if it was built */
#include "mpidefs.h"

/* Handle conversion types/functions */

/* Programs that need to convert types used in MPICH should use these */
#define MPI_Comm_c2f(comm) (MPI_Fint)(comm)
#define MPI_Comm_f2c(comm) (MPI_Comm)(comm)
#define MPI_Type_c2f(datatype) (MPI_Fint)(datatype)
#define MPI_Type_f2c(datatype) (MPI_Datatype)(datatype)
#define MPI_Group_c2f(group) (MPI_Fint)(group)
#define MPI_Group_f2c(group) (MPI_Group)(group)
/* MPI_Request_c2f is a routine in src/misc2 */
#define MPI_Request_f2c(request) (MPI_Request)MPIR_ToPointer(request)
#define MPI_Op_c2f(op) (MPI_Fint)(op)
#define MPI_Op_f2c(op) (MPI_Op)(op)
#define MPI_Errhandler_c2f(errhandler) (MPI_Fint)(errhandler)
#define MPI_Errhandler_f2c(errhandler) (MPI_Errhandler)(errhandler)

/* For new MPI-2 types */
#define MPI_Win_c2f(win)   (MPI_Fint)(win)
#define MPI_Win_f2c(win)   (MPI_Win)(win)

#define MPI_STATUS_IGNORE (MPI_Status *)0
#define MPI_STATUSES_IGNORE (MPI_Status *)0

/* For supported thread levels */
#define MPI_THREAD_SINGLE 0
#define MPI_THREAD_FUNNELED 1
#define MPI_THREAD_SERIALIZED 2
#define MPI_THREAD_MULTIPLE 3

/********************** MPI-2 FEATURES END HERE ***************************/

/*************** Experimental MPICH FEATURES BEGIN HERE *******************/
/* Attribute keys.  These are set to MPI_KEYVAL_INVALID by default */
extern int MPICHX_QOS_BANDWIDTH;
/**************** Experimental MPICH FEATURES END HERE ********************/

/* MPI's error classes */
#include "mpi_errno.h"
/* End of MPI's error classes */




#if defined(WIN32_FORTRAN_STDCALL) &&!defined(FORTRAN_API)
/* This is used on Windows to distinguish between
  FORTRAN compilers that use STDCALL convention ond those
  that use C convention. */
#define FORTRAN_API __stdcall
#else
#define FORTRAN_API
#endif

#ifndef _NORETURN
#if (_MSC_VER >= 1200) && !defined(MIDL_PASS)
#define _NORETURN   __declspec(noreturn)
#else
#define _NORETURN
#endif
#endif


/*
 * Normally, we provide prototypes for all MPI routines.  In a few wierd
 * cases, we need to suppress the prototypes.
 */
#ifndef MPICH_SUPPRESS_PROTOTYPES
/* We require that the C compiler support prototypes */
IMPORT_MPI_API int MPI_Send(void*, int, MPI_Datatype, int, int, MPI_Comm);
IMPORT_MPI_API int MPI_Recv(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status *);
IMPORT_MPI_API int MPI_Get_count(MPI_Status *, MPI_Datatype, int *);
IMPORT_MPI_API int MPI_Bsend(void*, int, MPI_Datatype, int, int, MPI_Comm);
IMPORT_MPI_API int MPI_Ssend(void*, int, MPI_Datatype, int, int, MPI_Comm);
IMPORT_MPI_API int MPI_Rsend(void*, int, MPI_Datatype, int, int, MPI_Comm);
IMPORT_MPI_API int MPI_Buffer_attach( void*, int);
IMPORT_MPI_API int MPI_Buffer_detach( void*, int*);
IMPORT_MPI_API int MPI_Isend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int MPI_Ibsend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int MPI_Issend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int MPI_Irsend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int MPI_Irecv(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int MPI_Wait(MPI_Request *, MPI_Status *);
IMPORT_MPI_API int MPI_Test(MPI_Request *, int *, MPI_Status *);
IMPORT_MPI_API int MPI_Request_free(MPI_Request *);
IMPORT_MPI_API int MPI_Waitany(int, MPI_Request *, int *, MPI_Status *);
IMPORT_MPI_API int MPI_Testany(int, MPI_Request *, int *, int *, MPI_Status *);
IMPORT_MPI_API int MPI_Waitall(int, MPI_Request *, MPI_Status *);
IMPORT_MPI_API int MPI_Testall(int, MPI_Request *, int *, MPI_Status *);
IMPORT_MPI_API int MPI_Waitsome(int, MPI_Request *, int *, int *, MPI_Status *);
IMPORT_MPI_API int MPI_Testsome(int, MPI_Request *, int *, int *, MPI_Status *);
IMPORT_MPI_API int MPI_Iprobe(int, int, MPI_Comm, int *flag, MPI_Status *);
IMPORT_MPI_API int MPI_Probe(int, int, MPI_Comm, MPI_Status *);
IMPORT_MPI_API int MPI_Cancel(MPI_Request *);
IMPORT_MPI_API int MPI_Test_cancelled(MPI_Status *, int *);
IMPORT_MPI_API int MPI_Send_init(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int MPI_Bsend_init(void*, int, MPI_Datatype, int,int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int MPI_Ssend_init(void*, int, MPI_Datatype, int,int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int MPI_Rsend_init(void*, int, MPI_Datatype, int,int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int MPI_Recv_init(void*, int, MPI_Datatype, int,int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int MPI_Start(MPI_Request *);
IMPORT_MPI_API int MPI_Startall(int, MPI_Request *);
IMPORT_MPI_API int MPI_Sendrecv(void *, int, MPI_Datatype,int, int, void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status *);
IMPORT_MPI_API int MPI_Sendrecv_replace(void*, int, MPI_Datatype, int, int, int, int, MPI_Comm, MPI_Status *);
IMPORT_MPI_API int MPI_Type_contiguous(int, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int MPI_Type_vector(int, int, int, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int MPI_Type_hvector(int, int, MPI_Aint, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int MPI_Type_indexed(int, int *, int *, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int MPI_Type_hindexed(int, int *, MPI_Aint *, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int MPI_Type_struct(int, int *, MPI_Aint *, MPI_Datatype *, MPI_Datatype *);
IMPORT_MPI_API int MPI_Address(void*, MPI_Aint *);
IMPORT_MPI_API int MPI_Type_extent(MPI_Datatype, MPI_Aint *);
/* See the 1.1 version of the Standard; I think that the standard is in 
   error; however, it is the standard */
/* int MPI_Type_size(MPI_Datatype, MPI_Aint *size); */
IMPORT_MPI_API int MPI_Type_size(MPI_Datatype, int *);
/* This one has been removed from MPI.*/
/*IMPORT_MPI_API int MPI_Type_count(MPI_Datatype, int *);*/
IMPORT_MPI_API int MPI_Type_lb(MPI_Datatype, MPI_Aint*);
IMPORT_MPI_API int MPI_Type_ub(MPI_Datatype, MPI_Aint*);
IMPORT_MPI_API int MPI_Type_commit(MPI_Datatype *);
IMPORT_MPI_API int MPI_Type_free(MPI_Datatype *);
IMPORT_MPI_API int MPI_Get_elements(MPI_Status *, MPI_Datatype, int *);
IMPORT_MPI_API int MPI_Pack(void*, int, MPI_Datatype, void *, int, int *,  MPI_Comm);
IMPORT_MPI_API int MPI_Unpack(void*, int, int *, void *, int, MPI_Datatype, MPI_Comm);
IMPORT_MPI_API int MPI_Pack_size(int, MPI_Datatype, MPI_Comm, int *);
IMPORT_MPI_API int MPI_Barrier(MPI_Comm );
IMPORT_MPI_API int MPI_Bcast(void*, int, MPI_Datatype, int, MPI_Comm );
IMPORT_MPI_API int MPI_Gather(void* , int, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm); 
IMPORT_MPI_API int MPI_Gatherv(void* , int, MPI_Datatype, void*, int *, int *, MPI_Datatype, int, MPI_Comm); 
IMPORT_MPI_API int MPI_Scatter(void* , int, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm);
IMPORT_MPI_API int MPI_Scatterv(void* , int *, int *,  MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm);
IMPORT_MPI_API int MPI_Allgather(void* , int, MPI_Datatype, void*, int, MPI_Datatype, MPI_Comm);
IMPORT_MPI_API int MPI_Allgatherv(void* , int, MPI_Datatype, void*, int *, int *, MPI_Datatype, MPI_Comm);
IMPORT_MPI_API int MPI_Alltoall(void* , int, MPI_Datatype, void*, int, MPI_Datatype, MPI_Comm);
IMPORT_MPI_API int MPI_Alltoallv(void* , int *, int *, MPI_Datatype, void*, int *, int *, MPI_Datatype, MPI_Comm);
IMPORT_MPI_API int MPI_Reduce(void* , void*, int, MPI_Datatype, MPI_Op, int, MPI_Comm);
IMPORT_MPI_API int MPI_Op_create(MPI_User_function *, int, MPI_Op *);
IMPORT_MPI_API int MPI_Op_free( MPI_Op *);
IMPORT_MPI_API int MPI_Allreduce(void* , void*, int, MPI_Datatype, MPI_Op, MPI_Comm);
IMPORT_MPI_API int MPI_Reduce_scatter(void* , void*, int *, MPI_Datatype, MPI_Op, MPI_Comm);
IMPORT_MPI_API int MPI_Scan(void* , void*, int, MPI_Datatype, MPI_Op, MPI_Comm );
IMPORT_MPI_API int MPI_Group_size(MPI_Group group, int *);
IMPORT_MPI_API int MPI_Group_rank(MPI_Group group, int *);
IMPORT_MPI_API int MPI_Group_translate_ranks (MPI_Group, int, int *, MPI_Group, int *);
IMPORT_MPI_API int MPI_Group_compare(MPI_Group, MPI_Group, int *);
IMPORT_MPI_API int MPI_Comm_group(MPI_Comm, MPI_Group *);
IMPORT_MPI_API int MPI_Group_union(MPI_Group, MPI_Group, MPI_Group *);
IMPORT_MPI_API int MPI_Group_intersection(MPI_Group, MPI_Group, MPI_Group *);
IMPORT_MPI_API int MPI_Group_difference(MPI_Group, MPI_Group, MPI_Group *);
IMPORT_MPI_API int MPI_Group_incl(MPI_Group group, int, int *, MPI_Group *);
IMPORT_MPI_API int MPI_Group_excl(MPI_Group group, int, int *, MPI_Group *);
IMPORT_MPI_API int MPI_Group_range_incl(MPI_Group group, int, int [][3], MPI_Group *);
IMPORT_MPI_API int MPI_Group_range_excl(MPI_Group group, int, int [][3], MPI_Group *);
IMPORT_MPI_API int MPI_Group_free(MPI_Group *);
IMPORT_MPI_API int MPI_Comm_size(MPI_Comm, int *);
IMPORT_MPI_API int MPI_Comm_rank(MPI_Comm, int *);
IMPORT_MPI_API int MPI_Comm_compare(MPI_Comm, MPI_Comm, int *);
IMPORT_MPI_API int MPI_Comm_dup(MPI_Comm, MPI_Comm *);
IMPORT_MPI_API int MPI_Comm_create(MPI_Comm, MPI_Group, MPI_Comm *);
IMPORT_MPI_API int MPI_Comm_split(MPI_Comm, int, int, MPI_Comm *);
IMPORT_MPI_API int MPI_Comm_free(MPI_Comm *);
IMPORT_MPI_API int MPI_Comm_test_inter(MPI_Comm, int *);
IMPORT_MPI_API int MPI_Comm_remote_size(MPI_Comm, int *);
IMPORT_MPI_API int MPI_Comm_remote_group(MPI_Comm, MPI_Group *);
IMPORT_MPI_API int MPI_Intercomm_create(MPI_Comm, int, MPI_Comm, int, int, MPI_Comm * );
IMPORT_MPI_API int MPI_Intercomm_merge(MPI_Comm, int, MPI_Comm *);
IMPORT_MPI_API int MPI_Keyval_create(MPI_Copy_function *, MPI_Delete_function *, int *, void*);
IMPORT_MPI_API int MPI_Keyval_free(int *);
IMPORT_MPI_API int MPI_Attr_put(MPI_Comm, int, void*);
IMPORT_MPI_API int MPI_Attr_get(MPI_Comm, int, void *, int *);
IMPORT_MPI_API int MPI_Attr_delete(MPI_Comm, int);
IMPORT_MPI_API int MPI_Topo_test(MPI_Comm, int *);
IMPORT_MPI_API int MPI_Cart_create(MPI_Comm, int, int *, int *, int, MPI_Comm *);
IMPORT_MPI_API int MPI_Dims_create(int, int, int *);
IMPORT_MPI_API int MPI_Graph_create(MPI_Comm, int, int *, int *, int, MPI_Comm *);
IMPORT_MPI_API int MPI_Graphdims_get(MPI_Comm, int *, int *);
IMPORT_MPI_API int MPI_Graph_get(MPI_Comm, int, int, int *, int *);
IMPORT_MPI_API int MPI_Cartdim_get(MPI_Comm, int *);
IMPORT_MPI_API int MPI_Cart_get(MPI_Comm, int, int *, int *, int *);
IMPORT_MPI_API int MPI_Cart_rank(MPI_Comm, int *, int *);
IMPORT_MPI_API int MPI_Cart_coords(MPI_Comm, int, int, int *);
IMPORT_MPI_API int MPI_Graph_neighbors_count(MPI_Comm, int, int *);
IMPORT_MPI_API int MPI_Graph_neighbors(MPI_Comm, int, int, int *);
IMPORT_MPI_API int MPI_Cart_shift(MPI_Comm, int, int, int *, int *);
IMPORT_MPI_API int MPI_Cart_sub(MPI_Comm, int *, MPI_Comm *);
IMPORT_MPI_API int MPI_Cart_map(MPI_Comm, int, int *, int *, int *);
IMPORT_MPI_API int MPI_Graph_map(MPI_Comm, int, int *, int *, int *);
IMPORT_MPI_API int MPI_Get_processor_name(char *, int *);
IMPORT_MPI_API int MPI_Get_version(int *, int *);
IMPORT_MPI_API int MPI_Errhandler_create(MPI_Handler_function *, MPI_Errhandler *);
IMPORT_MPI_API int MPI_Errhandler_set(MPI_Comm, MPI_Errhandler);
IMPORT_MPI_API int MPI_Errhandler_get(MPI_Comm, MPI_Errhandler *);
IMPORT_MPI_API int MPI_Errhandler_free(MPI_Errhandler *);
IMPORT_MPI_API int MPI_Error_string(int, char *, int *);
IMPORT_MPI_API int MPI_Error_class(int, int *);
IMPORT_MPI_API double MPI_Wtime(void);
IMPORT_MPI_API double MPI_Wtick(void);
#ifndef MPI_Wtime
IMPORT_MPI_API double PMPI_Wtime(void);
IMPORT_MPI_API double PMPI_Wtick(void);
#endif
IMPORT_MPI_API int MPI_Init(int *, char ***);
IMPORT_MPI_API int MPI_Init_thread( int *, char ***, int, int * );
IMPORT_MPI_API int MPI_Finalize(void);
IMPORT_MPI_API int MPI_Initialized(int *);
_NORETURN IMPORT_MPI_API int MPI_Abort(MPI_Comm, int);

/* MPI-2 communicator naming functions */
IMPORT_MPI_API int MPI_Comm_set_name(MPI_Comm, char *);
IMPORT_MPI_API int MPI_Comm_get_name(MPI_Comm, char *, int *);

#ifdef HAVE_NO_C_CONST
/* Default Solaris compiler does not accept const but does accept prototypes */
#if defined(USE_STDARG) 
IMPORT_MPI_API int MPI_Pcontrol(int, ...);
#else
IMPORT_MPI_API int MPI_Pcontrol(int);
#endif
#else
IMPORT_MPI_API int MPI_Pcontrol(const int, ...);
#endif

IMPORT_MPI_API int MPI_NULL_COPY_FN ( MPI_Comm, int, void *, void *, void *, int * );
IMPORT_MPI_API int MPI_NULL_DELETE_FN ( MPI_Comm, int, void *, void * );
IMPORT_MPI_API int MPI_DUP_FN ( MPI_Comm, int, void *, void *, void *, int * );

/* misc2 (MPI2) */
IMPORT_MPI_API int MPI_Status_f2c( MPI_Fint *, MPI_Status * );
IMPORT_MPI_API int MPI_Status_c2f( MPI_Status *, MPI_Fint * );
IMPORT_MPI_API int MPI_Finalized( int * );
IMPORT_MPI_API int MPI_Type_create_indexed_block(int, int, int *, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int MPI_Type_get_envelope(MPI_Datatype, int *, int *, int *, int *); 
IMPORT_MPI_API int MPI_Type_get_contents(MPI_Datatype, int, int, int, int *, MPI_Aint *, MPI_Datatype *);
IMPORT_MPI_API int MPI_Type_create_subarray(int, int *, int *, int *, int, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int MPI_Type_create_darray(int, int, int, int *, int *, int *, int *, int, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int MPI_Info_create(MPI_Info *);
IMPORT_MPI_API int MPI_Info_set(MPI_Info, char *, char *);
IMPORT_MPI_API int MPI_Info_delete(MPI_Info, char *);
IMPORT_MPI_API int MPI_Info_get(MPI_Info, char *, int, char *, int *);
IMPORT_MPI_API int MPI_Info_get_valuelen(MPI_Info, char *, int *, int *);
IMPORT_MPI_API int MPI_Info_get_nkeys(MPI_Info, int *);
IMPORT_MPI_API int MPI_Info_get_nthkey(MPI_Info, int, char *);
IMPORT_MPI_API int MPI_Info_dup(MPI_Info, MPI_Info *);
IMPORT_MPI_API int MPI_Info_free(MPI_Info *info);

MPI_Fint MPI_Info_c2f(MPI_Info);
MPI_Info MPI_Info_f2c(MPI_Fint);
MPI_Fint MPI_Request_c2f( MPI_Request );

⌨️ 快捷键说明

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