【转载】理论上一个超级计算机的 CPU 数量有限制吗?

同意 @太阳 的回答,只是因为比较简短,我还是多说几句吧~

此回答作为@余天升 的补充,仅仅就软件部分展开。
  • 首先这个问题让我想起了一句话:“你可以让1个人用60秒挖一个2米深的坑,但是没有办法让60个人用1秒挖一个2米深的坑。” 
  • 但是如果我们将这句话再改一下: “你可以让1个人用60秒打扫一个60平方米的空地,同时也可以让60个人用1秒打扫一个60平方米的空地 ”  
从第一句话可以看出计算速度与工作一样,并不能随计算机数量的增加而线性增加;而从第二句话可以看出,计算速度可以随计算机数量的增加而线性增加, 对比这两句话我们就可以看到一个事实, 就是说存在着两种极端情况,分别是
  1. 一个计算工作每一次运算的结果如果都与下一次运算存在因果关系,就像挖坑的时候只能从上往下一步一步挖,此时多线程计算就像一个工人在忙活,其余工人在围观一样,超级计算机也完全派不上用场。
  2. 每一个计算工作都是相互独立的,这群工人可以每个人完成自己独自的工作而不受他人的影响,那么此时多线程计算就能完全派上用场。
总之,超级计算机不仅存在硬件设计上的困难,在软件设计上也需要重新编排。而其核心思想就是算法并行化设计。最大限度地打破原算法的次序并按照计算平台的特性合理设计算法,保证每个CPU都能干上活。当然这也就意味着即便是超级计算机,其对软件运行的加速效果实际上也是与该软件的算法息息相关的。为了能够有效利用超级计算机的计算性能,重新设计用来跑在超级计算机上的程序代码是必须的。在大学的图书馆,关于并行计算的书籍与相关资料都会有,也有一些研究所是专门从事并行计算研究的。

而所谓的软件就能管理几百几千个CPU,这样的技术恐怕目前还不知是否有可行性。最简单的例子就是,你所用的intel多核处理器体现的优势仅体现在能让你一边看电影一边打游戏。但是还没有什么软件或者驱动声称能够打通CPU的任督二脉,让你的电脑游戏性能成倍提升。

— 完 —
本文作者:知乎用户(登录查看详情)

知乎是一个真实网络问答社区,在这里可以寻找答案、分享知识,发现一个更大的世界。
下载知乎 iPhone 客户端: http://zhi.hu/ios
此问题还有 7 个回答,查看全部。
延伸阅读:
用超级计算机构造大脑的理论基础是什么?
什么时候民用计算机能达到现在排名前十的超级计算机的计算水平?


来源:
知乎每日精选
http://www.zhihu.com/rss
http://zhi.hu/DCYz?m=rss.1.1073741825

评论