1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
mpi复习课案

什么是分布式计算?;并行计算;并行计算和分布计算;并行计算和分布式计算的主要区别 ;为什么需要并行计算? 1:单处理器向多核并行计算发展成为必然趋势 2:单核处理器性能提升接近极限 3:应用领域计算规模和复杂度大幅提高 爆炸性增长的Web规模数据量 超大的计算量/计算复杂度 ; 并行计算: 同时执行多条指令的计算模式 时间并行 流水线技术 空间并行 多个处理器(执行核)并行的执行计算 并行计算科学中主要研究的是空间上的并行问题 并行计算的基本思想是使用多个处理器协作解决同一问题。 将被求解的问题分解成若干个部分,每一个部分均由一个独立的处理器处理。;SISD:传统的单处理机系统。由程序生成的一个单指令流,在任意时刻处理单独的数据项。;第一部分 ;并行编程模式: 隐式并行 数据并行 消息传递 共享变量;2.分解模式;MPI的消息传递过程三个阶段:;通信子可分为两种: 组内通信子~用于一组进程内的操作; 组间通信子~用于 两组进程间的点对点通信。 缓冲区?通信子(见下面)提供了一个缓冲机制允许人们将与MPI固有特征等价的新的属性联系到通信子上.高级用户可利用这一机制进一步修饰通信子并通过MPI实现一些通信子函数。例如,第六章描述的虚拟拓扑函数就可能以这种方式得到支持. 组?组定义了一个进程的有序集合,每一进程具有一个序列号,而且为组间进程通信定义低级名字也是由组完成的(序列号用于发送和接收)。这样,组在点对点通信中为进程名字定义了一个范围.另外,组还定义了集合操作的范围.在MPI中可从通信子中对组进行分别维护,但是只有通信子才能用于通信操作. 组内通信子?MPI中消息传送的最普通方式就是利用组内通信子.组内通信子包含以下几方面:一个组的实例,点对点和集合通信的通信上下文,以及包括虚拟拓扑和其它属 性的能力.这些特征表现为如下形式: 上下文 为MPI提供了拥有分离安全的消息传送空间的能力。一个上下文类似于一个用于区分消息的附加标志。由系统管理这个可区分的进程。不同库(或不同库调用)对分离通信上下文的使用将库执行时的内部通信与外部通信隔离开。这样即使存???基于其它通信子的挂起通信也允许调用库,而且避免了进入或退出库代码时的同步需求。挂起的点对点通信也能保证不与同一通信子内的集合通信发生干扰。 组 定义了在通信子进行通信期间的参与者。 虚拟拓扑 定义了一个组内与某一个拓扑间的特殊映射。描述的组内通信子不具有拓扑。 属性 定义了一个局部信息,该信息是用户或库为后面的引用而加给一个通信子的;MPI消息的组成; ;MPI消息传递通信的基本概念 ;MPI的点对点通信(‘Point-to-Point Communication )同时提供了阻塞和非阻塞两种通信机制 。 同时也支持多种通信模式。 不同通信模式和不同通信机制的结合,便产生了非常丰富的点对点通信函数。; ;缓冲通信模式:主要用于解开阻塞同喜的发送和接收之间的耦合 ;可重复的非阻塞通信 MPI_Send_init() MPI_Bsend_init() MPI_Ssend_init() MPI_Rsend_init();;组合发送接收:比较规律化的数据发送接收消息;MPI_Send,MPI_Recv?--MPI_Sendrecv;组(Groups):一组进程标识所组成的集合 通信子:定义和封装MPI通信的基本模型,通过上下文(tag)来划分通信空间。每个MPI通信函数都要通过通信子来确定其通信环境,每个通信子都包含了一组进程。 通信子分类: 组内通信子:利用一个通信子约束的进程集合。MPI环境启动后,自动创建MPI_COMM_WORLD、MPI_COMM_SELF两个组内通信子 组间通信子:将两个组绑定在一起,共享一个context ;集合通信:集合通信是一组进程间的通信(第4章);其结果就象一个组中的n个进程(包括根进程在内)都执行了一个调用:   MPI_Send(sendbuf, sendcount, sendtype, root, ...), 同时根进程执行了n次调用:   MPI_Recv(recvbuf+i*recvcount*extent(recvtype), recvcount, recvtype, i,...), ;归约:;全互换 MPI_Alltoall(void* sendbuf, int sendcount, MPI_Datatype sendtype,void* recvbuf, int recvcount, MPI_Datatype recvtype,MPI_Comm comm) IN sendbuf 发送消息缓冲区的起始地址(可选数据类型) IN sendcount 发送到每个进程的数据个数(整型) IN sendtype 发送消息缓冲区

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档