Multicore 的烦恼

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




【编者注:这个文章是超级大学霸 David 在 IEEE SPECTURN 上写的一个描述我们整个计算机系统 big picture 的文章。 我把其中主要的论点描述一下,有兴趣懂同学直接看就是了。首先在这里需要实现说明的一个非常重要的背景就是:“Multicore 并不是我们主动选择的路,而是我们不得不选择的路!。” 非常多的人没有搞清除这个基本概念,甚至有些博士僧也没搞清除。

首先学霸老爷回顾了1975年的一场比赛,达拉斯牛仔的四分卫合着眼把球传了出去。他希望有人能接著这个球。现在的 multicore 就是 computer system 的四分卫 ( intel 等) 合着眼传出的球。为什么他们这么干,两个原因

1) power wall

2)我们still还能放更多的 transistor 放到die 上。

然后四分卫们撂挑子了,以后我们只管堆core(我只能吧球传远点,就是说我以后不动脑子了,只练力量), 你们要不要更快(try),随便。 四分卫把球传出来,能不能try 就靠我们小码农的了。如果身为码农的你写过大规模并行程序,那你应该知道这个 try 有多难!估计大部分码农 memory consistency 都还没弄明白了就被告诉必须给个100core 的 CPU写程序。苍天阿。 各种风花雪月的自动并行,自动优化研究就开始了。烧钱阿!学霸举了几个成功例子:transactions, 科学计算 和 图形图像。 为啥他们成功了?逻辑简单,没有依赖。不过即便是逻辑简单,没有依赖,要想弄个牛系统,你还得找牛程序员。

在悲观的同时,学霸还是指出了曙光:

第一点:四分卫合着眼睛传的,你们要是想try 自己去拼。我不能老是给你们传那些漂亮球了!码农们会积极主动的学习 memory consistency model.

第二点:云计算。云端的码农辛苦些。同时降低依赖,很好并行。比如同时开4个kvm在一个机器上。

除了这两点,为了证明不是岳不群, 身为学霸的 David怎么也得在危机时刻拯救世界阿,要不以后小弟们来打假怎么办。学霸深的两手都要抓,两手都要硬的 传统 中华智慧!一边开始狂优化一些 kernels. 操作系统同学们不要机动。这个不是操作系统kernel。狂优化的 操作系统 kernel 已经被首席给屠了。这个 kernel 是指的一些常用的应用和计算非常重要的基本计算方法。

那学霸的另一只手伸向哪里了呢?不要想歪了,对,是 大规模multicore design。 就是传说中的 RAMP project。 拿FPGA simulate 100 个以上的 core。

why? 两个目的:

1) 给四分卫们做做示范,挖挖散兵坑。

2)做软件的很懒的。你在 simic 上 boot 过 linux 吗? 你在 PTLsim 上跑过程序吗? 在 PTLsim 上跑个 Eclipse benchmark 要多半个星期。我们码农的宗旨就是没有硬件绝不提前开发软件。学霸把这个搞出来,好给码农们说你们Y没理由了吧,快好好干,别整天下午茶。

]

(3个打分, 平均:3.00 / 5)

雁过留声

