并行计算综述

上传人:M****1 文档编号:494596074 上传时间:2022-07-22 格式:DOC 页数:5 大小:208.50KB
返回 下载 相关 举报
并行计算综述_第1页
第1页 / 共5页
并行计算综述_第2页
第2页 / 共5页
并行计算综述_第3页
第3页 / 共5页
并行计算综述_第4页
第4页 / 共5页
并行计算综述_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《并行计算综述》由会员分享,可在线阅读,更多相关《并行计算综述(5页珍藏版)》请在金锄头文库上搜索。

1、1.1.1什么是并行计算并行计算(parallelcomputing)是指,在并行机上,将一个应用分解成多个子任务,分配给不同的处理器,各个处理器之间相互协同,并行地执行子任务,从而达到加速求解速度,或者求解应用问题规模的目的。由此,为了成功开展并行计算,必须具备三个基本条件:(1) 并行机。并行机至少包含两台或两台以上处理机,这些处理机通过互连网络相互连接,互通信。(2) 应用问题必须具有并行度。也就是说,应用可以分解为多个子任务,这些子任务可以并行地执行。将一个应用分解为多个子任务的过程,称为并行算法的设计。(3) 并行编程。在并行机提供的并行编程环境上,具体实现并行算法,编制并行程序,并

2、运行该程序,从而达到并行求解应用问题的目的。提高求解问题的规模。当前,如图1.2和图1.3所示,组成并行机的三个要素为:结点(node)。每个结点由多个处理器构成,可以直接输入输出I/O)。D互联网络(interconnectnetwork)。所有结点通过互联网络相互连接相互通信。内存(memory)。内存由多个存储模块组成,这些模块可以如图1.2所示,与结点对称地分布在互联网络的两侧,或者,如图1.3所示,位于各个结点的内部。并行编程模型5.2共享内存模型a)在共享编程模型中,任务间共享统一的可以异步读写的地址空间。b)共享内存的访问控制机制可能使用锁或信号量。c)这个模型的优点是对于程序员

3、来说数据没有身份的区分,不需要特别清楚任务简单数据通信。程序开发也相应的得以简化。d)在性能上有个很突出的缺点是很难理解和管理数据的本地性问题。5.3线程模型在并行编程的线程模型中,单个处理器可以有多个并行的执行路径。5.4消息传递模型消息传递模型有以下三个特征:1)计算时任务集可以用他们自己的内存。多任务可以在相同的物理处理器上,同时可以访问任意数量的处理器。2)任务之间通过接收和发送消息来进行数据通信。3)数据传输通常需要每个处理器协调操作来完成。例如,发送操作有一个接受操作来配合。5.5数据并行模型l数据并行模型有以下特性:并行工作主要是操纵数据集。数据集一般都是像数组一样典型的通用的数

4、据结构。任务集都使用相同的数据结构,但是,每个任务都有自己的数据。每个任务的工作都是相同的,例如,给每个数组元素加4。l在共享内存体系结构上,所有的任务都是在全局存储空间中访问数据。在分布式存储体系结构上数据都是从任务的本地存储空间中分离出来的。4.5基于消息传递的并行计算环境在当前并行机上,比较流行的并行编程环境可以分为三类:消息传递、共享存储和数据并行,它们的典型代表、可移植性、并行粒度、并行操作方式、数据存储模式、数据分配方式、学习难度、可扩展性等方面的比较在表4.5中给出。由该表可以看出:(1) 共享存储并行编程基于线程级细粒度并行,仅被SMP和DSM并行机所支持,可移植性不如消息传递

5、并行编程。但是,由于它们支持数据的共享存储,所以并行编程的难度较小,但一般情形下,当处理机个数较多时,其并行性能明显不如消息传递编程。(2) 消息传递并行编程基于大粒度的进程级并行,具有最好的可移植性,几乎被当前流行的各类并行机所支持,且具有很好的可扩展性。但是,消息传递并行编程只能支持进程间的分布存储模式,即各个进程只能直接访问其局部内存空间,而对其他进程的局部内存空间的访问只能通过消息传递来实现。因此,学习和使用消息传递并行编程的难度均大于共享存储和数据并行两种编程模式。表4.5三种并行编程环境主要特征一览表特征消息传递共享存储数据并行典型代表MPI、PVMOpenMPHPF可移植性所有流

6、行并行机SMP、DSMSMP、DSM、MPP并行粒度进程级大粒度线程级细粒度进程级细粒度并行操作方式F=l,11异步F=l,11异步松散同步数据存储模式分布式存储共享存储共享存储数据分配方式显式隐式半隐式学习入门难度较难容易偏易可扩展性好较差一般本书的主要目的是全面介绍消息传递并行编程环境MPI,因此,在以后的篇幅中,将不再讨论共享存储和数据并行编程环境。4.5.1消息传递并行机模型由于当前流行的各类SMP、DSM、MPP和微机机群等并行机均支持消息传递并行程序设计,因此,有必要对这些具体并行机的体系结构进行抽象,设计一个理想的消息传递并行机模型。基于该模型,用户可以在不考虑具体并行机体系结构

