📄 kyoverview.tex
字号:
Keyvals are MPI objects that, unlike most MPI objects, are defined to be integers rather than a handle (e.g., \texttt{MPI_Comm}). However, they really \emph{are} MPI opaque objects and are handled by the MPICH implementation in the same way as all other MPI opaque objects. The only difference is that there is no \texttt{typedef int MPI_Keyval;} in \texttt{mpi.h}. In particular, keyvals are encoded (for direct and indirect references) in the same way that other MPI opaque objects are Each keyval has a copy and a delete function associated with it. Unfortunately, these have a slightly different calling sequence for each language, particularly when the size of a pointer is different from the size of a Fortran integer. The unions \texttt{MPID_Copy_function} and \texttt{MPID_Delete_function} capture the differences in a single union type.\subsection{Notes} One potential user error is to access an attribute in one language (say Fortran) that was created in another (say C). We could add a check and generate an error message in this case; note that this would have to be an option, because (particularly when accessing the attribute from C), it may be what the user intended, and in any case, it is a valid operation.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -