Linux之父Linus说:并行计算基本上就是浪费大家的时间

本文的内容翻译自 Linux 之父 linus torvalds 最近发表的一个帖子

并行计算有什么好的?

硬件的性能无法永远提升,当前的趋势实际上趋于降低功耗。那么推广并行技术这个灵丹妙药又有什么好处呢?我们已经知道适当的乱序CPU是必要的,因为人们需要合理的性能,并且乱序执行已被证明比顺序执行效率更高。

推崇所谓的“并行”极大地浪费了大家的时间。“并行更高效”的高大上理念纯粹是扯淡。大容量缓存可以提高效率。在一些没有附带缓存的微内核上搞并行毫无意义,除非是针对大量的规则运算(比如图形处理)。

没人会回到从前了。那些复杂的乱序运行内核不会消失。扩展不会一直进行下去,人们需要的是移动性,因此那些主张扩展至上百内核的都是疯子,不要鸟他们。

他们究竟是如何幻想那些神奇的并行算法会有用武之地的呢?

并行只有对图形计算和服务器有意义,而在这些领域我们已经大量应用并行了。把并行推广到其他的领域没有意义。

所以说忘记并行吧。它不会到来的。4个左右的内核对终端用户来说没有问题,在移动领域里,不大幅增加能耗的情况下,你没办法再塞进更多的核。任何一个理智的人都不会为了要塞入更多的内核而阉割内核以降低其大小和性能,阉割内核的唯一理由是你想进一步降低功耗,因此你还是不会得到大量的核。

所以争论是否要讲究程序的并行性根本就是谬误,其前提条件都是错误的。它只不过是一个早该过时的时髦术语罢了。

并行程序在上面提到的一些地方是有用的,并且已经大量地运用了,比如在服务器领域,人们已经并行很多年了。

在其他的领域,并行不是一定必须的,即便是在将来的一些未知领域也是如此,因为你做不到。假如你要做低功耗通用计算机视觉,我基本可以保证你不会使用通用图形处理器(GP CPU)。你甚至不会用图形处理器,因为其功耗也太高了。你大概会用特殊的硬件,很可能是基于某些神经网络的硬件。

放弃吧。“并行就是未来”的说法就是一片浮云。

Linus

[英文原文:Linus: Parallel computing is a huge waste of everybody's time ]

本文的译者:Ryan Chen

Ryan Chen(英文名)。目前在美国圣地亚哥,高通高级工程师。他的微博是@奋斗中的胖胖。你还可以通过邮箱ryanmailing@gmail.com和他进行交流。

分享这篇文章:

12 Responses to Linux之父Linus说:并行计算基本上就是浪费大家的时间

  1. katezhang 对这篇文章的反应是赞一个
  2. stackvoid says:

    的确是,并行吹嘘过度了

  3. applesnake says:

    没有银子弹,没有万能药。

  4. 韩琪 对这篇文章的反应是赞一个
  5. Black says:

    那就在下一个版本的内核里面把多线程相关的代码都注释掉。看他们怎么并。

  6. lunlunl 对这篇文章的反应是赞一个
  7. ruby says:

    这肚子。。。。

  8. 海淀网友 says:

    库克会不会点赞?

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据