并行计算编程技术浅析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【关键词】:并行计算模式集群高性能计算机测试
1.并行计算技术概述 60年代初期.由于晶体管技术与存储器技术的发展导致并
行计算机的出现.这一时期的典型代表就是IBM 360。创建和使 用并行计算机的主要原因是因为并行计算机是解决单处理器速 度瓶颈的最好方法之一。并行计算机是由一组处理单元组成的. 这组处理单元通过相互之问的通信与协作.以更快的速度共同 完成一项大规模的计算任务。因此,并行计算机的两个最主要的 组成部分是计算节点和节点问的通信与协作机制。并行计算机 体系结构的发展也主要体现在计算节点性能的提高以及节点间 通信技术的改进两方面。
TER)。在集群系统中,每台服务器处理各自的工作,提供各自的 服务。当需要更高的的性能以适应更多的应用时.既可以升级原 有的服务器(增加更多的处理器、内存和存储等),又可以在集群 系统中增加新的服务器.更进一步.集群系统在平衡和扩展整个 计算机应用系统的工作负载的同时.也为用户提供了高性能和 高可用性。
作站。这些异构的计算节点可以通过多种网络(比如EⅡl锄et、
FDDI等等)互联,成为一个网络计算虚拟机。用户的计算任务被 分配到各个计算节点上.多个节点并行运算,从而实现粗粒度的 并行。
PVM是用于在UNIX计算机间传送系统的系统.使用PvM 可以将许多台计算机连结成一台大型分布式存储并行计算机。 这个网络我们称之为虚拟机。我们可以在不同的层次上使用 PVM。在最高层次上.也就是透明模式下,任务被自动分配到最
PVM的免费、开放以及易用使其成为一个被广泛接受的并
行程序开发环境.有很多并行机公司都宣布支持PVM、PVM可
以安装到各种Uni】【、Windows操作系统上运行。所有这些又有 力地促进了PVM的推广。二现在所有的并行机都支持PVM3。 2.2.2.MPI
1992年4月MPI论坛提出了作为标准消息传递接口所应 具有的基本特点.同年11月完成了第一个草案MPll。该草案讨 论了几种点到点通信的规范,没有涉及集群通信的规范。MPIl 旨在引起广泛关注.以推动消息传递接口标准化的进程。1992 年11月提出了MPI标准化的具体议程后.MPI论坛于1993年 11月完成了MPI标准的指定工作.目前最新的为MPI 2.0版.于 1998年年低推出。
MultiProcessing)等结构,其特点是多个处理器拥有物理上共享 的内存,如HP的SuperDome,我国曙光1号,SGI Power Chal. 1enge等;另一大类是分布存储系统(DMP),如大规模并行处理机 (MPP。Massivelv Parauel Processor)和集群系统(Cluster),其特点 是系统由多个物理上分布的结点组成.每个结点拥有自己的内
作为一套可移植可扩展的标准0penMP为程序员提供了一 个简单和灵活的接口.可以方便地为共享内存的多处理器平台
增加并行机制。大部分高性能计算机厂商和软件厂商,例如。 ODenMP在所有的架构上都支持使用C,C++和FORTm~N进行 共享内存并行编程.包括基于Micmsoft?WindowsNT?和UNIX?
现在广泛使用的消息传递模型有两个:PVM和MPI。PVM 即Parallel Virtual Machine(并行虚拟机)与MPI即Me8sa鼯Pass. ing Inte南ce(消息传递界面)。PVM与MPI所提供的功能大致相 同.但两者的侧重点有所不同。PVM强调在异构环境下的可移 植性和互操作性.程序之间可以互相通信,并支持动态的资源管 理和一定程度的容错:而MPI更强调性能,不同的MPI实现之 间缺乏互操作性.本身也不支持容错(可以通过专门的容错软件
2.1.1.OpenMP 目前业界流行的共享内存模型开发标准是0penMP。
0penMP定义了一套编译指导语句,用于指定程序的并行性、数 据的共享,私有等信息。其目标是为SMp系统提供可移植、可扩 展的开发接口。InteI,DEC,Silicon Graphics,Kuch&As80ciates和 IBM早在15年前就联合定义了0DenMP早期标准。新的 0penMP标准由OpenMP Architecture Review Board于1 997年 推出.现在已发展到2.O版。
共享内存并行模式编程相对较为简单.程序员不用考虑数
据在内存中的位置.进程管理及同步操作由系统完成。但是用这 种方式编制的程序通常并行效率不高,因为它属于细粒度并行, 主要针对循环进行并行处理。另外共享内存并行模式只能运行 在共享内存类型的计算机系统上。
在共享内存模型中.一个并行程序由多个共享内存的并行 任务组成.数据的交换通过隐含地使用共享数据来完成。此编程 模式一般仅需指定可以并行执行的循环.而不需考虑计算与数 据如何划分.以及如何进行任务间通信.编译器会自动完成上述 功能。
42
福建 电脑
2007年第3期
并行计算编程技术浅析
范增禄1,薛峰2
(1.河北省气象局河北石家庄050021 2.国家气象中心北京100081)
【摘要】:随着高性能应用和运算需求的迅猛发展,单台高性能计算机已经不能胜任一些超大规模应用问题的解决。 这就需要将多台计算机资源通过高速网络连接起来,构成计算集群,共同解决大型应用问题。并行程序的编程模型、运行环 境和调试环境,以及如何选取适合需求的开发与运行环境,等等,都要比串行程序复杂得多,而这些问题无疑都是值得我们 认真考虑的。本文将试图就此展开讨论。
伴随SMP技术的出现.带来另外的问题,那就是当应用增 加时.虽然可以通过增加处理器的方法来扩展系统能力,但是, ~方面需要有扩展连接处理器的系统总线的高超技术.并不是 每个系统厂商都能做到.另一方面由于对共享资源的竞争所造
成的系统瓶颈.使得单机系统的性能呈非线性增长。因此,当应 用增加超过单机系统的承受能力时.就采用集群系统(CLUS.
在消息传递模式中,一个并行程序由多个并行任务组成。每 个并行任务拥有自己的数据并对其进行计算操作。任务之间数 据的交换是通过显式的消息传递语句来完成的。
消息传递的并行方式虽然是在分布式内存的计算机结构基 础上发展而来的.但是几乎所有类型的计算机都支持这种并行 模式,因此更具通用性。消息传递方式的并行属于粗粒度并行。 程序员负责进程管理、消息传递及同步.并行的工作量要大于共 享内存并行模式。但同时程序员可以控制的也更多。可以通过仔 细考虑任务分配,并行算法等方式对程序进行优化。因而获得较 高的并行效率.国际上采用消息传递方式的应用软件远远多于 采用共享内存并行模式的应用软件。国内的高性能计算用户也 大多采用消息传递的并行方式开发自己的应用程序。
操作系统的构架。0penMP还使用编译器指令和库函数,帮助并 行应用程序员使用C,C++和FORTRAN创建多线程应用。
对于包含有多个耗时的循环的应用,0penMP特别有用,它 可以将工作划分为多个线程。任一应用中划分粗糙的循环级别
的并行机制的数量往往比较有限.限制了应用程序的可扩展性: 一个并行区域可能嵌入在其它并行区域之内。但是它们缺省的 执行方式是必须使用一个线程组来串行执行。ODenMP使用 fjrk—ioin并行机制,程序首先顺序执行,然后转换成为并行程
MPI是并行计算机的消息传递接口标准.根据应用程序对 消息传递功能的需求,全球工业、应用和研究部门联合推出标准 的消息传递界面函数.不考虑其具体实现.以保证并行应用程序 的可移植性:。指定该标准的主要目的是为了提高并行程序的可 移植性和使用的方便性。有了统一的标准.并行计算环境下的应 用软件库以及软件工具就都可以透明的移植。各个厂商可以依 据标准提供独具特色和优势的软件实现和硬件支持.从而提高 并行处理的能力。MPI没有简单地指定某系统为标准。而是吸 取许多已经广泛应用的消息传递系统的特点。它在采纳已有系 统优点的基础上.增加了许多新的特点.从而使其成为非常有吸 引力的标准。
来支持容错)。一般而言。使用MPI比较适合于开发MPP或同构 集群上的并行应用.可以有较高的通信性能;而PVM更适合于 异构的集群系统.
五2.1.PVM
PVM(ParaⅡe1 Virtual Machine)是由美国田纳西大学、奥克 里季国家实验室等研制的并行程序开发环境。它可以把多个异 构的计算机组织起来成为一个易于管理的、可扩展的、易编程使 用的并行计算资源.它的各个计算结点可以是共享存储或分布 式存储的多处理机或者是向量超级计算机、专用的图形、标量工
序。 0DenMP允许程序员使用划分良好Fra Baidu bibliotek循环级并行机制来扩
展应用.实现多处理一它们可以添加划分粗糙的并行机制,同时 仍然能保留以前在扩展方面所做的投资。使用这种增量式的开 发战略.程序员可以避免转向消息传递或其它并行编程模型时
所具有的风险。 要开发新的应用.程序员必须分析原始问题.将它分解为多
个使用共享和本地数据的任务.确定数据之间的依赖性,然后重
合适的计算机上执行:在下一个层次上,也就是体系结构相关模 式下.用户可以指定运行此任务的计算机类型:在最低的层次 上.用户可以指定一台特定的机器来执行特定的任务。无论采用 哪种模式.PVM都负责管理计算机间数据的传送和低层数据传 送的相关问题.PVM是一种十分灵活的消息传递系统.它支持 最一般的MIMD并行计算结构。这就使得几乎任何结构都可以 在PVM上建立。
到其他符合POSIX标准的环境中。这两个库一hbDtIlread和 libthread一中的大部分函数都是相互对应的。往往具有相似后 缀名的的POSIX和SOLARIS函数就具有相似的功能、参数个数 以及参数的作用。所有POSⅨ线程库的函数都以ptIlread为前 缀,而所有SOLARIS线程库函数都以thl为前缀。POSIX的整 体可移植性更好. 2.2.消息传递模式
2007年第3期
福建电脑
43
新组织任务进入执行单元的顺序.这可以使用并行编程环境来 实现编码。 2.1.2.POSIX线程
另一个较为广泛使用的是线程库IEEE的开放系统接口标
准一POSIX线程.通常称为Pt}lreads标准和Solaris线程库是目 前使用最广泛的线程库。这两种实现方法都是可内操作的(IN. 7IER一0PERABLE).它们的功能相似。并可以用在同样的应用 中。但是只有采用POSIX标准的线程才能确保可以完全的移植
MPI的具体实现:消息传递库函数.目前有影响的为MPICH 和LAMMPI.其中MPICH应用尤为广泛:两个版本目前均已实 现MH 1.2版,适用于任何并行计算平台:部分并行机已实现 MPI 2.O版。MPI是目前应用最广的并行程序设计平台,几乎被 所有并行计算环境(共享和分布式存储并行机、MPP、机群系统 等)和流行的多进程操作系统(UNⅨ、Windows NT)所支持,基于 它开发的应用程序具有最佳的可移植性成为目前高效率的超大 规模并行计算(1000个处理器)最可信赖的平台:工业、科学与 工程计算部门的大量科研和工程软件(气象、石油、地震、空气动 力学、核等)目前已经移植到MPI平台,发挥了重要作用。
就单台计算机系统而言.采用SMP技术是扩展其性能的比 较有效的方法.它可以将系统中的多个操作系统分布在多个处 理器上执行以获得并行处理的效果。SMP技术可以通过多线程 并行来提高性能。通过采用并行多线程技术,服务器可以通过 SMP技术同时处理多个应用请求.使得这些程序获得了更好的
运行效果.而且在台式机的专业应用软件中,并行多线程技术的 采用也日益增多。
1977年.DEC公司推出了以VAX为结点机的松散耦合的 集群系统.并成功地将VMS操作系统移植到该系统上。20世纪 90年代后.随着RISC技术的发展运用和高性能网络产品的出 现,集群系统在性能价格比(Cost/Pe如nIlance)、可扩展性(Scala. bilitv)、可用性(Availabilitv)等方面都显示出了很强的竞争力,尤 其是它在对现有单机上的软硬件产品的继承和对商用软硬件最 新研究成果的快速运用.从两方面表现出传统MPP无法比拟的
优势。 这里所介绍的高性能计算环境,从程序开发角度主要分为
以下两类:一大类是共享内存系统,包括并行向量机(PVP,Par_ auel Vector Pmcessor)、分布式共享存储多处理机(DSM.Dis. tributied Shared Memo“)和对称多处理机(SMP,SymmetIical
万方数据
存.结点通过高速以太网或专用高速网络连接。 由于以上两类并行环境差别较大.其采用的并行编程方法
也不同的。我们将分别介绍这两类系统上的开发环境与开发工 具.同时也略带介绍一下其他类型的并行编程开发模式:HPF、 并行库、串行并行化与多模式混合使用等。 2.并行程序的开发模式 2.1.共享内存模式
相关文档
最新文档