可逆运算平台

11

来自可逆计算常见问题解答:

为了在给定的比特耗散速率下实现最大可能的计算性能,通常需要在计算的所有级别(设备、电路、体系结构、语言和算法)上显式地实现可逆性——这是一个强烈的猜想,但尚未正式证明,称之为Frank定律。

据我所知,当比特归零时会产生能量损失。如果软件和硬件平台具有反向逻辑操作的能力,则可以减少热量产生。

是否有支持可逆计算的编程平台(库、运行时、语言和编译器)?


1
你能引用一下“弗兰克法则”的来源吗?因为它听起来很有趣,我想了解更多。 - Selene Routley
2
我找到了Michael Frank的出版物清单,以及最近的采访 - Anthony Faull
伟大的。非常感谢安东尼。 - Selene Routley
4个回答

10

是的,至少在研究领域中有一些可逆编程语言。

我也对这个领域很感兴趣,并收集了一些指针。这两篇论文非常酷:

这些我还没看过(但已加入我的待办事项列表),似乎很有意思:

还有Hacker News上的这个主题

关于代码、模型、数据结构等的双向转换(与可逆计算有些关联)有更丰富的文献。


1
据我所了解,要实现真正可逆的计算,我们需要在可逆计算机上运行算法。引用以下链接: 可逆计算机:所有芯片和电路执行可逆函数且不向周围环境传递热量的计算机。在1990年代,MIT的一个小组构建了初步硬件,证明了这种“绝热”计算的可行性。
参考文献:http://energy.mit.edu/news/energy-efficient-computing/

1

0
能量在比特清零时会产生损失。
任何不可逆的过程(即丢失信息的过程)都伴随着能量耗散。例如,函数 x^2 不是可逆的,因为它不是双射,要实现这个函数,你应该:
  • 擦除一些信息并消耗一定量的能量,
  • 或者改为实现 (x, 0) -> (x, x^2)。
是否有任何编程平台(库、运行时、语言和编译器)支持可逆计算? NiLang 是一个基于 Julia 的开源嵌入式领域特定可逆编程语言。这个 eDSL 可以用于 编程语言级别的自动微分,而且性能很好。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接