3.2.2 消息数据 BACKWARDFORWARD


MPI_SEND操作指定的发送缓存是由count个类型为datatype的连续数据空间组成, 起始地址为buf。注意我们不是以字节数, 而是以元素的个数指定消息的长度,后者是独立于机器并且更接近应用级。   

消息的数据部分是由count个连续值组成, 由datatype指定其类型。count可以是零, 这种情况下消息的数据部分是空的。为消息的数据值指定的基本数据类型应相应于宿主语言的基本数据类型。下表列出对于Fortran语言这个参数类型的可能值和相应的Fortran语言类型。      


     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 


下表列出对于C 语言这个参数类型的可能值和相应的C 语言类型。


     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 

MPI_BYTE和MPI_PACKED数据类型没有相应于一个Fortran 或C 的数据类型。类型MPI_BYTE的一个值由一个字节组成( 8个二进制位)。一个字节是不用解释的,不同于一个字符。对于字符不同的机器有不同的表示方法,或者可以用一个以上的字节表示字符。另一方面,在所有的机器上,一个字节有相同的二进制值。类型MPI_PACKED将在3.13节解释。   

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; 等等。


Copyright: NPACT
BACKWARDFORWARD