超算和分布式计算

之前就在想,分布式计算既然这么厉害,为什么还会需要超算呢,就从网上看了一些资料。

 

分布式计算工作原理

分布式计算是利用互联网上的计算机的中央处理器的闲置处理能力来解决大型计算问题的一种计算科学。下面,我们看看它是怎么工作的:

首先, 要发现一个需要非常巨大的计算能力才能解决的问题。这类问题一般是跨学科的、极富挑战性的、人类急待解决的科研课题。其中较为著名的是:

  1. 解决较为复杂的数学问题,例如:GIMPS(寻找最大的梅森素数)。

  2. 研究寻找最为安全的密码系统,例如:RC-72(密码破解)。

  3. 生物病理研究,例如:Folding@home(研究蛋白质折叠,误解,聚合及由此引起的相关疾病)。

  4. 各种各样疾病的药物研究,例如:United Devices(寻找对抗癌症的有效的药物)。

  5. 信号处理,例如:SETI@Home(在家寻找地外文明)。

在以前,这些问题都应该由超级计算机来解决。但是, 超级计算机的造价和维护非常的昂贵,这不是一个普通的科研组织所能承受的。随着科学的发展,一种廉价的、高效的、维护方便的计算方法应运而生——分布式计算!

随着计算机的普及,个人电脑开始进入千家万户。与之伴随产生的是电脑的利用问题。越来越多的电脑处于闲置状态,即使在开机状态下中央处理器的潜力也远远不能被完全利用。我们可以想象,一台家用的计算机将大多数的时间花费在“等待”上面。即便是使用者实际使用他们的计算机时,处理器依然是寂静的消费,依然是不计其数的等待(等待输入,但实际上并没有做什么)。互联网的出现, 使得连接调用所有这些拥有限制计算资源的计算机系统成为了现实。

那么,一些本身非常复杂的但是却很适合于划分为大量的更小的计算片断的问题被提出来,然后由某个研究机构通过大量艰辛的工作开发出计算用服务端和客户端。服务端负责将计算问题分成许多小的计算部分,然后把这些部分分配给许多联网参与计算的计算机进行并行处理,最后将这些计算结果综合起来得到最终的结果。

distrubuted computing是指很多个computing node分散开,互相之间没有很快的网络连接,各自领一个任务的一部分,算完后把结果汇总。这个任务是可以分解成一个个独立的小任务,不需要node之间太多通信的。而parallel computing是很多个computing node放在一起,互相之间用最快的网络连接,一起计算一个任务,这个任务有很多个步骤,需要各个node之间有很频繁的通信,通信的数据量可以很大。

即使是使用了比普通的网络快很多的InfiniBand,很多程序在超算上跑的时候性能瓶颈依然是在节点之间的通讯,因为数据量实在太大了。可想而知如果这种任务放在分布式计算上跑,使用平均200KB/s而且时不时掉线的网络传输数据程序要跑多久。

所以个人的想法是,超算和分布式在算力上不会有太大差距,但是大量数据的传输会影响运算的时间,而这正是使用超算的人最需要的东西。当然,分布式如今也满足了一部分对超算的需求。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值