非对称多核系统可以减少功耗(091218)
闵应骅
计算机的功耗现在成为一个大问题。原因在于对超级大型机来说,关在一个机房里的成千上万的CPU芯片使得机器的耗电就像一座小城市一样,但挤在一起,像个大火炉,散热成为大问题;对一块芯片来说,大功率使芯片发热,威胁它的可靠性,甚至是生命。对于多核处理器。就尤其是这样。
有人建议用非对称多核处理器可以减少功耗,而保持对称处理器同样的性能。这说法对吗?有人做了试验,发表了一些数据。我觉得这样的工作很有意义。我们不缺创新的想法,但是,常常是作为感想提出来,没有相应的实验做验证。
所谓“非对称多核处理器”(AMP)是指多核虽具有相同的指令集体系结构(ISA),但性能和功耗特征却不同。用相同的ISA,就可以共用相同的编译器。一个典型的AMP包含若干快速、强大的核(高时钟频率、复杂的乱序流水线和高功耗)和许多慢速低功耗的核(低时钟频率、简单流水线和低功耗)。复杂和强大的核善于运行单线程时序应用,因为这些应用无法用多个简单核来提高性能。而简单核则善长于运行高度可扩展的并行应用。对称多核处理器(SMP)则只用一种类型的处理器。譬如只用复杂处理器,像Intel Xcon或AMD Opteron,或者只用简单处理器,像Sun公司的Niagara。对于AMP,为了充分发挥两种处理器的特长,操作系统中的任务调度变得非常关键。
应用可以分为两类:一类是CPU密集型程序,这种程序大量地是按顺序执行的指令序列,在CPU中进行计算。所以,用复杂的、高速CPU芯片比较合适。而另一种是存储器密集型程序。这种程序要频繁访问存储器和I/O设备,计算任务比较简单。用简单的CPU就比较合适。AMP对这两种CPU兼而有之。提高AMP效率的办法有两个:
1。充分利用线程级并行性的差异。区别可扩展的并行应用,多线程执行;和时序应用,用尽可能少的线程。
2。利用负载的微结构差异。程序的微结构性值得注意。有些程序用CPU流水线很有效。这些程序被称为CPU密集型的。有些程序则相反。用CPU流水线,缓存失误率特别高,常为等着从主存中的数据而影响计算效率。这种程序被称为存储器密集型。
加拿大的学者们用一个AMP芯片包含一个快速CPU,运行在2.3G,和一个简单CPU, 运行在1.15G。运行SPECPU 2000的加速情况如下图所示。有些程序加速到了2倍,而equake 只加速了25%。现在,加州大学圣地亚哥分校和HP在基本相同的芯片面积和功耗的情况下,运行SPECPU 2000,AMP比SMP可提高性能63%。
问题转到怎么进行调度。这成为一个软件的问题。下文中提出了一种调度算法及其性能比较,特别是在较低功耗情况下的高性能。这篇短文无法详细介绍了。有兴趣的读者请参阅 A。Fedorova, J.C.Saez, D.Shelepov, and M.Prieto,"Maximizing power efficiency with Asymmetric multicare systems," CACM, Dec.2009, Vol.52, No.12, pp.49-57.
我想要说的是,现在我们的年青人在科学研究中并不缺创新的想法。他们有些想法很好,但是比较空洞,常常是一种愿望。譬如在计算机体系结构方面,当你对体系结构有一定了解以后,常常会有一些想法,怎么怎么做就会提高性能、减少功耗或者提高可靠性。缺少的就是实验,而总是希望做一个样机试试。其实,这是一种少慢差费的办法。不可能提一个想法,就做一个样机。还不知道你的想法灵不灵呢?所以,需要做一些比较简单的实验,来说明你的想法可能是有希望的。现在我们有些投文,甚至已发表的论文都没有实验数据。这样空对空的东西是不行的,除非你做的完全是理论工作,有完善的理论证明。这种情况在工程领域是很少的。
https://wap.sciencenet.cn/blog-290937-279533.html
上一篇:
关于域名服务器(091216)下一篇:
溺爱有害(091224)