多核操作系统–来自大辽MIT的研究
作者 陈怀临 | 2010-12-03 20:27 | 类型 研发动态, 行业动感 | 42条用户评论 »
【陈怀临注:今天与Tilera创办人Anant Agarwal教授见面的时候,他给我带来两篇其Lab的最新文章–Factored Operating System和另外一篇关于云计算OS的–An Operating System for Multicore and Clouds: Mechanisms and Implementation。我非常感动与自豪。感动的是Anant的谦卑。自豪的是我对OS的热爱和理解能让他这样著名的教授appreciate。。。我答应会仔细的阅读文章并给他反馈意见。】 | |
雁过留声
“多核操作系统–来自大辽MIT的研究”有42个回复
谢谢陈首席,首席应该多多的推荐些好资料读读:)
赞
对首席敬仰又加深一层,首席究竟是什么身份在现实世界中?
很好 很强大
首席对于用tilera这样的多核处理器来做实时高清视频编解码处理有什么意见?
在HUAWEI听过一次Anant教授的专家大讲堂,还是很精彩和幽默的,很有风范,而且很谦虚。
MIT开放课程上有这个哥们讲的 digital system
系统啊!这个马上就走这个方向,提前来看看。
关注multi-core很多年了,期待首席会把自己的反馈意见也贴出来让大家学习一下
这个们搞了一个TILE 架构的处理器,的确很牛的。64个核,只要20W的功耗。大辽的学校还是高人多多呀!
论文中的fos很多想法的确很新颖,空间片代替时间片,kernel与app使用不同的core并通过消息请求服务,远程资源代理等等,当然前提是core相当的多。关于那个cloud computer国内好像也有人做过,只是仍折腾linux,没像大辽研究人员那样直接针对这种硬件架构写个OS出来,还是大辽牛!btw,首席能不能透露下被appreciate的是什么观点?hoho…
本质上就是微内核操作系统的进化,分布式操作系统的再进化版。创意是把core给分离出来成为单独的服务系统。
linux 的monokernel也该革新了,问题是现在没有成器的代替品,Hurd如同死水..等着吧….看有没有另一个linus出来.
通过开源的linux的培养,现在熟悉操作系统内核开发,设计的人应该是比以前多;如果有足够的市场前景,相信会有替代品开发出来;做一个操作系统,似乎没那么难;难在形成产业链,形成庞大的应用软件支持;
我对多核的构想:指令分布执行,指令流水线被分配到各个核上运行,线程中可并行指令也被分配到各个核上运行。道指令正按照这个目标设计。
to 14 楼
Anant哥们搞出来的TILE处理器,应该可以支持这个功能,我在MIT网页上面的ppt里面看到过,例如他可以支持,core1里面的寄存器变量和立即数运算直接输出到core2的寄存器里面去。 看了感觉很神奇。
TILE处理器没仔细看过,但按照寄存器流水线方法,很难做到线程、指令间并行处理。因为太多的关联数据、跳转、中断必须处理。我觉得多核要象体细胞一样,能够随着各种外界及自身或别的生成的化学物质运行,产生不同的功能来。
个人感觉,面对众核,要实现目前的OS的应用接口越来越难,而虚拟机由于提供的是更底层更简单的接口,在众核上的扩展性更好
所以系统中加一个虚拟机层可以算是众核的一个解决之道
在超多核的机器上,对于通用大型计算任务,空分看来比时分更合理,但对于强调实时的嵌入式领域中,基于微内核的消息机制似乎难以保证对请求的快速响应
如果底层硬件,比如Tilera的CPU支持支持基于硬件的高带宽、低延时、低开销的消息传递机制,性能,实时性方面似乎都不是问题;FOS的文档没看完,感觉和tilera目前在其CPU上实现的HV+LINUX的思路类似;
FOS可能是TILERA把现在的HV+LINUX+ZOL发展的更彻底,更直接,这个应该是未来发展的一个方向。
HI,我们是一家小安全公司,主要开发防火墙、UTM以及IDS系统。目前想把UTM和防火墙从X86平台移植到多核上,寻找这方面的高手一起合作。有意向者发邮件到asdf8360@126.com
首席关于多核OS的发展有什么看法?强烈建议写篇文章介绍介绍啊:)
Qubes值得关注一下。
Qubes is an open source operating system designed to provide strong security for desktop computing. Qubes is based on Xen, X Window System, and Linux, and can run most Linux applications and utilize most of the Linux drivers. In the future it might also run Windows apps.
我在操作系统方面在2005或者06年出现过一次大的转折点。我应该是最早注意L4和XEN的一批人。但是由于当时对芯片设计产生了浓厚兴趣,结果没有去深入L4和XEN,转向芯片方面去了。现在想起来,是个错误。。。目前我对我在虚拟化方面的功力非常的不满意。。。
–>我在操作系统方面在2005或者06年出现过一次大的转折点
嗯,想问一下转折点的细节,我知道你一直是微内核OS的支持者。
首席可能是自身已在高处不胜寒,认为OS到尽头了,转个山头暖暖身。我基本不懂OS,但支持微内核,高手更喜欢留给自己的发挥的空间更多,而宏内核限制了内核外的的高手。
多核与OS问题的关键在于多少是多,4个core是多核,400个也是多核。
问了简化问题的讨论,假设linux内核就一把大锁,APP一陷入内核就去抢这把锁,
那么在只有4个核的情况下,内核的锁竞争还可以接受。 一旦核多到400个,所有的APP都可能就在等这把锁了,这种锁竞争限制了系统的资源吞吐率。
一般宏内核都会面临这种问题,core太多,锁竞争太厉害,资源吞吐率上不去。
微内核这个时候优点就显示出来了。
是不是这个意思?
TILERA最近搞了一个叫做TTR的东东,用在视频处理,多核加速线性度非常好,不知道是否能用到网络上面。
没看懂,回去学习,然后copying
2011年华为软件技术大会—OS技术峰会议程表
9:50~10:30 系统软件技术的发展趋势和挑战 胡子昂
10:40~11:20 支持海量数据处理的高性能通信技术 徐志伟
中科院计算所总工程师、研究员
可惜首席不在啊!
这几天好好研究一下这2篇文章,
下周去深圳开会问问这些专家.
试探一下他们上不上弯曲评论来学习.
估计胡、徐两位都回答不了你的问题 :-(
要找懂OS、Multicore的专家问才有点希望。
唐优化,你这话得罪人呀。。。
继续得罪人一把。
单独的问陈首席或者我,也没戏。 把我和首席关在某个高级宾馆的会议室里,闭门思过几天, 可能会有点门。
一句话,这是一个很新的领域。大家应该一起来闯一下 :-)
Heeee。你我在一起N天,会有性取向的问题。。。希望是你我各自在一个房间,好吃好喝好招待[重点在招待]。
你今天不在convention center?
关于影响现代操作系统可扩展性的第二个因素locality aliasing的问题:
OS与APP跑在相同的核上,
由此导致的cache颠簸 对性能的影响真有这么严重吗?
当核达到100个甚至更多的时候,会像lock一样造成指数级的下降吗?
光考虑这个因素的话,用n路组相连高速缓存的做法,是不是比要大改操作系统的代价更小一点?
有没有必要非要因这个因素,非要把OS与APP分开?
请多核的专家指点! 谢谢
关于locality aliasing问题的思考:
其实Unix操作系统当初在设计的时候就考虑过APP与OS在同一个核上运行时造成对cache line争用的问题(高速缓存颠簸), Unix操作系统的一个进程的地址空间奇怪的布局就是为了减少OS与APP的cache冲突才这么设计的.
这和首席提的cache cloring是一个意思.
不过当时的CPU在访问cache的时候还是以虚拟地址为Hash.不过他妈的现在的CPU在访问cache的时候以物理地址为Hash了,
今天的操作系统确实面临这个问题,尤其当cpu的核数达到一定程度的时候,确实是对计算资源的一种浪费!
在提一个关于多核与OS的问题:
假设10年以后,1台计算机上100-1000个核是很正常的事,单个计算机拥有如此强大的计算能力。
但如果那个时候单个计算机的存储能力没有跟上来,比如硬盘的访问延迟还是那么大,访问带宽进步缓慢,(而且这是很有可能的事)。
那么在这种情况下对现代操作系统加以革命又有什么意义。
如果仅仅是使用其计算能力的话,为什么不换一个方式去使用现代操作系统。比如:
在100个核的情况下,将其中20个核跑操作系统。剩下的80个核:
(1)可以裸跑,不跑操作系统。
(2)可以当成一个计算设备来使用,而不是执行进程的CPU
(3)也可以使用cpu+gpu的方式来使用系统的计算能力。
我只是感觉只有当100个核是正常情况的同时,系统的存储技术和网络技术也有了巨大突破的时候,现代操作系统才面临可扩展性的真正问题。
我认为核数多到一定程度后,不可能通过OS屏蔽简单暴露为一个单一的SMP系统:对软件开发而言,不再有免费午餐,上层软件(也许不是应用层,而是应用框架平台层)必须适应这种计算模式。
看看今天的云计算,记得早先和很多人交流时,他们不少会问“是不是类似分布式OS把多台计算机合成一台大的,难度是不是很高”?这时候需要给他们解释:从资源利用角度,这个说法没问题;但从架构角度,不是在OS层面整合,而是上面的平台层和框架层整合
个人觉得,传统OS层面试图去做创新,机会很小。分布式、并行环境下,应运而生的平台、框架层等中间件层就是新的”OS”,大家的编程思维也会逐渐习惯。看看刚刚过去的中国hadoop技术大会场面,与三年前相比差异是何等之大。
要问的问题是: 你是要多核加速一个问题还是要加速N>1个问题。
When N>1, it is relatively easier than the case of N=1.
39楼说的有点意思
单一的SMP系统目前其实已经无法适用众核了,尤其是当核数多到硬件上再无法保证cache coherence的时候,更是如此。
这两篇论文里提到的架构算是一种很有创意的解决方案吧,只是暂时在工业界反响不强;可能以后会陆续出现大量融合了分布式、集群等思想的并行计算框架,有可能是OS层面的,也有可能是一些中间框架。
Tilera 其实没那么成功。这种2D的NOC结构注定节点间通信是个瓶颈。不是什么OS可以解决的。Tilera的技术实力也没有强。