并行计算、分布式计算以及网格计算和云计算都是属于高性能计算(HPC)的范畴,主要目的在于对大数据的分析与处理,但它们却存在很多差异。我们需要了解两者的原理、特点和运用的场合,对云计算的了解大有裨益。
之所以将两种计算技术放在一起,是因为这两种计算具有共同的特点,都是运用并行来获得更高性能计算,把大任务分为N个小任务。但两者还是有区别的,关于两者的区别在后面有介绍。
并行计算
1、并行计算概念
并行计算(Parallel Computing)又称平行计算是指一种能够让多条指令同时进行的计算模式,可分为时间并行和空间并行。时间并行即利用多条流水线同时作业,空间并行是指使用多个处理器执行并发计算,以降低解决复杂问题所需要的时间。
并行计算同时使用多种计算资源解决计算问题的过程。为执行并行计算,计算资源应包括一台配有多处理机(并行处理)的计算机、一个与网络相连的计算机专有编号,或者两者结合使用。并行计算主要目的在于两个方面:
-
(1) 加速求解问题的速度。
-
(2) 提高求解问题的规模。
2、并行计算的原理
并行计算能快速解决大型且复杂的计算问题。此外还能利用非本地资源,节约成本 ― 使用多个“廉价”计算资源取代大型计算机,同时克服单个计算机上存在的存储器限制。
为提高计算效率,并行计算处理问题一般分为以下三步:
-
(1)将工作分离成离散独立部分,有助于同时解决;
-
(2)同时并及时地执行多个程序指令;
-
(3)将处理完的结果返回主机经一定处理后显示输出。
从上图可以看出,串行计算必须按步骤一步一步计算才能出来最终结果。而并行计算则要将问题分成N多个子任务,每个子任务并行执行计算。而每个子任务是非独立的,每个子任务的计算结果决定最终的结果。这个和分布式计算不同。
3、并行计算需满足的基本条件
-
(1)并行计算机。并行计算机至少包含两台或两台以上处理机,这此处理机通过互联网络相互连接,相互通信。
-
(2)应用问题必须具有并行度。也就是说,应用可以分解为多个子任务,这些子任务可以并行地执行。将一个应用分解为多个子任务的过程,称为并行算法的设计。
-
(3)并行编程。在并行计算机提供的并行编程环境上,具体实现并行算法,编制并行程序并运行该程序,从而达到并行求解应用问题的目的。
分布式计算
1、分布式计算概念
分布式计算是一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。分布式计算和集中式计算相对应的概念。
2、分布式计算的优点
分布式计算是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。
分布式计算比起其它算法具有以下几个优点:
-
(1)稀有资源可以共享。
-
(2)通过分布式计算可以在多台计算机上平衡计算负载。
-
(3)可以把程序放在最适合运行它的计算机上。其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。
3、分布式计算原理
Hadoop计算框架是出现比较早的一个分布式计算框架,由Apache基金会所开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。
并行计算与分布式计算区别与联系
并行计算和分布式计算既有区别也有联系。从解决对象上看,两者都是大任务化为小任务,这是他们共同之处。 具体区别和联系如下表所示:
结语
并行计算、分布式计算以及网格计算和云计算都是属于高性能计算(HPC)的范畴,主要目的在于对大数据的分析与处理,但它们却存在很多差异。我们需要了解两者的原理、特点和运用的场合,对云计算的了解大有裨益。