📄 mpi322.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> ICPSEP Content
</TITLE>
<META NAME="GENERATOR" CONTENT="Mozilla/3.0Gold (X11; I; SunOS 5.4 sun4m) [Netscape]">
</HEAD>
<BODY BGCOLOR="#F0F8FF">
<TABLE WIDTH="100%" >
<TR>
<TD align=left><FONT SIZE=+2>3.2.2 消息数据</FONT></TD>
<TD align=right><A HREF="mpi321.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi321.htm"><IMG SRC="backward.gif" tppabs="http://arch.cs.pku.edu.cn/image/backward.gif" ALT="BACKWARD" HEIGHT=32 WIDTH=32></A><A HREF="mpi323.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi323.htm"><IMG SRC="forward.gif" tppabs="http://arch.cs.pku.edu.cn/image/forward.gif" ALT="FORWARD" HEIGHT=32 WIDTH=32></A>
</TD>
</TR>
</TABLE>
<P>
<HR WIDTH="100%"></P>
<P>MPI_SEND操作指定的发送缓存是由count个类型为datatype的连续数据空间组成,
起始地址为buf。注意我们不是以字节数, 而是以元素的个数指定消息的长度,后者是独立于机器并且更接近应用级。
</P>
<P>消息的数据部分是由count个连续值组成, 由datatype指定其类型。count可以是零,
这种情况下消息的数据部分是空的。为消息的数据值指定的基本数据类型应相应于宿主语言的基本数据类型。下表列出对于Fortran语言这个参数类型的可能值和相应的Fortran语言类型。
</P>
<P>
<HR WIDTH="100%"></P>
<PRE> MPI datatype Fortran datatype
MPI_INTEGER INTEGER
MPI_REAL REAL
MPI_DOUBLE_PRECISION DOUBLE PRECISION
MPI_COMPLEX COMPLEX
MPI_LOGICAL LOGICAL
MPI_CHARACTER CHARACTER(1)
MPI_BYTE
MPI_PACKED </PRE>
<P>
<HR WIDTH="100%"></P>
<P>下表列出对于C 语言这个参数类型的可能值和相应的C 语言类型。</P>
<P>
<HR WIDTH="100%"></P>
<PRE> MPI datatype C datatype
MPI_CHAR signed char
MPI_SHORT signed short int
MPI_INT signed int
MPI_LONG signed long int
MPI_UNSIGNED_CHAR unsigned char
MPI_UNSIGNED_SHORT unsigned short int
MPI_UNSIGNED unsigned int
MPI_UNSIGNED_LONG unsigned long int
MPI_FLOAT float
MPI_DOUBLE double
MPI_LONG_DOUBLE long double
MPI_BYTE
MPI_PACKED </PRE>
<PRE>
<HR WIDTH="100%"></PRE>
<P>MPI_BYTE和MPI_PACKED数据类型没有相应于一个Fortran 或C 的数据类型。类型MPI_BYTE的一个值由一个字节组成(
8个二进制位)。一个字节是不用解释的,不同于一个字符。对于字符不同的机器有不同的表示方法,或者可以用一个以上的字节表示字符。另一方面,在所有的机器上,一个字节有相同的二进制值。类型MPI_PACKED将在3.13节解释。
</P>
<P>MPI要求支持上述数据类型, 匹配Fortran 77 和ANSI C的基本数据类型。如果宿主语言有下列附加的数据类型,那么应提供附加的MPI数据类型,MPI_LONG_LONG_INT
,( 64 位 )C 的类型为longlong int 的整型; MPI_DOUBLE_COMPLEX 双精度复杂类型,
在Fortran 中为DOUBLE PRECISION类型;MPI_REAL2, MPI_REAL4和MPI_REAL8分别为Fortran的REAL*2,
REAL*4和REAL*8实型;MPI_INTEGER1, MPI_INTEGER2和MPI_INTEGER4 分别为Fortran
的INTEGER*1,INTEGER*2和INTEGER*4; 等等。</P>
<UL>
<P><I>基本原理</I>. 本设计的一个目的是允许MPI作为一个库被实现, 而不要求附加的预处理或编译。所以编程者不能假设一个通信调用有关于通信缓存中变量数据类型的信息;这个信息必须由一个显示参数提供。在3.3.2节将清楚这些数据类型信息的要求。(<I>基本原理结束</I>)。</P>
</UL>
<P>
<HR WIDTH="100%"></P>
<TABLE WIDTH="100%" >
<TR>
<TD align=left>Copyright: NPACT <BR>
</TD>
<TD align=right><A HREF="mpi321.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi321.htm"><IMG SRC="backward.gif" tppabs="http://arch.cs.pku.edu.cn/image/backward.gif" ALT="BACKWARD" HEIGHT=32 WIDTH=32></A><A HREF="mpi323.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi323.htm"><IMG SRC="forward.gif" tppabs="http://arch.cs.pku.edu.cn/image/forward.gif" ALT="FORWARD" HEIGHT=32 WIDTH=32></A>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -