⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpi322.htm

📁 该文件为mpich2的开发文档
💻 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 + -