并行计算、分布式计算、网格计算与云计算都属于高性能计算(High Performance Computing,HPC)的范畴,主要目的在于对大数据的分析与处理,但它们却存在很多差异。电子海图云服务是基于高性能计算的理论技术、通过对传统服务体系结构的改进,以实现海量电子海图数据的快速存取与处理操作,使其更好地为海洋地理信息科学领域中的计算密集型和数据密集型问题提供相应的计算和处理能力。高性能计算体系结构是海量电子海图数据存储与处理的技术基础,也是顺利进行电子海图云服务原型系统开发的保证。以下将对并行计算、分布式计算、网格计算与云计算之间的区别与联系做分析。

并行计算

       并行计算是相对于串行计算而言的,它是指一种能够让多条指令同时进行的计算模式,可分为时间并行和空间并行。时间并行即利用多条流水线同时作业,空间并行是指使用多个处理器执行并发计算,以降低解决复杂问题所需要的时间。从程序开发人员的角度看,并行计算又可分为数据并行与功能并行,数据并行是通过对数据的分解实现相同子任务的并行作业,功能并行是通过对任务的分解实现相同数据不同任务的并行作业。相比较而言,数据并行较易实现,因此本文在并行算法研究时也将基于数据并行的原则进行设。对于并行计算的研究在上世纪70年代开始,就已有相关理论研究,如单指令多数据流(SIMD)与多指令多数据流(MIMD)的并行机制研究,到了80年代在并行体系结构方面有了很大成果,出现了利用网络组成多台计算机的并行结构与利用共享存储器组成多处理器的并行计算机,科学家利用这种并行计算结构在技术高精尖领域缩减了解决复杂问题的时间。

       从以上分析可得出,早期的并行计算主要应用于科学研究领域,具有特定的应用环境,需要利用很高的技术技巧才能完成任务所需要的并行程序设计。虽然当时的并行计算离普

通大众还很遥远,但已经为复杂问题求解(如功能并行、数据并行、通信协调等)奠定了方法论基础。可以说,并行计算是云计算的初始阶段或者说是萌芽期,它为云计算的发展提供了实际而朴素的思想和基本思路。

分布式计算

       分布式计算是一种把需要进行大量计算的工程数据分区成小块,由多台联网计算机分别处理,在上传处理结果后,将结果统一合并得出数据结论的科学。在90年代,随着TCP/IP协议的最终确定,计算机网络快速发展,Web Service等网络新技术随之而来,为基于广域网的分布式计算做好了硬件与软件基础。首先来比较下分布式计算与并行计算的异同。其相同之处都是将复杂任务化简为多个子任务,然后在多台计算机同时运算。不同之处在于分布式计算是一个比较松散的结构,实时性要求不高,可以跨越局域网在因特网部署运行,大量的公益性项目(如黑洞探索、药物研究、蛋白质结构分析等)大多采用这种方式,而并行计算是需要各节点之间通过高速网络进行较为频繁地通信,节点之间具有较强的关联性,主要部署在局域网内。在分布式计算的算法中,我们更加关注的是计算机间的通信而不是算法的步骤,因为分布式计算的通信代价比起单节点对整体性能的影响权重要大得多。
       从以上分析可得出,分布式计算是网络发展的产物,是由并行计算演化出的新模式:网络并行计算。如果说并行计算为云计算奠定了理论基础,那么分布式计算则为云计算的实现打下了坚固的网络技术基石。

网格计算

       网格计算是指通过利用多个独立实体或机构中大量异构的计算机资源(处理器周期和磁盘存储),采用统一开放的标准化访问协议及接口,实现非集中控制式的资源访问与协同式的问题求解,以达到系统服务质量高于其每个网格系统成员服务质量累加的总和。
       在90年代中期,分布式计算发展到一定阶段后,网格计算开始出现,其目的在于利用分散的网络资源解决密集型计算问题。当时由于高端的计算机硬件价格不菲,研究人员试图通过定义专门的协议机制以实现对分散异构且动态变化的网络资源管理,以解决高端计算机才能解决的密集型运算问题。网格计算与虚拟组织的概念由此产生,它通过定义一系列的标准协议、中间件以及工具包,以实现对虚拟组织中资源的分配和调度。它的焦点在于支持跨域计算与异构资源整合的能力,这使它与传统计算机集群或简单分布式计算相区别。为使网格计算能够成为类似于水电网的日常公共服务,Ian Foster提出应该定义一个在网络中获取计算或存储资源的标准协议,在这一理论指导下,世界各组织设计了一系列的网格系统,如OSG、ESG、EGEE等,这些网格系统能够按照设计人员的要求提供所需要的计算资存储资源甚至多种数据服务与功能服务。OASIS、OGF等国际标准组织也制定了相关标准,网格计算曾一度被认为是集群计算的市场化。然而迄今为止,商业化的网格系统仍然没有出现。过于庞大的概念、异常复杂的协议标准使得真正实现实用化的网格项目都是由国家行为推动的,如EUGrid、DataGrid、ChinaGrid、EduGrid等。然而网格计算的发展,为云计算的出现提供了基本的网络框架支持。

云计算

       云计算是一种由大数据存储分析与资源弹性扩缩需求驱动的计算模式,它通过一个虚拟化、动态化、规模化的资源池为用户提供高可用性、高效性、弹性的计算存储资源与
数据功能服务。其具备五个关键特点:①基于分布式并行计算技术;②能够实现规模化、弹性化的计算存储;③用户服务的虚拟化与多级化;④受高性能计算与大数据存储驱动;⑤服务资源的动态化、弹性化。近年来云计算能够获得普遍关注的原因主要有以下三点:①设备存储计算能力的提升与成本的下降,多核、多处理器技术的诞生与普及;②各行业积累了越来越多的专业数据,亟需得到有效利用;③网络服务和Web2.0应用的广泛使用。
从以上分析可知,在概念层次上云计算与并行计算、集群计算、网格计算、分布式计算存在交叉,正如上一节所描述的云计算不仅是从网格计算演化来的,而且网格计算还为

       云计算提供了基本的网络框架支持。网格计算的焦点在于计算与存储能力的提供,而云计算更注重于资源与服务能力的抽象,这就是网格计算向云计算的演化。与分布式计算比较,云计算是一种成熟稳定的流式商业资源,它为用户提供可量算的抽象服务就如同水电厂提供可量算的水电资源一样便捷可靠。图1.1显示了云计算与其他相关概念的关系。Web2.0诠释了面向服务的发展方向,云计算成为其中的主力;并行计算和集群计算更注重于传统面向应用的程序设计;网格计算由于其概念的庞大与这四个领域都有交叉,从广义的角度讲,分布式计算包含了整个概念域。


       根据以上分析,我们可以得出这几个概念的关系。从计算机用户角度来讲,并行计算是由单个用户完成,分布式计算是由多用户合作完成,网格计算是由庞大的异构计算组织完成,云计算是没有用户参与由另一端的弹性服务集群完成。

内容出自 信息工程大学 刘灿由 博士论文。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