“Multicore 的烦恼”有28个回复

  1. 费劲 于 2010-07-20 5:19 下午

    错字加上翻译风格看起来真费劲!!!

  2. 于 2010-07-20 7:32 下午

    写的挺好的啊.

  3. 瞎扯 于 2010-07-20 8:19 下午

    文风很不错,值得推广

  4. 看不懂 于 2010-07-20 8:40 下午

    希望能简单易懂一些

  5. JackBauer 于 2010-07-20 9:21 下午

    “下午茶”好象是ZTE的东东

  6. frogman 于 2010-07-21 6:09 上午

    主要是这个四分卫有些难懂,其他的内容还是很好懂,很深刻的

  7. fafdsafds 于 2010-07-21 7:26 上午

    整些语法混乱,语意不通的狗屁东东,装什么高深

  8. 删吧 于 2010-07-21 2:16 下午

    ramp 是多少年前的冷饭了。 呵呵
    说DavidP是学霸太侮辱人家了吧。
    建议首席删掉这篇文章,太庸俗了。

  9. 陈怀临 于 2010-07-21 3:15 下午

    Heee. DavidP不拿Turing Award,我觉得不fair。看过他的一些lecture。觉得大辽的一些大知识分子确实是有真追求。不为名利。大宋也有,相对少一些。。。

  10. coder 于 2010-07-21 5:11 下午

    Turing Award 估计不好意思给 David 发了。David的impact…….

  11. Sunny 于 2010-07-21 8:39 下午

    好东西。

    上星期定的“The Art of Multiprocessor Programming”。 需要好好了解了解这东西。 这是关系到饭碗的大问题。

  12. LeadFrenzy 于 2010-07-21 11:22 下午

    说到的东西是很值得思考的,只是文章写得太晦涩难懂了

  13. 删吧 于 2010-07-21 11:57 下午

    楼上: 文化差异,并不是水平差异。
    呵呵,DavidP 酷爱american football,还有举重 !!!

    我们很难理解他们看来明显尔尔易见的道理。 如果有一天西方人不得不花时间研究中文理解首席说的大辽大宋在这个context里到底什么意思,那才是我们的复兴的时候。

  14. JeasonZhao 于 2010-07-22 1:11 上午

    对我来说太晦涩了,实在难懂啊

  15. 陈怀临 于 2010-07-22 3:45 上午

    再给我一点时间。。。我一定会用白话文来写一个“现代计算机体系结构的那些事儿”。要用大白话,来表达这些貌似深邃的东西。

  16. cracked 于 2010-07-22 7:56 下午

    等过2年 首席还是那句话 再给我点时间….

  17. guoke 于 2010-07-22 8:13 下午

    陈总还要养家糊口,还要休息呢,这个都是公益。

  18. cracked 于 2010-07-22 11:55 下午

    呵呵 我开玩笑的 写不写是人家的事情

  19. von 于 2010-07-23 10:08 下午

    “The Art of Multiprocessor Programming”是一本”神书”啊!第一遍,完全看不懂,尤其是前6章,11-15章。例子全部是Java写的,Boss却要我用C去实现并理解,头大!!!

  20. Sunny 于 2010-07-24 3:51 下午

    对写过多线程程序的同学应该不太难吧。
    刚开始看,还没觉得呢。有什么心得,提前提个醒?

  21. sys 于 2010-07-26 6:30 下午

    有兴趣多核研发和研究的同学们,可以搞个TILERA 64CORE CPU玩玩,64都能玩转,还有啥不能搞的

  22. multithreaded 于 2010-07-29 8:19 下午

    先把Intel的8核或者AMD的12核玩转了, 再玩64核。

  23. alrn 于 2010-09-03 7:35 上午

    TILERA 的CPU,软件挑战太大了,所以我们也没有选他的!

  24. 一条虫 于 2010-09-04 10:48 下午

    哈哈哈,这个文章很幽默的啊。学习了

  25. ork 于 2011-02-10 9:24 下午

    # von 于 2010-07-23 10:08 下午
    “The Art of Multiprocessor Programming”是一本”神书”啊!第一遍,完全看不懂,….
    ———————————–
    同感,天书啊。

  26. josie 于 2011-02-10 10:30 下午

    好文~
    RAMP好几个group还在做,挺有必要的。否则真到了1000核的时候,光是软件的simulation速度远远不够。

  27. james 于 2011-03-20 9:48 下午

    多核计算最麻烦的是同步synchronization
    memory model 还好吧,如果是X86的话还算可以接受啊

  28. baozii 于 2011-03-31 9:51 上午

    谢谢楼主分享这篇文章,个人感觉这确实是目前计算机发展的最大问题

    不过从后面的评论来看,好像反响不是很热烈……期待楼主分享更多关于多核计算的前沿资讯