分布式计算可以看做是一种特殊的并行计算。
分布式计算也是将一个大的任务分成几个子任务,不同子任务占用不同的处理资源。不过
分布式计算的子任务之间并没有必然联系(互不相干),不同子任务独享自己的一套单独的计算系统
。跟并行计算的不同点在于,
分布式计算的子任务具有独立性,一个子任务的运行结果不会影响其他的子任务
,所以分布式计算对任务的实时性要求不高,且允许存在一定的计算错误(每个计算任务有多个参与者进行计算,计算的结果需要上传到服务器后进行比较,对结果差异大的进行验证)。
图3 分布式计算
网格计算可以看做是一种特殊的分布式计算。
网格计算与分布式计算的核心思想类似,都是将一个大任务分成若干个子任务,这些子任务之间互不相干,占用独立的计算资源。区别在于
分布式计算中处理子任务的各个计算节点只是在无偿地贡献自己的算力,无法使用其它计算节点的算力为自己做点什么。而网格计算的各个计算节点可以在贡献自己算力的同时,通过平台来调用其它计算节点的算力,并且其它计算节点也根本不知道你在调用它。
引用用户“孤独求败”([https://www.cnblogs.com/oldhorse/])的一段话:
分布式计算是将大任务化分为小任务,各台参与计算的电脑之间是在物理地域上的分布,一般有服务器作为“中央”,参与计算的电脑不用了解工作原理,仅仅只是就自己感兴趣的项目做贡献而已,注意,是“向别人”无偿的做贡献,不是自己“直接”受益;而网格计算是自己“直接”受益的,她通过一个平台允许你调用别人计算机的处理资源,而别人根本就不知道你在用他的资源!这就是说,分布式计算是你和其他人一起组成“一台”专供某些科研组织使用的超级处理机,网格计算是将所有网内其他人的电脑组成一台专供你自己使用的超级处理机。
图4 网格计算
美国国家标准与技术研究院(NIST)对云计算的定义:
云计算是一种模型,它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源(例如 ,网络、服务器、存储、应用、及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。
目前我们经常讨论的云计算不仅仅是一个计算模型,还包含了运营服务等概念。
云计算是分布式计算、并行计算和网格计算的发展,或者说是这些概念的商业实现。
图5 云计算
(本文为新竹清华大学《
并行计算
与并行编程》课程笔记 )
关于分布式系统和
并行计算
,其实没有必要非得区分个一二来。当然它们各有侧重,分布式系统是基于网络的一种软件,而
并行计算
更像是一种概念,这个概念可以在硬件中出现,也可以在软件中出现。再比如分布式系统更偏向于管理一组
计算
机,而
并行计算
关注的是每一个
计算
节点即一个处理器、一个core。因此,一个CPU或GPU芯片也是
并行计算
施展的领域。
在这门课程里,
并行计算
其实是在硬件、系统、编程模型和编程语言四个不同的层次上讨论的。
它们的应用场景也很类似:如
所有的模块都在一台机器上,请求处理和数据部署都可能在一台机器上
好处:功能、代码和数据集中,便于维护、管理和执行
缺点:硬件系能提升是有限的,不可能无限的提高cpu等硬件性能.性价比也需要考虑.
除此之外,还会有单点失效的问题,一台机崩溃,所有的服务都不能用
2游击队模式:数据并行或数据分布式
在单兵模式下,进行数据的拆分,执行的步...
图像连通域标记算法是从一幅栅格图像(通常为二值图像)中,将互相邻接(4邻接或8邻接)的具有非背景值的像素集合提取出来,为不同的连通域填入数字标记,并且统计连通域的数目。通过对栅格图像中进行连通域标记,可用于静态地分析各连通域斑块的分布,或动态地分析这些斑块随时间的集聚或离散,是图像处理非常基础的算法。目前常用的连通域标记算法有1)扫描法(二次扫描法、单向反复扫描法等)、2)线标记法、3)区域增长法。二次扫描法由于
简单
通用而被广泛使用!图1连通域标记示意图随着所要处理的数据量越来越大,使用传统的
串行
计算
技术的连通域标记算法运行时间过长,难以满足实际应用的效率需求。随着
并行计算
技术的发展,利用不同
并行计算
:parallel computing
分布式计算
:distributed computing
并行计算
:这是一台
计算
机的概念,即一台
计算
机中多个处理器被组织起来,大任务下达的时候,将大任务分成若干个小任务,然后分配给若干个处理器进行运算。
分布式计算
:这个一组
计算
机的概念,通过
计算
机网络连接起来,大任务下达的时候,将大任务分成若干个小任务,然后分配给若干个
计算
机进行运算。
显然,
分布式计算
非常强调
计算
机网络中的
计算
机合作,并行式
计算
强调一个
计算
机的多个处理器合作。
一个是系统总线相连处理器