并行计算可以划分成时间并行和空间并行。时间并行即流水线技术,空间并行使用多个处理器执行并发计算,当前研究的主要是空间的并行问题。
并行计算是相对于串行计算来说的。要理解并行计算,首先需要了解串行计算。串行计算是不将任务进行拆分,一个任务占用一块处理资源。
图1 串行计算
并行计算则不同。首先,并行计算可以划分成时间并行和空间并行。时间并行就是流水线技术,空间并行使用多个处理器执行并发计算。目前以研究空间并行为主。从空间并行的角度来说,并行计算将一个大任务分割成多个子任务,每个子任务占用一定处理资源。并行计算中不同子任务占用的不同的处理资源来源于同一块大的处理资源。 换一个说法,就是将一块大的处理资源分为几块小的处理资源,将一个大任务分割成多个子任务,用这些小的处理资源来单独处理这些子任务。 并行计算中各个子任务之间是有很大的联系的,每个子任务都是必要的,其结果相互影响。
图2 并行计算
分布式计算
分布式计算可以看做是一种特殊的并行计算。
分布式计算也是将一个大的任务分成几个子任务,不同子任务占用不同的处理资源。不过分布式计算的子任务之间并没有必然联系(互不相干),不同子任务独享自己的一套单独的计算系统。跟并行计算的不同点在于,分布式计算的子任务具有独立性,一个子任务的运行结果不会影响其他的子任务,所以分布式计算对任务的实时性要求不高,且允许存在一定的计算错误(每个计算任务有多个参与者进行计算,计算的结果需要上传到服务器后进行比较,对结果差异大的进行验证)。
图3 分布式计算
网格计算
网格计算可以看做是一种特殊的分布式计算。
网格计算与分布式计算的核心思想类似,都是将一个大任务分成若干个子任务,这些子任务之间互不相干,占用独立的计算资源。区别在于分布式计算中处理子任务的各个计算节点只是在无偿地贡献自己的算力,无法使用其它计算节点的算力为自己做点什么。而网格计算的各个计算节点可以在贡献自己算力的同时,通过平台来调用其它计算节点的算力,并且其它计算节点也根本不知道你在调用它。
引用用户“孤独求败”([https://www.cnblogs.com/oldhorse/])的一段话:
分布式计算是将大任务化分为小任务,各台参与计算的电脑之间是在物理地域上的分布,一般有服务器作为“中央”,参与计算的电脑不用了解工作原理,仅仅只是就自己感兴趣的项目做贡献而已,注意,是“向别人”无偿的做贡献,不是自己“直接”受益;而网格计算是自己“直接”受益的,她通过一个平台允许你调用别人计算机的处理资源,而别人根本就不知道你在用他的资源!这就是说,分布式计算是你和其他人一起组成“一台”专供某些科研组织使用的超级处理机,网格计算是将所有网内其他人的电脑组成一台专供你自己使用的超级处理机。
图4 网格计算
美国国家标准与技术研究院(NIST)对云计算的定义:
云计算是一种模型,它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源(例如 ,网络、服务器、存储、应用、及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。
目前我们经常讨论的云计算不仅仅是一个计算模型,还包含了运营服务等概念。 云计算是分布式计算、并行计算和网格计算的发展,或者说是这些概念的商业实现。
图5 云计算
-
处理器
+关注
关注
68文章
19155浏览量
229049 -
云计算
+关注
关注
39文章
7726浏览量
137182
发布评论请先 登录
相关推荐
评论