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

📄 mpid_nem_post.h

📁 fortran并行计算包
💻 H
字号:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//* *  (C) 2006 by Argonne National Laboratory. *      See COPYRIGHT in top-level directory. */#ifndef MPID_NEM_POST_H#define MPID_NEM_POST_Hstruct MPIDI_PG;/* FIXME: Do not export these definitions all the way into mpiimpl.h (which   will happen if this is included in mpidpost.h or mpidpre.h) */int MPID_nem_init(int rank, struct MPIDI_PG *pg_p);int _MPID_nem_init(int rank, struct MPIDI_PG *pg_p, int ckpt_restart);int MPID_nem_finalize(void);int MPID_nem_ckpt_shutdown(void);int MPID_nem_barrier_init(MPID_nem_barrier_t *barrier_region);int MPID_nem_barrier(int num_processes, int rank);int MPID_nem_vc_init(struct MPIDI_VC *vc, const char *business_card);int MPID_nem_vc_destroy(struct MPIDI_VC *vc);int MPID_nem_get_business_card(int myRank, char *value, int length);int MPID_nem_connect_to_root(const char *port_name, struct MPIDI_VC *new_vc);int MPID_nem_lmt_shm_progress(void);int MPID_nem_vc_terminate(struct MPIDI_VC *vc);#ifdef ENABLED_CHECKPOINTINGint MPID_nem_ckpt_init (int ckpt_restart);void MPID_nem_ckpt_finalize (void);void MPID_nem_ckpt_maybe_take_checkpoint (void);void MPID_nem_ckpt_got_marker (MPID_nem_cell_ptr_t *cell, int *in_fbox);void MPID_nem_ckpt_log_message (MPID_nem_cell_ptr_t cell);void MPID_nem_ckpt_send_markers (void);int MPID_nem_ckpt_replay_message (MPID_nem_cell_ptr_t *cell);void MPID_nem_ckpt_free_msg_log (void);#endif/* one-sided */typedef struct MPID_nem_mpich2_win{    char *handle;               /* shared-memory segment handle */    int   proc;                 /* rank of owner */    void *home_address;         /* address of window at owner */    int   len;                  /* size of window */    void *local_address;        /* address of window at this process */}MPID_nem_mpich2_win_t;int MPID_nem_mpich2_alloc_win (void **buf, int len, MPID_nem_mpich2_win_t **win);int MPID_nem_mpich2_free_win (MPID_nem_mpich2_win_t *win);int MPID_nem_mpich2_attach_win (void **buf, MPID_nem_mpich2_win_t *remote_win);int MPID_nem_mpich2_detach_win (MPID_nem_mpich2_win_t *remote_win);int MPID_nem_mpich2_serialize_win (void *buf, int buf_len, MPID_nem_mpich2_win_t *win, int *len);int MPID_nem_mpich2_deserialize_win (void *buf, int buf_len, MPID_nem_mpich2_win_t **win);int MPID_nem_mpich2_win_put (void *s_buf, void *d_buf, int len, MPID_nem_mpich2_win_t *remote_win);int MPID_nem_mpich2_win_putv (struct iovec **s_iov, int *s_niov, struct iovec **d_iov, int *d_niov, MPID_nem_mpich2_win_t *remote_win);int MPID_nem_mpich2_win_get (void *s_buf, void *d_buf, int len, MPID_nem_mpich2_win_t *remote_win);int MPID_nem_mpich2_win_getv (struct iovec **s_iov, int *s_niov, struct iovec **d_iov, int *d_niov, MPID_nem_mpich2_win_t *remote_win);int MPID_nem_mpich2_register_memory (void *buf, int len);int MPID_nem_mpich2_deregister_memory (void *buf, int len);int MPID_nem_mpich2_put (void *s_buf, void *d_buf, int len, int proc, int *completion_ctr);int MPID_nem_mpich2_putv (struct iovec **s_iov, int *s_niov, struct iovec **d_iov, int *d_niov, int proc,		       int *completion_ctr);int MPID_nem_mpich2_get (void *s_buf, void *d_buf, int len, int proc, int *completion_ctr);int MPID_nem_mpich2_getv (struct iovec **s_iov, int *s_niov, struct iovec **d_iov, int *d_niov, int proc,		       int *completion_ctr);     #define MPID_nem_mpich2_win_put_val(val, d_buf, remote_win) do {			\    char *_d_buf = d_buf;								\											\    _d_buf += (char *)(remote_win)->local_address - (char *)(remote_win)->home_address;	\											\    *(typeof (val) *)_d_buf = val;							\} while (0)     #define MPID_nem_mpich2_win_get_val(s_buf, val, remote_win) do {			\    char *_s_buf = s_buf;								\											\    _s_buf += (char *)(remote_win)->local_address - (char *)(remote_win)->home_address;	\											\    *(val) = *(typeof (*(val)) *)_s_buf;						\} while (0)#if !defined (MPID_NEM_INLINE) || !MPID_NEM_INLINEint MPID_nem_mpich2_send_ckpt_marker(unsigned short wave, struct MPIDI_VC *vc, int *again);int MPID_nem_mpich2_send_header(void* buf, int size, struct MPIDI_VC *vc, int *again);int MPID_nem_mpich2_sendv(struct iovec **iov, int *n_iov, struct MPIDI_VC *vc, int *again);int MPID_nem_mpich2_sendv_header(struct iovec **iov, int *n_iov, struct MPIDI_VC *vc, int *again);void MPID_nem_mpich2_send_seg(MPID_Segment segment, MPIDI_msg_sz_t *segment_first, MPIDI_msg_sz_t segment_sz, struct MPIDI_VC *vc, int *again);void MPID_nem_mpich2_send_seg_header(MPID_Segment segment, MPIDI_msg_sz_t *segment_first, MPIDI_msg_sz_t segment_size,                                     void *header, MPIDI_msg_sz_t header_sz, struct MPIDI_VC *vc, int *again);int MPID_nem_mpich2_test_recv(MPID_nem_cell_ptr_t *cell, int *in_fbox);int MPID_nem_mpich2_test_recv_wait(MPID_nem_cell_ptr_t *cell, int *in_fbox, int timeout);int MPID_nem_recv_seqno_matches(MPID_nem_queue_ptr_t qhead) ;int MPID_nem_mpich2_blocking_recv(MPID_nem_cell_ptr_t *cell, int *in_fbox);int MPID_nem_mpich2_release_cell(MPID_nem_cell_ptr_t cell, struct MPIDI_VC *vc);int MPID_nem_mpich2_enqueue_fastbox(int local_rank);int MPID_nem_mpich2_dequeue_fastbox(int local_rank);#endif /* MPID_NEM_INLINE */#endif /* MPID_NEM_POST_H */

⌨️ 快捷键说明

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