消息传递编程接口MPI.ppt

消息传递编程接口MPI.ppt

ID:58413172

大小:161.50 KB

页数:24页

时间:2020-09-07

消息传递编程接口MPI.ppt_第1页
消息传递编程接口MPI.ppt_第2页
消息传递编程接口MPI.ppt_第3页
消息传递编程接口MPI.ppt_第4页
消息传递编程接口MPI.ppt_第5页
资源描述:

《消息传递编程接口MPI.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六讲消息传递编程接口MPI三、MPI数据类型1MPI数据类型MPI数据类型定义MPI数据类型的大小、上下界、域及相关函数MPI新数据类型的创建、提交与释放MPI数据的打包与解包2MPI数据类型MPI原始数据类型MPI消息传递通常只能处理连续存放的同一类型的数据MPI自定义数据类型如果需要发送或接收具有复杂结构的数据时,可以使用自定义数据类型使用自定义数据类型的好处:有效减少消息传递次数,增大通信粒度,同时可以避免或减少消息传递时数据在内存中的拷贝MPI的数据类型只用于消息传递!3MPI数据类型定义MPI数据类型由两个相同长度的序列组成:类型序列和位移序列{t1,t2,t3,

2、...,tn}{d1,d2,d3,...,dn}ti的取值为基本数据类型di表示位移,取值为整数,以字节为单位新建的数据类型称为复合数据类型MPI数据类型图{(t1,d1),(t2,d2),(t3,d3),...,(tn,dn)}这个新的数据类型包含n个数据,其中第i个数据的数据类型为ti,该数据离首地址的距离为di4举例例:设数据类型mytype的数据类型图为{(MPI_REAL,4),(MPI_REAL,12),(MPI_REAL,0)}则下面的语句:realA(100)......callMPI_SEND(A,1,mytype,...)发送的数据为A(2),A(4),A

3、(1)5数据类型的大小数据类型的大小该数据类型中包含的数据长度,即字节数{(t1,d1),(t2,d2),(t3,d3),...,(tn,dn)}sizeof(t1)+sizeof(t2)+...+sizeof(tn)设一个数据了下的类型图为则它的大小为例:设数据类型mytype的数据类型图为{(real,4),(real,12),(real,0)}则mytype的大小为126数据类型的上下界{(t1,d1),(t2,d2),(t3,d3),...,(tn,dn)}数据类型的下界:类型图中的最小位移,即数据类型的上界:数据类型的域(extent):上界-下届7数据类型的对界量

4、原始数据类型的对界量:由编译系统决定地址对界要求:一个数据类型在内存中所占的字节数必须是其对界量的整数倍地址对界修正量:使得新建数据类型的域能被其对界量整除的最小非负整数复合数据类型的对界量:其所包含的基本数据类型的对界量的最大值8举例例:假设MPI_DOUBLE_PRECISION和MPI_INTEGER的对界量均为4,MPI_BYTE的对界量为1,考虑下面的数据类型{(MPI_DOUBLE_PRECISION,0),(MPI_BYTE,12),(MPI_INTEGER,8)}对界量为,上界为,下界为, 域为,地址对界修正量为。41601639两个特殊的数据类型MPI_LB

5、、MPI_UB伪数据类型,大小为0它们的作用:人工指定新建数据类型的上下界若数据类型中含MPI_LB,则下界定义为MPI_LB的位移的最小值;若数据类型中含MPI_UB,则上界定义为MPI_UB的位移的最大值;例:下面的数据类型的下界为-4{(MPI_REAL,4),(MPI_LB,12),(MPI_REAL,0),(MPI_LB,-4)}10数据类型查询函数MPI_TYPE_EXTENT(datatype,extent)MPI_TYPE_SIZE(datatype,size)MPI_TYPE_UB(datatype,displacement)MPI_TYPE_LB(data

6、type,displacement)详细用法见相关参考资料11新数据类型的创建新数据类型创建函数MPI_TYPE_CONTIGUOUSMPI_TYPE_VECTOR、MPI_TYPE_HVECTORMPI_TYPE_INDEXED、MPI_TYPE_HINDEXEDMPI_TYPE_STRUCT新数据类型的提交:MPI_TYPE_COMMIT若使用新数据类型进行通信,则必须先提交过渡数据类型不用提交,用完后就可直接释放新数据类型的释放:MPI_TYPE_FREE数据的打包和解包:MPI_PACK、MPI_UNPACK12MPI_TYPE_CONTIGUOUSMPI_TYPE_

7、CONTIGUOUS(count,oldtype,newtype)参数INcount复制个数INoldtype旧数据类型OUTnewtype新数据类型CintMPI_Type_contiguous(intcount,MPI_Datatypeoldtype,MPI_Datatype*newtype)F77MPI_TYPE_CONTIGUOUS(COUNT,OLDTYPE,NEWTYPE,IERR)INTEGERCOUNT,OLDTYPE,NEWTYPE,IERR连续复制:将原数据类型oldtype按顺序依

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。