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

📄 mpi.h

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

/* external */
IMPORT_MPI_API int MPI_Status_set_cancelled( MPI_Status *, int );
IMPORT_MPI_API int MPI_Status_set_elements( MPI_Status *, MPI_Datatype, int );


/*
 * single sided communication
 */

/* Window calls */

IMPORT_MPI_API int MPI_Alloc_mem (MPI_Aint, MPI_Info, void *);
IMPORT_MPI_API int MPI_Free_mem (void *);

#define MPI_MALLOC_ALIGNMENT 64
/* malloc() / free() wrapper - but not inside the MPI library! */
#if (defined MPI_MALLOC_WRAP) && !(defined MPID_DEVICE_CODE) && !(defined MPIR_LIB_CODE)
void *_mpi_malloc(size_t len);
#define malloc(s) _mpi_malloc(s)
#define free(s) MPI_Free_mem(s)
/* default address alignment for wrapper functions */
#endif

IMPORT_MPI_API int MPI_Win_create (void *, MPI_Aint, int, MPI_Info, MPI_Comm, MPI_Win *);
IMPORT_MPI_API int MPI_Win_free (MPI_Win *);
IMPORT_MPI_API int MPI_Win_get_attr (MPI_Win, int, void *, int *);
IMPORT_MPI_API int MPI_Win_get_group (MPI_Win, MPI_Group *);

/* Communication Calls */
IMPORT_MPI_API int MPI_Put (void *, int, MPI_Datatype, int, MPI_Aint, int, MPI_Datatype, MPI_Win);
IMPORT_MPI_API int MPI_Get (void *, int, MPI_Datatype, int, MPI_Aint, int, MPI_Datatype, MPI_Win);
IMPORT_MPI_API int MPI_Accumulate (void *, int, MPI_Datatype, int, MPI_Aint, int, MPI_Datatype, MPI_Op, MPI_Win);

/* Synchronization Calls */
IMPORT_MPI_API int MPI_Win_fence (int, MPI_Win);
IMPORT_MPI_API int MPI_Win_start (MPI_Group, int, MPI_Win);
IMPORT_MPI_API int MPI_Win_complete (MPI_Win);
IMPORT_MPI_API int MPI_Win_post (MPI_Group, int, MPI_Win);
IMPORT_MPI_API int MPI_Win_wait (MPI_Win);
IMPORT_MPI_API int MPI_Win_test (MPI_Win, int *);
IMPORT_MPI_API int MPI_Win_lock (int, int, int, MPI_Win);
IMPORT_MPI_API int MPI_Win_unlock (int, MPI_Win);

/* Error handlers */
IMPORT_MPI_API int MPI_Win_create_errhandler (	MPI_Win_errhandler_fn *, 
						MPI_Errhandler *);
IMPORT_MPI_API int MPI_Win_set_errhandler (MPI_Win , MPI_Errhandler);
IMPORT_MPI_API int MPI_Win_get_errhandler (MPI_Win , MPI_Errhandler *);




#endif /* MPICH_SUPPRESS_PROTOTYPES */