7、的条件下,组织消息传递并行程序设计,从而简化并行程序设计,增强程序的可移植性。图4.1给出了一个理想的消息传递进程拓扑结构。其中,“P”表示MPI进程,“M”表示每个进程的局部内存空间,多个“P/M”进程/内存模块通过互联网络相互连接,构成一个分布式存储的进程拓扑结构。在该结构中,各个进程之间可以直接通信,但是各个进程只能直接访问自身的局部内存空间,对其他进程的局部内存空间的访问只能调用消息传递函数,通过进程间通信才能实现。因此,该进程拓扑结构的核心是连接进程的互联网络,也就是消息传递标准函数库,而构成该函数库的所有函数就构成了用户面对的消息传递并行编程环境。图如果将图4.1的每个P/M个进程

8、,则所得的理想并行机设计所依赖的并行机模型实际程序的一个进程。基于该并行具体的并行程序设计,且程序研制成功后,便可以在任何支持该并行机模型隐含的进程拓扑结构的所有具体并行机上运行。这里,有必要说明的是,消息传递分布式存储并行机模型和具体并行机体系结构没有必然的联系。无论将该模型映射到何种类型的并行机(SMP、DSM、cluster、constellation、MPP),用户面对的都是该模型隐含的进程拓扑结构,只是各类具体并行机实现的消息传递函数库的方式不同,但用户无须知道这些细节。例如,在共享存储SMP、DSM并行机中,消息传递是通过共享数据缓存区来实现的;在MPP并行机中,消息传递是通过网络

9、通信来实现的;在机群和星群并行机中,消息传递在SMP、DSM并行机内部是通过共享数据缓存区实现的,而在SMP、DSM并行机之间是通过网络通信来实现的。因此,无论哪种类型的具体并行机,呈现在消息传递并行程序设计用户面前的必然是图4.1所示的分布式存储并行机模型。标准消息传递界面1994年6月,全球工业、政府和科研应用部门联合推出消息传递并行编程环境的标准用户界面(MPI),它将消息传递并行编程环境分解为两个部分,第一是构成该环境的所有消息传递函数的标准接口说明,它们是根据并行应用程序对消息传递功能的不同要求而制定的,不考虑该函数能否具体实现;第二是各并行机厂商提供的对这些函数的具体实现。这样,用

10、户只需学习MPI库函数的标准接口,设计MPI并行程序,便可在支持MPI并行编程环境的具体并行机上执行该程序。通常意义下所说的MPI系统就是指所有这些具有标准接口说明的消息传递函数所构成的函数库。在标准串行程序设计语言(C、Fortran、C+)的基础上,再加入实现进程间通信的MPI消息传递库函数,就构成了MPI并行程序设计所依赖的并行编程环境。MPI吸收了众多消息传递系统的优点,例如P4、PVM、Express、PARMACS等,是目前国内外最流行的并行编程环境之一。当前,大量工业、科学与工程计算部门(例如气象、石油、地震、空气动力学、核物理等)的科研与工程软件已经移植到MPI平台。MPI是一

11、个消息传递接口的标准,用于开发基于消息传递的并行程序,其目的是为用户提供一个实际可用的、可移植的、高效的和灵活的消息传递接口。MPI这个名称包括三个方面的含义:(1) MPI是一个库,而不是一种语言。许多人认为MPI是一种并行设计语言,这种看法并不准确。按照并行语言的分类,可以把Fortran+MPI、C+MPI看做是在原来的串行语言基础之上扩展而来的并行语言。MPI库可以和具体语言进行绑定,形成并行设计语言。从语法上说,C/C十+和Fortran等语言对MPI库的调用规则,与调用一般的函数/过程没有区别;(2) MPI是一种标准或者规范,而不特指某一个对它的具体实现。到目前为止,所有的并行计

12、算机都提供对MPI的支持,用MPI书写的并行程序可以不加修改的在所有并行机上运行;(3) MPI是一种消息传递编程模型,并且成为了这种编程模型的代表和事实上的标准。MPI库作为可移植的消息传递函数库,具有以下一些特点:(1) MPI提供缓冲区管理的函数,用户可以决定由系统对发送、接受缓冲区的管理,还是用户参与其管理,以便控制系统缓冲区空间,提高系统的安全性;(2) MPI不但支持语言本身所提供的各种结构,而且允许用户构造自己的复杂结构体和数据类型,使得进程间的通信更加便捷易用;(3) MPI为任务间的通信提供多种方式,大量的通信接口能够满足科学与工程算的需要;(4) MPI提供可靠的数据传输机

13、制,发送的消息能够保证被对方正确接受,用户不必自行检查传输错误、传输超时等。也就是说MPI的通信对用户而言是透明的;(5) MPI通过通信域保证通信的安全性,不同通信域内的并行任务之间的通信不会相互干扰和混淆;(6) MPI具有高度的可重构性,允许多个用户同时使用并行处理设备。由于MPI是一个库而不是一种语言,因此MPI必须和某个语言结合起来才能使用,这称之为MPI的语言绑定。MPI1.0版于1994年推出,并同时获得了各并行机产商的具体实现;MPI2.0版于1998年10月推出,它在1.0版的基础上,增加了如下的消息传递功能:(1) 并行I/O:允许多个进程同时读/写同一个文件;(2) 线程安全:允许MPI进程的多个线程执行,即支持与OpenMP的混合并行编程;(3) 动态进程管理:允许并行应用程序在执行过程中,动态地增加和删除进程个数;(4) 单边通信:允许某个进程对其他进程的局部内存单元直接执行读/写访问,而不需要对方进程的显式干预;(5) 并行应用程序之间的动态互操作:允许各个MPI并行应用程序之间动态地建立和删除消息传递通信通道。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号