串行和并行的区别_并行计算机未来发展前景浅析

20世纪60年代初期, 由于晶体管以及磁芯存储器的出现, 处理单元变得越来越小, 存储器也更加小巧和廉价。这些技术的发展促进了并行计算机的产生。到80年代蓬勃发展和百家争鸣,再到90年代体系结构框架趋于统一,并行计算机得到突破性的发展。现代计算机的发展历程可以分为2个时代:串行计算时代和并行计算时代。并行计算是在串行计算的基础上发展起来的。并行计算将一项大规模的计算任务交由一组相同的处理单元共同完成。在此期间,各处理单元相互通信与协作,从而获得更高的效率。从并行计算的角度来看, 并行计算机的两个最主要的组成部分是计算节点和节点间的通信与协作机制。并行计算机系统在未来的应用前景会怎样?在今后的科研中应该如何提高并行机的性能?这都是需要去努力解决的问题,本文简单谈一下我的看法。

13b8c30c20744706fe59d093a1bf9ffc.png

1 并行计算机系统的相关介绍

1.1 并行计算机系统现状

并行计算机对于国家安全等重要领域有着举着轻重的作用。我国的并行计算研究始终紧跟国际步伐,尽管在方面开展的研究和应用较早,也拥有很多的并行计算资源,但成效相对美日等发达国家还存在较大的差距,在研究中形成了“理论-设计-实现-应用”的一体化并行计算研究体系。但并行计算的发展依旧是参差不齐的,目前并行应用的效率依然较低,无法高效的使用并行计算机的资源,导致大量资源闲置。并行程序编写难度较大,并行编程语言对于一般的编程人员还不够简单易行,也缺乏高效的并行编程环境工具, 并行计算机本身的构建也存在着能耗过大、管理困难、可扩展性差等方面的问题。

并行计算科学中主要研究的是空间上的并行问题。空间上的并行导致了两类并行机的产生:单指令流多数据流(SIMD)和多指令流多数据流(MIMD)。目前的主流并行计算机系统有五种:并行向量机、对称处理机、大规模并行处理机、机群、分布式共享存储多处理机。现代计算机发展历程可以分为两个明显的发展时代: 串行计算时代和并行计算时代。每一个计算时代都从体系结构发展开始, 接着是系统软件(特别是编译器与操作系统)、应用软件, 最后随着问题求解环境的发展而达到顶峰。创建和应用并行计算的主要原因是因为并行计算是解决单处理器速度瓶颈的最好方法之一,而并行计算的硬件平台是并行计算机,它由一组处理单元组成, 这组处理单元通过相互之间的通信与协作,以更快的速度共同完成一项大规模的计算任务。受元件的物理因素限制,计算机单机速度尽管仍在提高,但已经接近极限速度,单纯靠提高器件速度已不可能达到所期望的高性能,于是高性能计算机研究热点集中在并行计算上,即从计算机体系结构上找出路,将多个性质相同的或不相同的处理机通过互联网络连在一起形成并行计算机。

1.2 并行计算与并行计算模型

并行计算(parallel computing)大致流程为: 对于一个给定的问题,首先,将这个问题转化为一个数值或非数值的计算问题; 然后对此问题设计并行算法, 并通过某种并行编程语言实现它;最后在具体的并行计算机上运行应用软件求解此问题。

并行计算模型是研究并行算法的性能和开发具有可移植性的并行程序而建立的一种理论计算模型。从诞生至今提出了很多模型包括:PRAM模型,它是简单的共享内存模型,适合于并行算法表达分析、比较,但太抽象;QSM模型与APRAM模型;BSP模型,它是关于通信的模型;Postal模型,它是用于消息传递系统;C3模型,它是一个与体系结构无关的粗粒度并行计算模型。互连网络模型,它基于并行机互连网络结构的分散存储计算模型,强调并行机拓扑结构特性。这些模型的发展过程,恰好体现了当代并行计算的发展过程—从共享存储到分布存储,从同步到异步,它们一个比一个更接近实际,更加不断完善。

1.3 并行计算机系统存在的问题

