编者按:目前美国所有能源消耗中约有5%用于计算机的运行,这是整个经济的巨大成本。此外,这些计算机使用的所有能源最终都会转化为热量。这就造成了第二个成本:防止计算机温度过高的成本。为什么人类做某件事不需要耗费特别大的能量而计算机做同样的事却耗费巨大的能量?电脑的效率可能大大提高,但要做到这一点,我们需要更好地理解计算的热力学。本文原标题《Why Do Computers Use So Much Energy?》

微软目前正在进行一组有趣的硬件实验。该公司将计算机服务器装进经过改造的集装箱,并将其浸入海中。最近一轮实验正在苏格兰奥克尼群岛附近进行,共涉及864台标准的微软数据中心服务器。很多人都对这家西雅图高科技公司的合理性提出了质疑,但说真的,微软为什么要这么做?

有几个原因,但其中最重要的一个原因是,当计算机服务器在海底时,保持冷却的成本要低得多。这种冷却不是一笔小费用。精确的估计会有所不同,但目前美国所有能源消耗中约有5%用于计算机的运行,这是整个经济的巨大成本。此外,这些计算机使用的所有能源最终都会转化为热量。这就造成了第二个成本:防止计算机温度过高的成本。

这些问题并不只出现在人造的、数字计算机中。有许多大自然产生的计算机,也需要大量的能量。举个比较尖锐的例子,人脑就是一台计算机。这种特殊的计算机所消耗的热量约占人类消耗的总热量的10%-20%。想一想:我们在非洲大草原上的祖先每天都要多找20%的食物,只是为了不让那个不领情的粉红色果冻球不在他们的肩膀上发脾气。多找20%的食物对我们祖先的繁殖能力是一种巨大的惩罚。这种惩罚是导致智力在进化中如此罕见的原因吗?没有人知道,甚至没有人以前有数学工具来思考这个问题。

除了大脑之外,还有其他的生物计算机,它们也会消耗大量的能量。举个例子,许多细胞系统都可以看作是计算机。事实上,比较人工计算机和细胞计算机中的热力学成本,对于现代计算机工程师来说,可以说是非常相形见绌的。例如,在细胞的核糖体中,细胞的能量预算中有很大一部分用于将RNA翻译成氨基酸序列(即蛋白质)。但这种计算的热力学效率,核糖体每一次基本操作所需的能量,比我们现在的人工计算机的热力学效率高出许多数量级。细胞所使用的 "技巧",我们是否可以在人工计算机中加以利用?回到前面的生物学例子,人类大脑在进行计算时使用的技巧,我们是否可以在人工计算机中加以利用?

更笼统地说,为什么计算机就要消耗这么多的能量?控制系统运行的精确计算与所需能量之间关系的基本物理规律是什么?我们是否可以通过重新设计计算机的算法来使其更加节能?

这些是我和我的合作者,在圣菲研究所正在进行的一个研究项目中,努力解决的一些问题。我们并不是第一个研究这些问题的人;一个半世纪以来,我们一直在使用半形式推理来考虑这些问题,这种推理基本上是基于 "包络 "(很粗略的计算)式的分析,而不是严格的数学论证,因为当时相关的数学还没有完全成熟。

此前的工作产生了许多重要的洞见,特别是20世纪中后期Rolf Landauer、Charles Bennett等人的工作。

然而,这些早期的工作也受到了限制,因为它试图应用平衡统计物理学来分析计算机的热力学。问题是,根据定义,一个平衡系统是一个状态永远不会改变的系统。所以不管它们是什么,计算机绝对是非平衡系统。事实上,它们往往是离平衡系统很远的系统。

幸运的是,完全独立于这一早期工作,在过去几十年中,非平衡统计物理学领域(与称为 "随机热力学 "的领域密切相关)取得了一些重大突破。这些突破使我们能够分析有关热、能量和信息如何在非平衡系统中得到转化的各种问题。

这些分析提供了一些惊人的预测。例如,我们现在可以计算出一个给定的纳米级系统在给定的时间间隔内违反第二定律、降低其熵的(非零)概率。(我们现在明白了,热力学第二定律并不是说一个封闭系统的熵不能减少,只是说它的预期熵不能减少)。

这里没有半形式推理引起的争议,相反,在顶级期刊上有很多上百篇同行评议的文章,其中很大一部分涉及理论预测的实验证实。

现在我们有了正确的工具,我们可以以完全形式化的方式,重新审视计算热力学的整个主题。对于Landauer和其他人关注的主题:比特擦除,我们已经做到了这一点,而且我们现在对擦除比特的热力学代价有了完全形式化的理解(结果发现是令人惊讶的微妙)。兰道尔原理表示,在平衡态擦除1bit的信息至少要消耗的能量为kTln2(k 为玻尔兹曼常数,T 为环境温度),并由此给出了计算机的理论能耗下限。

然而,计算机科学的范围远远超出了计算特定比特擦除次数。由于非平衡统计物理学的突破,我们现在还可以从热力学的角度研究计算机科学的其他部分。例如,从比特到电路,我和我的合作者现在对 "直线电路 "的热力学成本有了详细的分析。令人惊讶的是,这种分析已经导致了信息理论的新扩展。此外,与兰道尔开创的那种分析不同,这种对电路热力学成本的分析是精确的,而不仅仅是一个下限。

传统的计算机科学是关于内存资源和执行某项计算所需的时间步数之间的权衡。鉴于上述情况,似乎在执行一项计算时,可能有比传统计算机科学所理解的更多的热力学权衡,除了内存资源和时间步数的成本外,还涉及热力学成本。这种权衡将适用于人工和生物计算机。

显然,要发展这种现代 "计算的热力学",还有大量的工作要做。

(译者:蒂克伟)