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

📄 mpidpost.h

📁 刚才是说明 现在是安装程序在 LINUX环境下进行编程的MPICH安装文件
💻 H
字号:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//* *  (C) 2001 by Argonne National Laboratory. *      See COPYRIGHT in top-level directory. */#if !defined(MPICH_MPIDPOST_H_INCLUDED)#define MPICH_MPIDPOST_H_INCLUDED/* * Channel API prototypes */int MPIDI_CH3_Init(int *, int *, int *);int MPIDI_CH3_Finalize(void);void MPIDI_CH3_InitParent(MPID_Comm *);MPID_Request * MPIDI_CH3_iStartMsg(MPIDI_VC *, void *, MPIDI_msg_sz_t);MPID_Request * MPIDI_CH3_iStartMsgv(MPIDI_VC *, MPID_IOV *, int);void MPIDI_CH3_iSendv(MPIDI_VC *, MPID_Request *, MPID_IOV *, int);void MPIDI_CH3_iSend(MPIDI_VC *, MPID_Request *, void *, MPIDI_msg_sz_t);void MPIDI_CH3_iWrite(MPIDI_VC *, MPID_Request *);void MPIDI_CH3_iRead(MPIDI_VC *, MPID_Request *);int MPIDI_CH3_Cancel_send(MPIDI_VC *, MPID_Request *);MPID_Request * MPIDI_CH3_Request_create(void);void MPIDI_CH3_Request_add_ref(MPID_Request *);void MPIDI_CH3_Request_release_ref(MPID_Request *, int *);void MPIDI_CH3_Request_destroy(MPID_Request *);void MPIDI_CH3_Progress_start(void);void MPIDI_CH3_Progress_end(void);int MPIDI_CH3_Progress(int);void MPIDI_CH3_Progress_poke(void);void MPIDI_CH3_Progress_signal_completion(void);int MPIDI_CH3_Comm_spawn(const char *, const char *[], const int , MPI_Info,			 const int, MPID_Comm *, MPID_Comm *, int []);/* * Channel utility prototypes */void MPIDI_CH3U_Handle_recv_pkt(MPIDI_VC *, MPIDI_CH3_Pkt_t *);void MPIDI_CH3U_Handle_recv_req(MPIDI_VC *, MPID_Request *);void MPIDI_CH3U_Handle_send_req(MPIDI_VC *, MPID_Request *);MPID_Request * MPIDI_CH3U_Request_FU(int, int, int);MPID_Request * MPIDI_CH3U_Request_FDU(MPI_Request, MPIDI_Message_match *);MPID_Request * MPIDI_CH3U_Request_FDU_or_AEP(int, int, int, int *);int MPIDI_CH3U_Request_DP(MPID_Request *);MPID_Request * MPIDI_CH3U_Request_FDP(MPIDI_Message_match *);MPID_Request * MPIDI_CH3U_Request_FDP_or_AEU(MPIDI_Message_match *, int *);void MPIDI_CH3U_Request_incrementt_cc(MPID_Request *);void MPIDI_CH3U_Request_decrement_cc(MPID_Request *, int *);int MPIDI_CH3U_Request_load_send_iov(MPID_Request * const, MPID_IOV * const, int * const);int MPIDI_CH3U_Request_load_recv_iov(MPID_Request * const);int MPIDI_CH3U_Request_unpack_uebuf(MPID_Request *);int MPIDI_CH3U_Request_unpack_srbuf(MPID_Request *);void MPIDI_CH3U_Buffer_copy(const void * const, int, MPI_Datatype, int *,			    void * const, int, MPI_Datatype, MPIDI_msg_sz_t *,			    int *);/* Include definitions from the channel which require items defined by this file (mpidimpl.h) or the file it includes   (mpiimpl.h).  NOTE: This include requires the device to copy mpidi_ch3_post.h to the src/include directory in the build   tree. */#include "mpidi_ch3_post.h"/* * Request utility macros (public - can be used in MPID macros) */#if defined(MPICH_SINGLE_THREADED)/* SHMEM: In the case of a single-threaded shmem channel sharing requests between processes, a write barrier must be performed   before decrementing the completion counter.  This insures that other fields in the req structure are updated before the   completion is signaled.  How should that be incorporated into this code at the device level? */#define MPIDI_CH3U_Request_decrement_cc(_req, _flagp)	\{							\    *(_flagp) = --(*(_req)->cc_ptr);			\}#else/* MT: A write barrier must be performed before decrementing the completion counter .  This insures that other fields in the req   structure are updated before the completion is signaled. */#error Multi-threaded MPIDI_CH3U_Request_decrement_cc() not implemented.#endif#if defined(MPICH_SINGLE_THREADED)#define MPIDI_CH3U_Request_increment_cc(_req)	\{						\    (*(_req)->cc_ptr)++;			\}#else#error Multi-threaded MPIDI_CH3U_Request_increment_cc() not implemented.#endif/* * Device level request management macros */#define MPID_Request_create() (MPIDI_CH3_Request_create())#define MPID_Request_release(_req)			\{							\    int ref_count;					\							\    MPIDI_CH3_Request_release_ref((_req), &ref_count);	\    if (ref_count == 0)					\    {							\	MPIDI_CH3_Request_destroy(_req);		\    }							\}#if defined(MPICH_SINGLE_THREADED)#define MPID_Request_set_complete(_req)		\{						\    *(_req)->cc_ptr = 0;			\    MPIDI_CH3_Progress_signal_completion();	\}#else/* MT - A write barrier must be performed before decrementing the completion   counter .  This insures that other fields in the req structure are updated   before the completion is signaled. */#error Multi-threaded MPID_Request_set_complete() not implemented.#endif/* * Device level progress engine macros * * MT - these macros need thread-safety updates */#define MPID_Progress_start()#define MPID_Progress_end()#define MPID_Progress_test() (MPIDI_CH3_Progress(FALSE))#define MPID_Progress_wait() {MPIDI_CH3_Progress(TRUE);}#define MPID_Progress_poke() {MPIDI_CH3_Progress_poke();}#endif /* !defined(MPICH_MPIDPOST_H_INCLUDED) */

⌨️ 快捷键说明

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