并行计算机的发展并不是一帆风顺的,首先,在并行计算中缺乏象串行计算中,冯·诺依曼模型那样的广泛认同的并行计算模型,尽管存在上述诸多模型如:PRAM模型、APRAM模型,BSP模型,LOGP模型,C3模型等,但是它们都是基于并行计算机不同层次和类型的抽象,没有一个可以成为普遍接受的简单的准确的计算模型,另外,随着非独占和异质性的工作站集群(NOW)的发展与流行,使得这些模型更加无法成为并行机软件、硬件之间的桥梁;其次,在并行计算中没有适当的性能度量和分析标准,不能够客观、公正地评价和比较算法体系结构及算法体系结构组合的性能好坏。对并行计算机的性能评价和度量方常用的有加速比、平均开销、效率、性能、粒度、平均时延等指标。

尽管并行计算机存在的一些问题的彻底解决尚需时日,但这并未妨碍该领域的发展与研究,并行计算机依旧是当今超级计算机的主流。在目前看来未来并行计算机的发展方向应从实际计算模型上的算法研究转向实际计算模型上编程的研究,即从理论研究转向实际应用,集中研究编程者在现行并行机上,如何方便地利用系统现有的并行环境去开发出更为高效的并行程序,提高算法的可移植性。而且还可以将并行计算模型、算法、编程进行一体化研究,它强调在通用的并行环境上,利用并行计算模型来定量预测和分析并行程序的实际运行性能。

1 并行计算机系统的发展

一台通用性较强、 性能很高的并行机,不仅要实现低延迟高带宽的互连网络接口,而且应具有可扩展性,单一系统形象,友好的并行编程环境。这些因素决定着并行计算机系统的性能。

2.1 可扩展性与可编程性

可扩展性是并行计算机最大的优势,可简单定义为“在确定的应用背景下,计算机系统的性能要随处理机数的增加而线性增长”。可扩展性包括规模可扩展、时间可扩展和问题可扩展几个方面。规模可扩展的要点是均衡,均衡的目的是防止瓶颈的发生,“三T”表达了当今均衡的指标。时间可扩展也称换代可扩展,主要指体系不受限于芯片、器件、工艺等。问题可扩展指格点增加时,系统能适应问题规模的扩大;而当问题的粒度加大时,效率能相应提高。可扩展的系统一定是一个开放系统, 其追求的目标是:算法不依赖于体系结构,应用不依赖于平台, 节点设计与网络无关而网络接口与网络拓扑无关。可扩展的系统一定是一个各方面平衡的系统,没有明显的性能瓶颈。

可编程性是在并行机发展的过程中,伴随可扩展性而产生的新概念。并行计算机有共享与分布式两种存储结构,所以操作系统进程间的通信(IPC)也有两种不同的机制:共享变量和信息传递。机器结构和操作系统的这些区别又影响到支撑软件和应用软件的编程模式。SMP的程序设计仍以传统的高级语言为基础,系统提供自动并行识别或增加并行语言成分。而MPP必须建立另一种编程环境(如PVM、MPI等),在程序中显式地写出信息的发送和接收。这不仅导致应用软件编写困难,还给广大用户增加了很多负担。为此,创建了一个新的单词Programmability,用以描述并行计算机的这一重要特点。

可扩展性与可编程并行计算机,包括SMP(共享存储多机系统)、MPP(大规模并行处理系统)、PVP、以及工作站群集NOW。PVP与SMP的主要不同是CPU,后者是标准的RISC芯片,而前者是各个厂家自行研制的向量处理机。最近几年,超级计算应用领域对计算机性能的需求飞速增长,不仅向量机不能担此重任,SMP和PVP也已力不从心。MPP仍呈上升趋势,而SMP出现了转折,呈下滑之态。

从存储和编程模式看,并行机可分为SMP与MPP两类。SMP具备可编程性,不易扩展;MPP具有可扩展性,不易编程。如何将两者的优点融合在同一并行结构中,一直是困扰超级计算机研制者的难题。并行处理的发展趋势是用分布式共享存储结构和标准Unix来构造可扩展超级计算机。即并行计算机发展的趋势既不是SMP,也不是MPP,而是两者优势互补的DSM。

2.2 分布式共享存储

