📄 mpidrma.h
字号:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//* * (C) 2001 by Argonne National Laboratory. * See COPYRIGHT in top-level directory. */#if !defined(MPICH_MPIDRMA_H_INCLUDED)#define MPICH_MPIDRMA_H_INCLUDED/* * RMA Declarations. We should move these into something separate from * a Request. *//* to send derived datatype across in RMA ops */typedef struct MPIDI_RMA_dtype_info { /* for derived datatypes */ int is_contig; int n_contig_blocks; int size; MPI_Aint extent; int dataloop_size; /* not needed because this info is sent in packet header. remove it after lock/unlock is implemented in the device */ void *dataloop; /* pointer needed to update pointers within dataloop on remote side */ int dataloop_depth; int eltype; MPI_Aint ub, lb, true_ub, true_lb; int has_sticky_ub, has_sticky_lb;} MPIDI_RMA_dtype_info;/* for keeping track of RMA ops, which will be executed at the next sync call */typedef struct MPIDI_RMA_ops { struct MPIDI_RMA_ops *next; /* pointer to next element in list */ int type; /* MPIDI_RMA_PUT, MPID_REQUEST_GET, MPIDI_RMA_ACCUMULATE, MPIDI_RMA_LOCK */ void *origin_addr; int origin_count; MPI_Datatype origin_datatype; int target_rank; MPI_Aint target_disp; int target_count; MPI_Datatype target_datatype; MPI_Op op; /* for accumulate */ int lock_type; /* for win_lock */} MPIDI_RMA_ops;typedef struct MPIDI_PT_single_op { int type; /* put, get, or accum. */ void *addr; int count; MPI_Datatype datatype; MPI_Op op; void *data; /* for queued puts and accumulates, data is copied here */ MPI_Request request_handle; /* for gets */ int data_recd; /* to indicate if the data has been received */} MPIDI_PT_single_op;typedef struct MPIDI_Win_lock_queue { struct MPIDI_Win_lock_queue *next; int lock_type; MPI_Win source_win_handle; MPIDI_VC_t * vc; struct MPIDI_PT_single_op *pt_single_op; /* to store info for lock-put-unlock optimization */} MPIDI_Win_lock_queue;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -