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

📄 mpidi_ch3_impl.h

📁 mpi并行计算的c++代码 可用vc或gcc编译通过 可以用来搭建并行计算试验环境
💻 H
字号:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//* *  (C) 2001 by Argonne National Laboratory. *      See COPYRIGHT in top-level directory. */#if !defined(MPICH_MPIDI_CH3_IMPL_H_INCLUDED)#define MPICH_MPIDI_CH3_IMPL_H_INCLUDEDextern int MPIDI_CH3I_my_rank;#include "mpidi_ch3i_gasnet_conf.h"#include "mpidi_ch3_conf.h"#include "mpidimpl.h"#if defined(HAVE_ASSERT_H)#include <assert.h>#endif#ifndef MAXHOSTNAMELEN#define MAXHOSTNAMELEN 256#endifextern int MPIDI_CH3I_inside_handler;extern gasnet_token_t MPIDI_CH3I_gasnet_token;extern int MPIDI_CH3_packet_len;extern void *MPIDI_CH3_packet_buffer;#define CH3_NORMAL_QUEUE 0#define CH3_RNDV_QUEUE   1#define CH3_NUM_QUEUES   2extern struct MPID_Request *MPIDI_CH3I_sendq_head[CH3_NUM_QUEUES];extern struct MPID_Request *MPIDI_CH3I_sendq_tail[CH3_NUM_QUEUES];extern struct MPID_Request *MPIDI_CH3I_active_send[CH3_NUM_QUEUES];#define MPIDI_CH3I_SendQ_enqueue(req, queue)					\{										\    /* MT - not thread safe! */							\    MPIDI_DBG_PRINTF((50, FCNAME, "SendQ_enqueue req=0x%08x", req->handle));	\    req->dev.next = NULL;							\    if (MPIDI_CH3I_sendq_tail[queue] != NULL)					\    {										\	MPIDI_CH3I_sendq_tail[queue]->dev.next = req;				\    }										\    else									\    {										\	MPIDI_CH3I_sendq_head[queue] = req;					\    }										\    MPIDI_CH3I_sendq_tail[queue] = req;						\}#define MPIDI_CH3I_SendQ_enqueue_head(req, queue)			\{									\    /* MT - not thread safe! */						\    MPIDI_DBG_PRINTF((50, FCNAME, "SendQ_enqueue_head req=0x%08x",	\		      req->handle));					\    req->dev.next = MPIDI_CH3I_sendq_tail[queue];			\    if (MPIDI_CH3I_sendq_tail[queue] == NULL)				\    {									\	MPIDI_CH3I_sendq_tail[queue] = req;				\    }									\    MPIDI_CH3I_sendq_head[queue] = req;					\}#define MPIDI_CH3I_SendQ_dequeue(queue)						\{										\    /* MT - not thread safe! */							\    MPIDI_DBG_PRINTF((50, FCNAME, "SendQ_dequeue req=0x%08x",			\                      MPIDI_CH3I_sendq_head[queue]->handle));			\    MPIDI_CH3I_sendq_head[queue] = MPIDI_CH3I_sendq_head[queue]->dev.next;	\    if (MPIDI_CH3I_sendq_head[queue] == NULL)					\    {										\	MPIDI_CH3I_sendq_tail[queue] = NULL;					\    }										\}#define MPIDI_CH3I_SendQ_head(queue) (MPIDI_CH3I_sendq_head[queue])#define MPIDI_CH3I_SendQ_empty(queue) (MPIDI_CH3I_sendq_head[queue] == NULL)#ifndef MPIDI_CH3_GASNET_TAKES_IOVint gasnet_AMRequestMediumv0(gasnet_node_t dest, gasnet_handler_t handler,			     struct iovec *iov, size_t n_iov);#endifint MPIDI_CH3I_Progress_init(void);int MPIDI_CH3I_Progress_finalize(void);short MPIDI_CH3I_Listener_get_port(void);int MPIDI_CH3I_VC_post_connect(MPIDI_VC_t *);int MPIDI_CH3I_VC_post_read(MPIDI_VC_t *, MPID_Request *);int MPIDI_CH3I_VC_post_write(MPIDI_VC_t *, MPID_Request *);int MPIDI_CH3I_sock_errno_to_mpi_errno(char * fcname, int sock_errno);#endif /* !defined(MPICH_MPIDI_CH3_IMPL_H_INCLUDED) */

⌨️ 快捷键说明

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