在分布式环境下实现存储逻辑共享,是一个相当困难和复杂的问题。现今的计算机存储器速度远远落后于CPU,这是一个长期得不到很好解决的严重瓶颈。而在分布式共享存储并行机中,一个CPU存取远程节点上的存储单元要像存取本地单元一样,不仅方便而且具有令人满意的效率,这使问题难上加难。按照并行计算模型LogP的观点,这里主要有三个因素:发送与接收端的开销,带宽倒数和时延。并行系统规模扩展时,节点增加,数据传送的路径变长。为此,人们用硬件实现了Wormhole(虫蚀寻径)技术,把数据包分割为更小的片(或叫微包),采用异步流水的办法,使时延几乎与经过的节点数无关。随着路上时延的大幅度减小,发送与接收的开销更为突出。人们将进程破分为线程(thread),使两端的开销减少了两个数量级。在这过程中还有这诸多的包括逻辑上和硬件上的限制因素。

2.3 并行计算机系统当前发展形势基本估计

当前,并行机发展基本状况是:

(1)并行软件的发展远远落后于并行计算体系结构的发展

(2)并行计算的应用远远落后于并行计算技术的发展

(3)大规模并行处理系统已不再是主要研究领域

(4)有高速网联成的各种类型、闺蜜可伸缩计算机群,将进一步促使并行计算应用的发展

(5)计算系统的可扩展和可编程性已成为并行机未来发展的一对主要矛盾

计算机的发展历程就是人们在探索过程中不断追求计算机的功能、性能、功率以及花费等方面的高度协调,以期达到各方面的最佳状态,在能耗、花费、可用性的限制下实现计算机的多功能、高性能、低功率的一个并行计算时代。的确,计算机性能的提高很大程度上取决于元器件的发展,但是另一方面,体系结构的发展也扮演着极为重要的角色。尤其是并行技术的诞生和发展。并行性包括时间并行性和空间并行性两部分。一般时间并行性的开发采用资源共享和时间重叠的方法,而空间并行性的提高则采用资源重复的方法。大规模并行结构尚有三大难题:节点负载均衡问题,Cache一致性问题和通讯同步问题,均为全局优化问题。冯・诺依曼结构的一维顺序存储模型严重地制约了并行体系结构的发展,在此基础上进行并行性的挖掘只能有限地提高计算机性能。

2cce9e809911663d52fe196a69122915.png

2.4 并行软件与多核技术

在并行机硬件与用户需求之间有一巨大间隔,只能靠软件来填补。并行计算机的应用效率和可用性主要取决于并行软件。计算能力并不是衡量超级计算机的唯一重要标准,拿天河二号为例,它的运算能力世界第一,但是功能却远远落后于美国等国家的超级计算机。并行算法的效率与体系结构密切相关。将常用的并行算法经充分优化后做成并行算法库供用户调用, 将目前广泛使用的库函数并行化变成标准的并行库函数, 这是推广并行机必须要做的事, 也是提高并行机实际性能的关键技术。

多核技术的出现与主流化, 对于并行计算体系结构、并行算法、并行程序设计与并行应用的研究都分别产生了重要的影响, 带来了新的挑战。一般说来,超级计算机系统可分为两大部分,一部分是包括硬件和系统软件的平台,另一部分是应用软件。对不具有可编程性的超级计算机,即使平台有较高的性价比,但却大大增加了移植原有应用软件的难度和开发新的应用软件的成本,从而导致整个系统的性价比大幅度下降。多核化趋势正在改变并行计算的面貌. 跟传统的单核CPU相比, 多核CPU带来了更强的并行处理能力、更高的计算密度和更低的时钟频率, 并大大减少了散热和功耗。随着多核技术和并行计算的发展, 人们开始不再仅仅关注并行计算机的高性能,也开始关注高效能。多核技术对并行计算机系统的算法和编程带来了很大的困难. 程序代码迁移也是个问题,需要有一个清晰的迁移策略, 来使其代码可以最大化地利用多核硬件资源, 同时为之付出的迁移代价要尽可能的小。未来的并行计算机系统需要去适应多核系统的发展,多核技术促进了并行编程的普及以及并行程序设计的进步,降低了物理上共享存储的并行处理平台的门槛。并行计算机系统的研究面临着诸多的机遇和挑战,相信在未来会有更大的突破。

8b0812a9222fca880b1044d6a73571c4.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值