系统与数据库2016people.csail.mit.edu
256 核 BrainFuck 计算机的设计与实现
Design and Implementation of a 256-Core BrainFuck Computer
进阶 · 约 30 分钟读完前置知识:计算机体系结构、指令集设计(ISA)、BrainFuck 语言基础
导读
这篇论文设计并实现了一台 256 核的 BrainFuck 计算机,把 BrainFuck 这种极简/esoteric 语言当作指令集(ISA),属于对“弱核/极简处理器”路线的极端探索,面向高吞吐的 BrainFuck 云服务场景。论文讨论这种极端设计在性能和成本上是否可行,并给出实现与评估。
HN 关注点:HN 读者被 MIT 把 BrainFuck 做成正经体系结构研究吸引:这到底是高级恶搞还是值得探索的极端设计,同时评论还揪出了 IPC 术语等细节问题。
HN 评论精选
这几条评论里:支持 1 质疑 2 补充 1
支持认为这是严肃的极端体系结构探索,不应只当笑话看。
论文说:“大量研究关注哪种‘弱机器’最适合重要负载。本文给出一个相当极端的弱处理器例子,用 BrainFuck 这种 esoteric 编程语言作为其 ISA。”我觉得这挺合理。说真的,为什么不探索极端?往往在那里学到最多。我怀疑这里很多人觉得这是个玩笑,但尽管它确实有搞笑的一面,我认为它绝对值得研究。
qume查看英文原文
". A large amount of research is focusing on what kind of wimpy machines are best fit for important workloads. In this paper, we present a rather extreme example of a wimpy processor, using the BrainFuck [22] esoteric programming language as its ISA." Seems legitimate to me. Seriously, why not explore the extremes? Thats where we often learn the most. I suspect many here think this is a joke, but although does have it's funny side this definitely warrants the research IMHO
质疑指出论文混淆 IPC 与每秒指令数,质疑其严谨性。
作者为什么一直把“每周期指令数”(instructions per cycle)和“每秒指令数”混为一谈?像“我们观察到以下 Instructions per Second (IPC)”和“假设通用处理器每秒执行 1 条指令”这样的表述,本该让某些人的神经元动一下,哪怕做这项研究把脑子搞乱了。
Someone查看英文原文
Why is the author consistently mixing up " "instructions per cycle" with "instructions per second"? Surely, phrases such as "We observed the following Instructions per Second (IPC)" and "assuming a perfect 1 instruction per second on the general purpose processor" should have activated some neurons in some brain, even assuming it got distorted by doing this research?
补充建议用 ELVM 把真实 C 程序编译到 BrainFuck 做基准对比。
有意思的是,可以用 ELVM 把某个小型(不一定小,但可移植)的 C 程序,比如 info-zip,编译到 bf,然后做速度比较。https://github.com/shinh/elvm
cogburnd02查看英文原文
Would be interesting to have some -small- (not necessarily small, but portable) C program such as info-zip compiled to bf via ELVM [1] and do a speed comparison. https://github.com/shinh/elvm
质疑质疑 BrainFuck 超轻 ISA 在数据中心相比 WASM 的实用价值。
鉴于 WASM 最近的进展,像 bf 这样的超轻量 ISA 真的还有位置吗,尤其是在论文声称的数据中心场景?我没在数据中心工作过,但很难想象在那里使用这种未经证实的技术。
adenozine查看英文原文
In light of recent advances in WASM, is there really a place for an ultralight ISA like bf, especially in a data center situation, as the paper claims? I've never worked in a data center, but it seems difficult to imagine using unproven tech like this in one.
相关资源
从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。
历次讨论
- 2016Hacker News 讨论帖125 分 · 104 评
- 2021Hacker News 讨论帖53 分 · 6 评
同领域还值得读
I/O 比 CPU 更快——让我们划分资源并消除操作系统抽象
I/O Is Faster Than CPU – Let’s Partition Resources and Eliminate OS Abstractions
指出在现代服务器硬件上 I/O 速度已接近甚至超过 CPU,传统操作系统抽象反而成为瓶颈。
系统与数据库2019 · 817 分 · 277 评进阶 · 约 30 分钟编辑精选使用 io_uring 的高效 I/O
Efficient IO with io_uring
由 Linux 内核开发者 Jens Axboe 撰写,介绍 Linux 新的异步 I/O 接口 io_uring。
系统与数据库2019 · 426 分 · 96 评进阶 · 约 45 分钟编辑精选线程对大多数用途而言是个坏主意(1995)
Threads Are a Bad Idea for Most Purposes (1995)
这篇 1995 年的文章由 John Ousterhout 撰写,讨论为什么线程对大多数用途而言是坏主意,并主张事件驱动编程通常更简单、更高效。
系统与数据库2017 · 423 分 · 382 评进阶 · 约 25 分钟编辑精选学习型索引结构之论证
The Case for Learned Index Structures
提出把索引看作一种"模型":既然 B-tree 等结构本质上是在学习数据的分布,就可以用机器学习模型(如回归模型、神经网络)来近似键到位置的映射,从而替代 B-tree、哈希索引…
系统与数据库2017 · 398 分 · 66 评 · 引用 25进阶 · 约 60 分钟编辑精选FoundationDB:一个分布式、解耦的事务型键值存储
FoundationDB: A distributed, unbundled, transactional key value store
介绍 FoundationDB:一个分布式、解耦设计的事务性键值存储。
系统与数据库2021 · 283 分 · 99 评进阶 · 约 90 分钟编辑精选