据《每日科学》网站报道,计算机科学家们一直在试图通过增加单个芯片中的处理器内核数量来提高超级计算机的运行速度.但美国桑迪亚国家实验室的研究团队在模拟了来自大型数据集的关键算法后,发现单纯增加内核数量会意外地导致许多复杂计算的性能趋于恶化.
运行速度和内核数量不成正比模拟结果显示,运算速度在2个到4个内核时会明显增加,但在4个到8个内核时增加并不明显;超过8个内核时,反而会引起速度的下降;16个内核时的速度几乎超不过2个内核的情况;之后再继续增加内核数量时速度就会急剧下降.
造成此种情形的原因在于内存带宽的缺乏,以及每个处理器对可获得的内存总线的争夺.内存总线是一组可与系统内存交换内存地址和数据的连线.
举一个超市中的例子,如果同一个结账柜台有两名而不是一名收银员正在处理顾客购买的食品,结账速度明显会快很多.当然,也可以用4名、8名或16名收银员来结账.但此时,问题就来了.如果哪一名收银员根本接触不到顾客购买的食品,那他对收银进程就起不到必要的帮助作用.更糟的是,每名收银员也许还会以自己的方式招徕顾客.
同样,如果一个人认为1个内核速度快,2个内核速度就更快,4个内核还要快,并以此类推,那他肯定是个没脑子的人.
桑迪亚国家实验室的研究人员在高性能计算机上的模拟结果显示,由于缺乏快速获取单独记忆缓存(每个处理器的“食品”)的能力,当内核数超过8个时处理器的速度不升反降.
多核技术治标不治本
研究人员表示,在某种程度上,许多应用程序很显然具有只需一个单核的内存带宽极限.但是,这不是一个业界已拥有解决方案的问题,而且这个问题还常常被忽视.
桑迪亚计算、计算机、信息和数学中心主任詹姆斯?皮里说,要解决模块之间的竞争是很困难的.所有的内核都在通过相同的管道向内存发出请求,这就像1个、2个、4个或8个人在同时跟你说“我想要这份资料”后,一直等着回复,这就会导致延迟.
桑迪亚研究人员表示,之所以要采用原本使用在“红色风暴”超级电脑中的AMD处理器,正是因为其内存性能要优于包括皓龙处理器在内的其他处理器.AMD处理器在高性能计算机中大行其道的主要原因之一,就是其拥有一个集成的内存控制器,这是英特尔到目前还没有的.
多核技术被认为可能会成为摩尔定律的救星.摩尔定律预测集成电路上可容纳的晶体管数目,约每隔两年便会增加一倍,性能也将提升一倍.研究人员说,多核技术让芯片制造商在晶体管数量上成功地跟上摩尔定律的预测,现在的瓶颈则是如何脱离芯片与内存或网络交换数据.
研究人员一个更为自然的目标则是增加单个内核的时钟速率,因为绝大多数的应用程序是基于单核性能开发的字处理、音乐或视频应用.但是,功率消耗、不断增加的热量以及像寄生电流等所涉及的物理学基本定律则表明,要在普通硅处理器上设计提高芯片速度已达到了极限.
研究人员表示,令人绝望的是,目前芯片设计业者还无法找到更好的办法,虽然人们看到的内存系统设计比12个月前有了很大改善,但是根本性的问题依然存在.
目前,桑迪亚国家实验室已在数据传递计划上投入了大量资金,并已经和橡树岭国家实验室共同组建了先进结构研究所,正在为突破每秒运行一百万万亿次的计算技术铺平道路,这也许将有助于纾解多芯片困境.