sgoverview.tex

来自「刚才是说明 现在是安装程序在 LINUX环境下进行编程的MPICH安装文件」· TEX 代码 · 共 29 行

TEX
29
字号
\section{Communication Buffer management} The routines in this section fill two roles.  In the implementation of routines such as \texttt{MPID_Isend} where the only device-specific routines are  the few in \texttt{MPID_CORE}, it is necessary to have the ability to pack and  unpack partial messages.  Consider the case where the user calls \texttt{MPI_Isend( buf, 1, my_huge_indexed_type, ... )} where the total amount of data being sent is 100 MB.  Since \texttt{MPID_CORE} can only move contiguous data, we need to convert the described data into a sequence of contiguous memory segments of some reasonable size (we don\texttt{}t want to have to allocate a 100 MB temporary buffer). Thus, to implement this operation, we need a routine that can be called  repeatedly to get the next m bytes from the user\texttt{}s described data buffer. Further, we need to be able to pause and remember where we are in processing a datatype.  The MPI unpack routine does not have this flexibility. The other place where these routines are needed is in the implementation of efficient versions of the MPI collective communication routines.   These algorithms often need to look at the message as a range of bytes from which segments are extracted and moved.  The implementation of the MPI collective routines provided with MPICH will use these routines express the algorithms. These routines also provide a way to specify a data area that may be used in store-and-forward algorithms, without requiring copies to and from an intermediate device buffer.   Note that \texttt{MPID_Request}s include a segment descriptoin within them.

⌨️ 快捷键说明

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