系统研究的动机
(2017 年 11 月在中国科学技术大学演讲的结束语,抄了 爱因斯坦《探索的动机》)
大多数系统领域的研究可以归为两类:一类是有一种新的硬件,比如我们的可编程网卡,还有RDMA网卡、高速存储领域的NVMe和NVM、CPU里面的SGX、TSX指令扩展,可以给系统设计带来很多新的可能;一类是有一种新的应用场景,比如我们今天都在讲的深度学习,就给系统设计带来了很多新的挑战。但是如果系统领域只有这两类研究,那么它就不会成为一个受人尊敬的研究领域,正如只有蔓草而不能成为森林。因为对于新的硬件或者新的应用场景,即使没有专门研究系统的科学家,工程师也会想出办法去利用这些可能,应对这些挑战。
那么是什么把如此多的聪明人引进系统研究的领域呢? 我觉得爱因斯坦的<探索的动机》讲得很好,就化用过来了。首先是一种消极的动机,就是叔本华所说的,把人们引向艺术和科学的最强烈的动机之一,是要逃避日常生活中令人厌恶的粗俗和使人绝望的沉闷,是要摆脱人们自己反复无常的欲望的桎梏。在工程项目里,总有许多非技术的因素,有许多历史遗留的问题,有许多工具和硬件的bug。一个工程项目里大多数的时间都是在做这些并不需要很多创造力的事情,而目前的AI还不足以帮我们做好,因此修养有素的系统工程师就会渴望逃避这种复杂性,进入一种客观知觉的世界。
除了这种消极的动机,还有一种积极的动机。人们总想以最适当的方式画出一幅简化的和易领悟的世界图像;于是他就试图用他的这种世界体系来代替经验的世界,并来征服它。这就是画家、诗人、思辨哲学家和自然科学家所做的,他们都按自己的方式去做。系统研究者对于所研究的主题必须加以严格的控制,也就是描述现实系统中最通用的模块。企图以系统研究者的精密性与完备性来重现现实世界的复杂系统,这不是人类智力所能及的。作为系统基础的基本抽象,比如IP之于网络、SQL之于数据库、文件之于操作系统,应当对一大类硬件体系结构和一大类应用场景普遍有效。有了这些基本抽象,就有可能借助单纯的演绎构建一个完整的系统。在这个构建的过程中,工程师可以把现实世界的复杂性加入进去,此时可能损失一些基本抽象所具有的美好性质,但我们仍然可以通过不超过人类理智的演绎过程理解整个系统的行为。
系统研究者的最高使命是得到那些普遍的基本抽象,由此高性能、可扩放、高可用、易编程的系统就能用演绎的方法建立起来。要通向这些基本抽象,没有逻辑的道路,只有通过那种以对经验的理解为基础的直觉。这意味着一个好的系统研究员必须首先是一个有经验的系统工程师。由于有这种方法论上的不确定性,人们可以假定,会有许多个同样站得住脚的系统抽象。这种看法无论在理论上还是现实中都是成立的。但是,系统领域的发展表明,在同一时期,在同样的硬件限制和应用场景下,总有一个显得比别的高明得多。这就是莱布尼兹非常中肯的表述过的“先定的和谐”。渴望看到这种先定的和谐,是系统研究者无穷的毅力和耐心的源泉。