GPL版陈首席
作者 coder | 2011-06-06 21:00 | 类型 弯曲推荐, 行业动感 | 14条用户评论 »
古之学者必有师。师者,所以传道、受业、解惑也。人非生而知之者,孰能无惑?惑而不从师,其为惑也,终不解矣。生乎吾前,其闻道也固先乎吾,吾从而师之;生乎吾后,其闻道也亦先乎吾,吾从而师之。吾师道也,夫庸知其年之先后生于吾乎?是故无贵无贱,无长无少,道之所存,师之所存也。 嗟乎!师道之不传也久矣!欲人之无惑也难矣!古之圣人,其出人也远矣,犹且从师而问焉;今之众人,其下圣人也亦远矣,而耻学于师。是故圣益圣,愚益愚;圣人之所以为圣,愚人之所以为愚,其皆出于此乎!爱其子,择师而教之,于其身也,则耻师焉,惑矣!彼童子之师,授之书而习其句读(dòu)者,非吾所谓传其道解其惑者也。句读之不知,惑之不解,或师焉,或不(fǒu)焉,小学而大遗,吾未见其明也。巫医、乐师、百工之人,不耻相师;士大夫之族,曰师曰弟子云者,则群聚而笑之。问之,则曰:“彼与彼年相若也,道相似也。位卑则足羞,官盛则近谀。”呜呼!师道之不复可知矣!巫医、乐师、百工之人,君子不齿。今其智乃反不能及,其可怪也欤! 圣人无常师。孔子师郯(tán)子、苌(cháng)弘、师襄、老聃。郯子之徒,其贤不及孔子。孔子曰:“三人行,则必有我师。”是故弟子不必不如师,师不必贤于弟子。闻道有先后,术业有专攻,如是而已。 李氏子蟠(pán),年十七,好古文,六艺经传(zhuàn),皆通习之,不拘于时,学于余。余嘉其能行古道,作《师说》以贻(yí)之。 今天,我的 Mphil (master by research) thesis 终于评审完了。上来 tektalk 写一篇感谢我的老师,陈首席的文章。感慨万千,不知如何下笔。 copy 一份 《师说》顶置。 05 年,我还是一个大一 freshman,一个月黑风高之夜,在学校网吧 (学校不让大一学生上网,傻逼学校),误入 CLF (www.linuxforum.net)。当时就傻眼了,什么 V 总啊,茶总啊,轮总啊,斯基啊。开始把 CLF 翻个地(注意儿化音)掉。 BNN 的帖子总是直指人心。鼓起勇气给偶像发个信求教一下,没想到,居然收到了回信。 “Sorry for the late reply. I think having a good understanding of computer arch, networking, os, compiler and data structure would be a good start. Since you are even a fresh man yet, please focus on your course study including those math, physics and computer basics. Step by step, have patience; Then you will reach your goal eventually. Best regards, 当你啥都不懂的时候,偶像的一句话是会改变人的一生的。首席的几句话改变了我的一生。 * 忘掉细节,牢牢把握基本概念。 *Computer system 远大于一个 kernel, computer architecture 是 computer system 的核心。 *量化一个系统。 虽然不懂这些话是什么意思,但是牢牢的记住了。 受首席当年在CLF介绍 Xen 和 L4的影响,我有机会在大四的时候去 ERTOS/UNSW ( http://ertos.nicta.com.au/) 作和 L4 有关的 毕业设计。 直到08年本科毕业后去清华陈渝老师那里打杂。首席这个时候已经创办了 tektalk, 我记得是在我评论了一个关于QNX的文章后,首席在 google talk 上加了我。当时激动的几乎晕倒。 想象一下,如果你喜欢打控卫,相当于 斯托克顿 过来跟你打个招呼。 后来我来到了堪培拉村,开始在 ANU 读 Mphil (Master by research). 首席时不时的会指点我两下。字字珠玑。我的 master thesis 的工作离不开首席的鼓励。 09 年的 9 月 1 号,我和首席的一段聊天记录 me: BCORE 我准备动态的 用 write_to_memory 替换 一般的 write
因为一般的write需要 write_allocated
BNN: 你要bypass cache?
me: 恩
BNN: 原因为何?
13:46
I mean, what criteria then for your algorithm?
me: write to cache 需要 1)snooping 得到回复(need waite)
1)需要 allocated cache line
13:47
2)modify it
3)如果连续写的空间很大,又要把以前的modified line 写回去
2 double transactions on links
如果 directly write,
13:48
需要 invilidate cache ilne
和 write back to memory
13:49
BNN: 你的case可以在如下数据访问pattern下解释的过去:
Write without Read.
:写完之后,不会立刻做读操作。
me: 恩
BNN: 否则,代价很大。
me: cache locality 非常不好的情况下
和 不以来这些写顺序的情况下
13:50
BNN: yeah
me: X86的memory consistency对这个write combing 可以 reorder
BNN: 所以,你的算法要与编译结合起来了。
me: 恩
detect
BNN: 这样才能做出漂亮的优化!
最早想去作 compiler 的优化,但是一些商用的 compiler 已经实现了这个功能。后来由于发现 managed language applications 初始化 objects 的开销很大,把这个优化做到了 JVM 里,写了一篇 paper 投到 OOPSLA,然后根据这个 paper 写了我的 thesis.
我的 thesis 讨论了一个非常非常简单的东西:初始化内存。 Managed languages 一般要求创建的 objects 必须是初始化好的 (清 0)。 我们发现这个 清0 开销是很大.
目前的优化一般是想要提高 temporal-locality: 把 清0 留到 创建 objects 的时候来作 (hot-path zeroing)。我们反其道而行之,提出了用 non-temporal instruction 来作,这样 在没有量化分析的基础上,我们提出的方案明显是违背直觉的。某 JVM developer 亲口跟我说 我的方法 make no sense. 我觉得这个 thesis 突出了几个点: 1)优化永远是在量化的基础上来作。
2)Multicore 时代,怎么提高 utilization of shared memory subsystems 是关键。
在thesis, 我写到
“I also would like to thank my shifu, Huailin, who has been teaching me the
architecture of computer systems, and sharing his system-design experiences in the
last few years.”
首席不止影响了我一个人,希望这些影响是GPL的:受到影响的同学继续帮助身边其他的人,这也许就是 education 吧。
| |
雁过留声
“GPL版陈首席”有14个回复
时间多快呀。。。都是6年前的事情了。。。那时我还很年轻呀。。。
真谢谢你,还保存着当年的email。。。
首席的tektalk.org又被和谐了。
多么经典:
* 忘掉细节,牢牢把握基本概念。
*Computer system 远大于一个kernel,computer architecture 是 computer system 的核心。
*量化一个系统。
同在堪村的彎曲讀者發來賀電。
支持首席!我映像最深的一句话是“搞工程的应该多花精力寻找次优,而不是最优方案”。
来弯曲时间不长,但是确实首席功底在那。不过更希望看到有不少批评首席的声音出现。毕竟,首席也是一个人,是人就有自己的局限性。
估计能和首席论剑的,屈指可数: Tony Lee, Bill Lynch…
是故弟子不必不如师,师不必贤于弟子。闻道有先后,术业有专攻,如是而已。
做好技术真的是需要这样抠门的,这是另外一种苦或者乐,因为数学基本是zeroing了,也许我的智商不再做具体研发设计也是一种幸运,虽然再做也敢说能做好,但看首席及其弟子,则明显没有自信了
说实话是人生的最高境界,虽然要付出很多,也很少人说那么多实话,韩愈确是大家。
受教了 工作三年正在了解mips architecture的路过,希望不会太晚。
首席要成为教父了。
这个坛子里面都很认可首席的技术,Bill Lynch的资料都很容易搜索到,但首席的资料不容易搜索到。到底有什么本事也赛一下撒?希望首席能比肩Bill Lynch,至少也别差太多。首席的经历和系统软件贡献在坛子里是最神秘的。一般人不小的
老大有空,把编程之道再跟大家走一遍吧:)
http://livecn.huasing.org/tao_of_programming.htm
大有个人崇拜的迹象, 打击一下