📄 attroverview.tex
字号:
The MPI standard allows \emph{attributes}, essentially an \texttt{(integer,pointer)} pair, to be attached to communicators, windows, and datatypes. The integer is a \emph{keyval}, which is allocated by a call (at the MPI level) to \texttt{MPI_Comm/Type/Win_create_keyval}. The pointer is the value of the attribute. Attributes are primarily intended for use by the user, for example, to save information on a communicator, but can also be used to pass data to the MPI implementation. For example, an attribute may be used to pass Quality of Service information to an implementation to be used with communication on a particular communicator. To provide the most general access by the ADI to all attributes, the ADI defines a collection of routines that are used by the implementation of the MPI attribute routines (such as \texttt{MPI_Comm_get_attr}). In addition, the MPI routines involving attributes will invoke the corresponding \texttt{hook} functions (e.g., \texttt{MPID_Dev_comm_attr_set_hook}) should the device define them. Attributes on windows and datatypes are defined by MPI but not of interest (as yet) to the device. In addition, there are seven predefined attributes that the device must supply to the implementation. This is accomplished through data values that are part of the \texttt{MPIR_Process} data block. The predefined keyvals on \texttt{MPI_COMM_WORLD} are:\begin{verbatim} Keyval Related Module MPI_APPNUM Dynamic MPI_HOST Core MPI_IO Core MPI_LASTUSEDCODE Error MPI_TAG_UB Communication MPI_UNIVERSE_SIZE Dynamic MPI_WTIME_IS_GLOBAL Timer\end{verbatim} The values stored in the \texttt{MPIR_Process} block are the actual values. For example, the value of \texttt{MPI_TAG_UB} is the integer value of the largest tag. The value of \texttt{MPI_WTIME_IS_GLOBAL} is a \texttt{1} for true and \texttt{0} for false. Likely values for \texttt{MPI_IO} and \texttt{MPI_HOST} are \texttt{MPI_ANY_SOURCE} and \texttt{MPI_PROC_NULL} respectively.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -