Many Core的应用场景的研究--Tilera Tilepro64,Intel Xeon,AMD Opteron
作者 陈怀临 | 2011-08-06 16:29 | 类型 学术园地 | 15条用户评论 »
这是一篇来自Facebook的white paper。作者的主要观点是:在以Key-Value为典型查询的SNS系统中,可以通过(即使是低频率的)基于众核(Many Core)芯片,可以达到,或者更好的与基于高端Intel,AMD芯片的平台达到同样或者更好的吞吐率,响应时间和功耗。 | |
雁过留声
“Many Core的应用场景的研究--Tilera Tilepro64,Intel Xeon,AMD Opteron”有15个回复
IO intensive的模型,高频率处理器好比抗着长枪打巷战,被tilera的短刀杀了个措手不及
不过这文章很多地方没有交代清楚,急于得出结论。
1.figure8,xeon和opteron的scalability解释不通。明显在调度上有bottleneck,作者并没有想去解决这个问题
2.figure7,8中隐藏了一个配置问题。测试过程对于(worker,tcp,udp)均为静态配置,减少了context switch的开销。然而实际网络中很难静态配置。x86系统中则无此问题。如果我的老板问我这三个参数怎么配性能最好,我就歇了。
3.很明显对tilera有专门的优化,文章也有tilera的作者。个人感觉,在测试这些数据时,花费怎么优化tilera的性能的时间比x86要多10倍。
对于需要大量异步Thread的系统,例如微博,facebbok等,确实Many Core是好的。可以把大量的Linux Thread mapping到Core上来。
但对于Data Base系统,计算extensive的,Tielra是力不从心的了。
这篇文章中的软件Memcached 只对 Tierlra 的平台进行优化,而x86使用未优化过的软件,这样的对比有失公允。
To 3楼,就目前而言,Tilera在互联网的目标显然只是那些采用通用处理器进行特定任务处理的场合,它所宣称的通用性也只是个相对概念,和x86相差的不是一点两点,估计也就是ARM能真正撼动intel老大了。
从这篇文章的工作方式描述中,并未看出原理上Many Core处理KV业务的优势所在,我也认同前面几位的分析,测试结果差异有很大的平台优化因素。
此外,对与ARM和ATOM为代表的wimpy nodes架构对比,文中一笔带过的一句话“This trade-off can mean higher costs for hardware, system administration, and fault management of very large clusters”,实在让人难以信服。wimpy node也有好的工程实现参考案例,比如seamicro。
我认为,many core真正的优势,还是类似SIMD/SPMD矢量数据处理的密集计算业务,比如图形处理和信号处理之类。
个人觉得此项工作的重大意义是把TCP并行化了。 12-cores for TCP processing.
After the TCP bottle-neck is removed, the system shows a linear speedup.
估计在X86平台上难以重复以上的工作; 负责的话X86不会输给Tilera的。
在X86现在有情况下,降低TCP bottleneck的方法基本就是控制thread(准确说是OS概念下的thread)数量,比如nginx的做法。如果编程模型一定需要类似thread之类的东东,可以借鉴erlang的方式
这个文档中,tilera的数据确实太厉害了。所以,这种压倒性优势(vs. x86),那在服务器(云计算)领域肯定所向披靡。
但是,我只有一个疑问:
x86(intel,AMD)在这次测试中,有没有FAE/AE参与,上述x86的数据是否得到(intel/AMD)认可?
to #9
这种所谓的压倒性优势是用一个优化的系统和一个未经优化的比较结果。 结论有一定的参考性但没有令人信服的充分证据。
Sun的Niagara走的就是这个思路啊;
MC的这个测试环境我们在国内有,有情趣的可以联系我,我可以安排测试。
支持一下Peter Liang,最近工作安排太紧张,等有时间了好好研究沟通一下
在研究tilera的新一代处理器GX8036,同13楼支持下peter
GX36,16产品芯片以及量产,开发软件MDE4.0已经GA。国内也有各种硬件平台,可以供同人们把玩。