/* Here are the bindings of the profiling routines */
#if !defined(MPI_BUILD_PROFILING)
IMPORT_MPI_API int PMPI_Send(void*, int, MPI_Datatype, int, int, MPI_Comm);
IMPORT_MPI_API int PMPI_Recv(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status *);
IMPORT_MPI_API int PMPI_Get_count(MPI_Status *, MPI_Datatype, int *);
IMPORT_MPI_API int PMPI_Bsend(void*, int, MPI_Datatype, int, int, MPI_Comm);
IMPORT_MPI_API int PMPI_Ssend(void*, int, MPI_Datatype, int, int, MPI_Comm);
IMPORT_MPI_API int PMPI_Rsend(void*, int, MPI_Datatype, int, int, MPI_Comm);
IMPORT_MPI_API int PMPI_Buffer_attach( void* buffer, int);
IMPORT_MPI_API int PMPI_Buffer_detach( void* buffer, int*);
IMPORT_MPI_API int PMPI_Isend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int PMPI_Ibsend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int PMPI_Issend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int PMPI_Irsend(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int PMPI_Irecv(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int PMPI_Wait(MPI_Request *, MPI_Status *);
IMPORT_MPI_API int PMPI_Test(MPI_Request *, int *flag, MPI_Status *);
IMPORT_MPI_API int PMPI_Request_free(MPI_Request *);
IMPORT_MPI_API int PMPI_Waitany(int, MPI_Request *, int *, MPI_Status *);
IMPORT_MPI_API int PMPI_Testany(int, MPI_Request *, int *, int *, MPI_Status *);
IMPORT_MPI_API int PMPI_Waitall(int, MPI_Request *, MPI_Status *);
IMPORT_MPI_API int PMPI_Testall(int, MPI_Request *, int *flag, MPI_Status *);
IMPORT_MPI_API int PMPI_Waitsome(int, MPI_Request *, int *, int *, MPI_Status *);
IMPORT_MPI_API int PMPI_Testsome(int, MPI_Request *, int *, int *, MPI_Status *);
IMPORT_MPI_API int PMPI_Iprobe(int, int, MPI_Comm, int *flag, MPI_Status *);
IMPORT_MPI_API int PMPI_Probe(int, int, MPI_Comm, MPI_Status *);
IMPORT_MPI_API int PMPI_Cancel(MPI_Request *);
IMPORT_MPI_API int PMPI_Test_cancelled(MPI_Status *, int *flag);
IMPORT_MPI_API int PMPI_Send_init(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int PMPI_Bsend_init(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int PMPI_Ssend_init(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int PMPI_Rsend_init(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int PMPI_Recv_init(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *);
IMPORT_MPI_API int PMPI_Start(MPI_Request *);
IMPORT_MPI_API int PMPI_Startall(int, MPI_Request *);
IMPORT_MPI_API int PMPI_Sendrecv(void *, int, MPI_Datatype, int, int, void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status *);
IMPORT_MPI_API int PMPI_Sendrecv_replace(void*, int, MPI_Datatype, int, int, int, int, MPI_Comm, MPI_Status *);
IMPORT_MPI_API int PMPI_Type_contiguous(int, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int PMPI_Type_vector(int, int, int, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int PMPI_Type_hvector(int, int, MPI_Aint, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int PMPI_Type_indexed(int, int *, int *, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int PMPI_Type_hindexed(int, int *, MPI_Aint *, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int PMPI_Type_struct(int, int *, MPI_Aint *, MPI_Datatype *, MPI_Datatype *);
IMPORT_MPI_API int PMPI_Address(void*, MPI_Aint *);
IMPORT_MPI_API int PMPI_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 */
/* IMPORT_MPI_API int PMPI_Type_size(MPI_Datatype, MPI_Aint *); */
IMPORT_MPI_API int PMPI_Type_size(MPI_Datatype, int *);
IMPORT_MPI_API int PMPI_Type_count(MPI_Datatype, int *);
IMPORT_MPI_API int PMPI_Type_lb(MPI_Datatype, MPI_Aint*);
IMPORT_MPI_API int PMPI_Type_ub(MPI_Datatype, MPI_Aint*);
IMPORT_MPI_API int PMPI_Type_commit(MPI_Datatype *);
IMPORT_MPI_API int PMPI_Type_free(MPI_Datatype *);
IMPORT_MPI_API int PMPI_Get_elements(MPI_Status *, MPI_Datatype, int *);
IMPORT_MPI_API int PMPI_Pack(void*, int, MPI_Datatype, void *, int, int *,  MPI_Comm);
IMPORT_MPI_API int PMPI_Unpack(void*, int, int *, void *, int, MPI_Datatype, MPI_Comm);
IMPORT_MPI_API int PMPI_Pack_size(int, MPI_Datatype, MPI_Comm, int *);
IMPORT_MPI_API int PMPI_Barrier(MPI_Comm );
IMPORT_MPI_API int PMPI_Bcast(void* buffer, int, MPI_Datatype, int, MPI_Comm );
IMPORT_MPI_API int PMPI_Gather(void* , int, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm); 
IMPORT_MPI_API int PMPI_Gatherv(void* , int, MPI_Datatype, void*, int *, int *, MPI_Datatype, int, MPI_Comm); 
IMPORT_MPI_API int PMPI_Scatter(void* , int, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm);
IMPORT_MPI_API int PMPI_Scatterv(void* , int *, int *displs, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm);
IMPORT_MPI_API int PMPI_Allgather(void* , int, MPI_Datatype, void*, int, MPI_Datatype, MPI_Comm);
IMPORT_MPI_API int PMPI_Allgatherv(void* , int, MPI_Datatype, void*, int *, int *, MPI_Datatype, MPI_Comm);
IMPORT_MPI_API int PMPI_Alltoall(void* , int, MPI_Datatype, void*, int, MPI_Datatype, MPI_Comm);
IMPORT_MPI_API int PMPI_Alltoallv(void* , int *, int *, MPI_Datatype, void*, int *, int *, MPI_Datatype, MPI_Comm);
IMPORT_MPI_API int PMPI_Reduce(void* , void*, int, MPI_Datatype, MPI_Op, int, MPI_Comm);
IMPORT_MPI_API int PMPI_Op_create(MPI_User_function *, int, MPI_Op *);
IMPORT_MPI_API int PMPI_Op_free( MPI_Op *);
IMPORT_MPI_API int PMPI_Allreduce(void* , void*, int, MPI_Datatype, MPI_Op, MPI_Comm);
IMPORT_MPI_API int PMPI_Reduce_scatter(void* , void*, int *, MPI_Datatype, MPI_Op, MPI_Comm);
IMPORT_MPI_API int PMPI_Scan(void* , void*, int, MPI_Datatype, MPI_Op, MPI_Comm );
IMPORT_MPI_API int PMPI_Group_size(MPI_Group group, int *);
IMPORT_MPI_API int PMPI_Group_rank(MPI_Group group, int *);
IMPORT_MPI_API int PMPI_Group_translate_ranks (MPI_Group, int, int *, MPI_Group, int *);
IMPORT_MPI_API int PMPI_Group_compare(MPI_Group, MPI_Group, int *);
IMPORT_MPI_API int PMPI_Comm_group(MPI_Comm, MPI_Group *);
IMPORT_MPI_API int PMPI_Group_union(MPI_Group, MPI_Group, MPI_Group *);
IMPORT_MPI_API int PMPI_Group_intersection(MPI_Group, MPI_Group, MPI_Group *);
IMPORT_MPI_API int PMPI_Group_difference(MPI_Group, MPI_Group, MPI_Group *);
IMPORT_MPI_API int PMPI_Group_incl(MPI_Group group, int, int *, MPI_Group *);
IMPORT_MPI_API int PMPI_Group_excl(MPI_Group group, int, int *, MPI_Group *);
IMPORT_MPI_API int PMPI_Group_range_incl(MPI_Group group, int, int [][3], MPI_Group *);
IMPORT_MPI_API int PMPI_Group_range_excl(MPI_Group group, int, int [][3], MPI_Group *);
IMPORT_MPI_API int PMPI_Group_free(MPI_Group *);
IMPORT_MPI_API int PMPI_Comm_size(MPI_Comm, int *);
IMPORT_MPI_API int PMPI_Comm_rank(MPI_Comm, int *);
IMPORT_MPI_API int PMPI_Comm_compare(MPI_Comm, MPI_Comm, int *);
IMPORT_MPI_API int PMPI_Comm_dup(MPI_Comm, MPI_Comm *);
IMPORT_MPI_API int PMPI_Comm_create(MPI_Comm, MPI_Group, MPI_Comm *);
IMPORT_MPI_API int PMPI_Comm_split(MPI_Comm, int, int, MPI_Comm *);
IMPORT_MPI_API int PMPI_Comm_free(MPI_Comm *);
IMPORT_MPI_API int PMPI_Comm_test_inter(MPI_Comm, int *);
IMPORT_MPI_API int PMPI_Comm_remote_size(MPI_Comm, int *);
IMPORT_MPI_API int PMPI_Comm_remote_group(MPI_Comm, MPI_Group *);
IMPORT_MPI_API int PMPI_Intercomm_create(MPI_Comm, int, MPI_Comm, int, int, MPI_Comm *);
IMPORT_MPI_API int PMPI_Intercomm_merge(MPI_Comm, int, MPI_Comm *);
IMPORT_MPI_API int PMPI_Keyval_create(MPI_Copy_function *, MPI_Delete_function *, int *, void*);
IMPORT_MPI_API int PMPI_Keyval_free(int *);
IMPORT_MPI_API int PMPI_Attr_put(MPI_Comm, int, void*);
IMPORT_MPI_API int PMPI_Attr_get(MPI_Comm, int, void *, int *);
IMPORT_MPI_API int PMPI_Attr_delete(MPI_Comm, int);
IMPORT_MPI_API int PMPI_Topo_test(MPI_Comm, int *);
IMPORT_MPI_API int PMPI_Cart_create(MPI_Comm, int, int *, int *, int, MPI_Comm *);
IMPORT_MPI_API int PMPI_Dims_create(int, int, int *);
IMPORT_MPI_API int PMPI_Graph_create(MPI_Comm, int, int *, int *, int, MPI_Comm *);
IMPORT_MPI_API int PMPI_Graphdims_get(MPI_Comm, int *, int *);
IMPORT_MPI_API int PMPI_Graph_get(MPI_Comm, int, int, int *, int *);
IMPORT_MPI_API int PMPI_Cartdim_get(MPI_Comm, int *);
IMPORT_MPI_API int PMPI_Cart_get(MPI_Comm, int, int *, int *, int *);
IMPORT_MPI_API int PMPI_Cart_rank(MPI_Comm, int *, int *);
IMPORT_MPI_API int PMPI_Cart_coords(MPI_Comm, int, int, int *);
IMPORT_MPI_API int PMPI_Graph_neighbors_count(MPI_Comm, int, int *);
IMPORT_MPI_API int PMPI_Graph_neighbors(MPI_Comm, int, int, int *);
IMPORT_MPI_API int PMPI_Cart_shift(MPI_Comm, int, int, int *, int *);
IMPORT_MPI_API int PMPI_Cart_sub(MPI_Comm, int *, MPI_Comm *);
IMPORT_MPI_API int PMPI_Cart_map(MPI_Comm, int, int *, int *, int *);
IMPORT_MPI_API int PMPI_Graph_map(MPI_Comm, int, int *, int *, int *);
IMPORT_MPI_API int PMPI_Get_processor_name(char *, int *);
IMPORT_MPI_API int PMPI_Get_version(int *, int *);
IMPORT_MPI_API int PMPI_Errhandler_create(MPI_Handler_function *, MPI_Errhandler *);
IMPORT_MPI_API int PMPI_Errhandler_set(MPI_Comm, MPI_Errhandler);
IMPORT_MPI_API int PMPI_Errhandler_get(MPI_Comm, MPI_Errhandler *);
IMPORT_MPI_API int PMPI_Errhandler_free(MPI_Errhandler *);
IMPORT_MPI_API int PMPI_Error_string(int, char *, int *);
IMPORT_MPI_API int PMPI_Error_class(int, int *);

IMPORT_MPI_API int PMPI_Type_get_envelope(MPI_Datatype, int *, int *, int *, int *); 
IMPORT_MPI_API int PMPI_Type_get_contents(MPI_Datatype, int, int, int, int *, MPI_Aint *, MPI_Datatype *);
IMPORT_MPI_API int PMPI_Type_create_subarray(int, int *, int *, int *, int, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int PMPI_Type_create_darray(int, int, int, int *, int *, int *, int *, int, MPI_Datatype, MPI_Datatype *);
IMPORT_MPI_API int PMPI_Info_create(MPI_Info *);
IMPORT_MPI_API int PMPI_Info_set(MPI_Info, char *, char *);
IMPORT_MPI_API int PMPI_Info_delete(MPI_Info, char *);
IMPORT_MPI_API int PMPI_Info_get(MPI_Info, char *, int, char *, int *);
IMPORT_MPI_API int PMPI_Info_get_valuelen(MPI_Info, char *, int *, int *);
IMPORT_MPI_API int PMPI_Info_get_nkeys(MPI_Info, int *);
IMPORT_MPI_API int PMPI_Info_get_nthkey(MPI_Info, int, char *);
IMPORT_MPI_API int PMPI_Info_dup(MPI_Info, MPI_Info *);
IMPORT_MPI_API int PMPI_Info_free(MPI_Info *);

MPI_Fint PMPI_Info_c2f(MPI_Info);
MPI_Info PMPI_Info_f2c(MPI_Fint);

/* Wtime done above */
IMPORT_MPI_API int PMPI_Init(int *, char ***);
IMPORT_MPI_API int PMPI_Init_thread( int *, char ***, int, int * );
IMPORT_MPI_API int PMPI_Finalize(void);
IMPORT_MPI_API int PMPI_Initialized(int *);
IMPORT_MPI_API int PMPI_Abort(MPI_Comm, int);
/* MPI-2 communicator naming functions */
/* IMPORT_MPI_API int PMPI_Comm_set_name(MPI_Comm, char *); */
/* IMPORT_MPI_API int PMPI_Comm_get_name(MPI_Comm, char **); */
#ifdef HAVE_NO_C_CONST
/* Default Solaris compiler does not accept const but does accept prototypes */
#if defined(USE_STDARG) 
IMPORT_MPI_API int PMPI_Pcontrol(int, ...);
#else
IMPORT_MPI_API int PMPI_Pcontrol(int);
#endif
#else
IMPORT_MPI_API int PMPI_Pcontrol(const int, ...);
#endif

/* external */
IMPORT_MPI_API int PMPI_Status_set_cancelled( MPI_Status *, int );
IMPORT_MPI_API int PMPI_Status_set_elements( MPI_Status *, MPI_Datatype, int );

IMPORT_MPI_API int PMPI_Alloc_mem (MPI_Aint, MPI_Info, void *);
IMPORT_MPI_API int PMPI_Free_mem (void *);

/* Window management */
IMPORT_MPI_API int PMPI_Win_create (void *, MPI_Aint, int, MPI_Info, MPI_Comm, MPI_Win *);
IMPORT_MPI_API int PMPI_Win_free (MPI_Win *);
IMPORT_MPI_API int PMPI_Win_get_attr (MPI_Win, int, void *, int *);
IMPORT_MPI_API int PMPI_Win_get_group (MPI_Win, MPI_Group *);

/* Communication Calls */

IMPORT_MPI_API int PMPI_Put (void *, int, MPI_Datatype, int, MPI_Aint, int, MPI_Datatype, MPI_Win);
IMPORT_MPI_API int PMPI_Get (void *, int, MPI_Datatype, int, MPI_Aint, int, MPI_Datatype, MPI_Win);
IMPORT_MPI_API int PMPI_Accumulate (void *, int, MPI_Datatype, int, MPI_Aint, int, MPI_Datatype, MPI_Op, MPI_Win);

/* Synchronization Calls */

IMPORT_MPI_API int PMPI_Win_fence (int, MPI_Win);
IMPORT_MPI_API int PMPI_Win_start (MPI_Group, int, MPI_Win);
IMPORT_MPI_API int PMPI_Win_complete (MPI_Win);
IMPORT_MPI_API int PMPI_Win_post (MPI_Group, int, MPI_Win);
IMPORT_MPI_API int PMPI_Win_wait (MPI_Win);
IMPORT_MPI_API int PMPI_Win_test (MPI_Win, int *);
IMPORT_MPI_API int PMPI_Win_lock (int, int, int, MPI_Win);
IMPORT_MPI_API int PMPI_Win_unlock (int, MPI_Win);

/* Error handlers */

IMPORT_MPI_API int PMPI_Win_create_errhandler (	MPI_Win_errhandler_fn *, 
						MPI_Errhandler *);
IMPORT_MPI_API int PMPI_Win_set_errhandler (MPI_Win , MPI_Errhandler);
IMPORT_MPI_API int PMPI_Win_get_errhandler (MPI_Win , MPI_Errhandler *);

#endif  /* MPI_BUILD_PROFILING */
/* End of MPI bindings */

#if defined(__cplusplus)
}
/* Add the C++ bindings */
/* 
   If MPICH_SKIP_MPICXX is defined, the mpi++.h file will *not* be included.
   This is necessary, for example, when building the C++ interfaces.  It
   can also be used when you want to use a C++ compiler to compile C code,
   and do not want to load the C++ bindings
 */
#if defined(HAVE_MPI_CPP) && !defined(MPICH_SKIP_MPICXX)
#include "mpi++.h"
#endif 
#endif

#endif

⌨️ 快捷键说明

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