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

📄 mpidimpl.h

📁 fortran并行计算包
💻 H
📖 第 1 页 / 共 5 页
字号:
E*/int MPIDI_CH3_Abort(int exit_code, char * error_msg);/* FIXME: Move these prototypes into header files in the appropriate    util directories  *//* added by brad.  upcalls for MPIDI_CH3_Init that contain code which could be    executed by two or more channels */int MPIDI_CH3U_Init_sock(int has_parent, MPIDI_PG_t * pg_p, int pg_rank,                         char **bc_val_p, int *val_max_sz_p);int MPIDI_CH3U_Init_sshm(int has_parent, MPIDI_PG_t * pg_p, int pg_rank,                         char **bc_val_p, int *val_max_sz_p);int MPIDI_SHM_InitRWProc( pid_t, int * );int MPIDI_SHM_AttachProc( pid_t );int MPIDI_SHM_DetachProc( pid_t );int MPIDI_SHM_ReadProcessMemory( int, int, const char *, char *, size_t );/* added by brad.  business card related global and functions *//* FIXME: Make these part of the channel support headers */#define MAX_HOST_DESCRIPTION_LEN 256int MPIDI_CH3U_Get_business_card_sock(int myRank, 				      char **bc_val_p, int *val_max_sz_p);int MPIDI_CH3U_Get_business_card_sshm(char **bc_val_p, int *val_max_sz_p);int MPIDI_CH3_Get_business_card(int myRank, char *value, int length);/* added by brad.  finalization related upcalls */int MPIDI_CH3U_Finalize_sshm(void);/* * Channel upcall prototypes *//*E  MPIDI_CH3U_Handle_recv_pkt- Handle a freshly received CH3 packet.  Input Parameters:+ vc - virtual connection over which the packet was received- pkt - pointer to the CH3 packet  Output Parameter:. rreqp - receive request defining data to be received; may be NULL  NOTE:  Multiple threads may not simultaneously call this routine with the same   virtual connection.  This constraint eliminates the  need to lock the VC and thus improves performance.  If simultaneous upcalls   for a single VC are a possible, then the calling  routine must serialize the calls (perhaps by locking the VC).  Special   consideration may need to be given to packet ordering  if the channel has made guarantees about ordering.E*/int MPIDI_CH3U_Handle_recv_pkt(MPIDI_VC_t * vc, MPIDI_CH3_Pkt_t * pkt, 			       MPIDI_msg_sz_t *buflen, MPID_Request ** rreqp);/*@  MPIDI_CH3U_Handle_recv_req - Process a receive request for which all of the   data has been received (and copied) into the  buffers described by the request's IOV.  Input Parameters:+ vc - virtual connection over which the data was received- rreq - pointer to the receive request object  Output Parameter:. complete - data transfer for the request has completed@*/int MPIDI_CH3U_Handle_recv_req(MPIDI_VC_t * vc, MPID_Request * rreq, 			       int * complete);/* Handle_send_req invokes the action (method/function) when data    becomes available.  It is an obsolete routine; the completion    function should be invoked directly.  */int MPIDI_CH3U_Handle_send_req(MPIDI_VC_t * vc, MPID_Request * sreq, 			       int *complete);int MPIDI_CH3U_Handle_connection(MPIDI_VC_t * vc, MPIDI_VC_Event_t event);int MPIDI_CH3U_VC_SendClose( MPIDI_VC_t *vc, int rank );int MPIDI_CH3U_VC_WaitForClose( void );#ifdef MPIDI_CH3_HAS_CHANNEL_CLOSEint MPIDI_CH3_Channel_close( void );#else#define MPIDI_CH3_Channel_close( )   MPI_SUCCESS#endif/*@  MPIDI_CH3_Pre_init - Allows the channel to initialize before PMI_init is   called, and allows the  channel to optionally set the rank, size, and whether this process has a   parent.  Output Parameters:+ setvals - boolean value that is true if this function set has_parent, rank,   and size. has_parent - boolean value that is true if this MPI job was spawned by   another set of MPI processes. rank - rank of this process in the process group- size - number of processes in the process group  Return value:  A MPI error code.  Notes:  This function is optional, and is used only when HAVE_CH3_PRE_INIT is   defined.  It is called by CH3 before PMI_Init.  If the function sets setvals   to TRUE, CH3 will not use PMI to get the rank,  size, etc.@*/int MPIDI_CH3_Pre_init (int *setvals, int *has_parent, int *rank, int *size);/*@  MPIDI_CH3_Init - Initialize the channel implementation.  Input Parameters:+ has_parent - boolean value that is true if this MPI job was spawned by   another set of MPI processes. pg_ptr - the new process group representing MPI_COMM_WORLD- pg_rank - my rank in the process group  Return value:  A MPI error code.  Notes:  MPID_Init has called 'PMI_Init' and created the process group structure   before this routine is called.@*/int MPIDI_CH3_Init(int has_parent, MPIDI_PG_t *pg_ptr, int pg_rank );/*@  MPIDI_CH3_PreLoad - Setup a channel before calling MPIDI_CH3_Init  Notes:  This routine is called only if the channel defines 'HAVE_CH3_PRELOAD' .  It may be used to perform any initialization that is required before any  of the channel routines may be used.  @*/int MPIDI_CH3_PreLoad( void );/*@  MPIDI_CH3_Finalize - Shutdown the channel implementation.  Return value:  A MPI error class.@*/int MPIDI_CH3_Finalize(void);/*@  MPIDI_CH3_VC_Init - Perform channel-specific initialization of a VC  Input Parameter:. vc - Virtual connection to initialize  @*/int MPIDI_CH3_VC_Init( struct MPIDI_VC *vc );/*@   MPIDI_CH3_PG_Destroy - Perform any channel-specific actions when freeing    a process group     Input Parameter:.   pg - Process group on which to act@*/int MPIDI_CH3_PG_Destroy( struct MPIDI_PG *pg );/*@ MPIDI_CH3_VC_Destroy - Perform and channel-specific actions when freeing a    virtual connection.    Input Parameter:.   vc - Virtual connection on which to act@*/int MPIDI_CH3_VC_Destroy( struct MPIDI_VC *vc );/*@ MPIDI_CH3_InitComplete - Perform any channel-specific initialization   actions after MPID_Init but before MPI_Init (or MPI_Initthread) returns  @*/int MPIDI_CH3_InitCompleted( void );#ifdef MPIDI_CH3_HASIMPL_HEADER#include "mpidi_ch3_mpid.h"#endif/* Routines in support of ch3 *//* Routine to return the tag associated with a port */int MPIDI_GetTagFromPort( const char *, int * );/* Implement the send side of a rendevous send */int MPIDI_CH3_RndvSend( MPID_Request **sreq_p, const void * buf, int count, 			MPI_Datatype datatype, int dt_contig, MPIDI_msg_sz_t data_sz, 			MPI_Aint dt_true_lb,			int rank, 			int tag, MPID_Comm * comm, int context_offset );/* Here are the packet handlers */int MPIDI_CH3_PktHandler_EagerSend( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 				   MPIDI_msg_sz_t *, MPID_Request ** );#ifdef USE_EAGER_SHORTint MPIDI_CH3_PktHandler_EagerShortSend( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 					 MPIDI_msg_sz_t *, MPID_Request ** );#endifint MPIDI_CH3_PktHandler_ReadySend( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 				    MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_EagerSyncSend( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 					MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_EagerSyncAck( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 				       MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_RndvReqToSend( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 					MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_RndvClrToSend( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 					MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_RndvSend( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 				   MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_CancelSendReq( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 					MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_CancelSendResp( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 					 MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_Put( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 			      MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_Accumulate( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 				     MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_Get( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 			      MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_GetResp( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 				 MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_Lock( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 			      MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_LockGranted( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 				      MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_PtRMADone( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 				    MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_LockPutUnlock( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 					MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_LockAccumUnlock( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 					  MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_LockGetUnlock( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 					MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_FlowCntlUpdate( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,					 MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_Close( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 				MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_EndCH3( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *,				 MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_CancelSendReq( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 					MPIDI_msg_sz_t *, MPID_Request ** );int MPIDI_CH3_PktHandler_CancelSendResp( MPIDI_VC_t *, MPIDI_CH3_Pkt_t *, 					 MPIDI_msg_sz_t *, MPID_Request ** );/* PktHandler function:   vc  (INPUT) -- vc on which the packet was received   pkt (INPUT) -- pointer to packet header at beginning of receive buffer   buflen (I/O) -- IN: number of bytes received into receive buffer                   OUT: number of bytes processed by the handler function   req (OUTPUT) -- NULL, if the whole message has been processed by the handler                   function, otherwise, pointer to the receive request for this                   message.  The IOV will be set describing where the rest of the                   message should be received.*/typedef int MPIDI_CH3_PktHandler_Fcn(MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,				     MPIDI_msg_sz_t *buflen, MPID_Request **req );int MPIDI_CH3_PktHandler_Init( MPIDI_CH3_PktHandler_Fcn *[], int );#ifdef MPICH_DBG_OUTPUTint MPIDI_CH3_PktPrint_CancelSendReq( FILE *, MPIDI_CH3_Pkt_t * );int MPIDI_CH3_PktPrint_CancelSendResp( FILE *, MPIDI_CH3_Pkt_t * );int MPIDI_CH3_PktPrint_EagerSend( FILE *, MPIDI_CH3_Pkt_t * );int MPIDI_CH3_PktPrint_ReadySend( FILE *, MPIDI_CH3_Pkt_t * );int MPIDI_CH3_PktPrint_RndvReqToSend( FILE *, MPIDI_CH3_Pkt_t * );int MPIDI_CH3_PktPrint_RndvClrToSend( FILE *, MPIDI_CH3_Pkt_t * );int MPIDI_CH3_PktPrint_RndvSend( FILE *, MPIDI_CH3_Pkt_t * );int MPIDI_CH3_PktPrint_EagerSyncSend( FILE *fp, MPIDI_CH3_Pkt_t *pkt );int MPIDI_CH3_PktPrint_EagerSyncAck( FILE *fp, MPIDI_CH3_Pkt_t *pkt );#endif/* Routines to create packets (used in implementing MPI communications */int MPIDI_CH3_EagerNoncontigSend( MPID_Request **, MPIDI_CH3_Pkt_type_t, 				  const void *, int, 				  MPI_Datatype, MPIDI_msg_sz_t, int, int, MPID_Comm *, 				  int );int MPIDI_CH3_EagerContigSend( MPID_Request **, MPIDI_CH3_Pkt_type_t, 			       const void *, MPIDI_msg_sz_t, int, 			       int, MPID_Comm *, int );int MPIDI_CH3_EagerContigShortSend( MPID_Request **, MPIDI_CH3_Pkt_type_t, 				    const void *, MPIDI_msg_sz_t, 				    int, int, MPID_Comm *, int );int MPIDI_CH3_EagerContigIsend( MPID_Request **, MPIDI_CH3_Pkt_type_t, 				const void *, MPIDI_msg_sz_t, int, 				int, MPID_Comm *, int );int MPIDI_CH3_RndvSend( MPID_Request **, const void *, int, MPI_Datatype, 			int, MPIDI_msg_sz_t, MPI_Aint, int, int, MPID_Comm *, int );int MPIDI_CH3_EagerSyncNoncontigSend( MPID_Request **, const void *, int, 				      MPI_Datatype, MPIDI_msg_sz_t, int, MPI_Aint,				      int, int, MPID_Comm *, int );int MPIDI_CH3_EagerSyncZero(MPID_Request **, int, int, MPID_Comm *, int );int MPIDI_CH3_SendNoncontig( struct MPIDI_VC *vc, struct MPID_Request *sreq,			     void *header, MPIDI_msg_sz_t hdr_sz );/* Routines to ack packets, called in the receive routines when a    message is matched */int MPIDI_CH3_EagerSyncAck( MPIDI_VC_t *, MPID_Request * );int MPIDI_CH3_RecvFromSelf( MPID_Request *, void *, int, MPI_Datatype );int MPIDI_CH3_RecvRndv( MPIDI_VC_t *, MPID_Request * );/* Handler routines to continuing after an IOV is processed (assigned to the   OnDataAvail field in the device part of a request) */int MPIDI_CH3_ReqHandler_RecvComplete( MPIDI_VC_t *, MPID_Request *, int * );int MPIDI_CH3_ReqHandler_UnpackUEBufComplete( MPIDI_VC_t *, MPID_Request *,					      int * );int MPIDI_CH3_ReqHandler_ReloadIOV( MPIDI_VC_t *, MPID_Request *, int * );int MPIDI_CH3_ReqHandler_UnpackSRBufReloadIOV( MPIDI_VC_t *, MPID_Request *,					       int * );int MPIDI_CH3_ReqHandler_UnpackSRBufComplete( MPIDI_VC_t *, MPID_Request *,					      int * );int MPIDI_CH3_ReqHandler_PutRespDerivedDTComplete( MPIDI_VC_t *, 						   MPID_Request *, int * );int MPIDI_CH3_ReqHandler_PutAccumRespComplete( MPIDI_VC_t *, MPID_Request *,					       int * );int MPIDI_CH3_ReqHandler_AccumRespDerivedDTComplete( MPIDI_VC_t *, 						     MPID_Request *,						     int * );int MPIDI_CH3_ReqHandler_SinglePutAccumComplete( MPIDI_VC_t *, MPID_Request *,						 int * );int MPIDI_CH3_ReqHandler_GetRespDerivedDTComplete( MPIDI_VC_t *, 						   MPID_Request *, int * );/* Send Handlers */int MPIDI_CH3_ReqHandler_SendReloadIOV( MPIDI_VC_t *vc, MPID_Request *sreq, 					int *complete );int MPIDI_CH3_ReqHandler_GetSendRespComplete( MPIDI_VC_t *, MPID_Request *,					      int * );#endif /* !defined(MPICH_MPIDIMPL_H_INCLUDED) */

⌨️ 快捷键说明

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