3月23日外电头条:多核给软件开发带来挑战
创始人
2024-03-24 00:21:02
0

【51CTO.com快译】为了提升服务器和PC芯片的性能,为处理器增加更多的核心已成为芯片供应商们的最主要手段。但是,如果无法应对来自硬件和编程方面的新挑战,多核的优势不仅会大大降低,而且及有可能成为芯片性能的阻碍。在刚刚举行的多核芯片博览会(Multicore Expo)上,与会者纷纷对此表示了担心。

目前大多数为单核芯片编写的软件将需要重新编写或者更新,以适合Intel、Sun以及其它芯片供应商们提供的新产品,行业技术分析公司Linley Group总裁兼***分析师Linley Gwennap这样说。现在的应用程序在多至4个处理器核心时通常会运行得更快,但处理核心数量一旦超过这个数字,应用程序的效果就会降低甚至恶化。

最近来自Gartner的一份报告同样显示了这个问题。为此,芯片和系统制造商们已开始着力培训软件开发者,并为他们提供更好的用于多核编程的工具。一年前,Intel和微软表示,他们将在美国投资2000万美元开设两个研究中心专门解决这一问题。目前,缺乏多核编程工具也许是今天的编程行业所面临的***挑战,Gwennap说。

把应用程序中不同的计算任务,比如数学运算和渲染图片加以区分对待,让它们分别在多个内核中同时执行的编写方式早已被人们提出。但是,这一通常被称为并行计算的模式一直受到专业化与高性能计算环境的限制。

近年来,Intel和AMD已经改变了提高时钟频率的传统做法,将加入核心数量作为更直接有效的方式来提高芯片的性能。Intel即将为我们带来多达8个处理内核的Nehalem-EX芯片(51CTO.com注,Nehalem是英特尔的新芯片架构。代号为Nehalem的处理器包括专为高性能服务器市场设计的、研发代号为“Nehalem-EP” 的处理器,面向可扩展服务器市场的代号为“Nehalem-EX”。英特尔不久前称,高端的Nehalem EX处理器可能在今年年底供货)。而51CTO.com的资料也显示,AMD代号为“伊斯坦布尔”(Istanbul)的六核45纳米皓龙处理器已公开演示,预计将于今年下半年正式推出;此外AMD也正在设计12内核的服务器芯片。所有这些新技术都提高了多线程能力,使每个内核都可以在同一时间执行多行代码。

这意味着主流的应用程序必须以不同的方式来编写,以利用更多的内核资源。这做起来不仅很难,而且很有可能带来的新类型的软件bug。最常见之一就是“竞争条件(Race Conditions)”——计算的结果输出要求各种任务按照一定的顺序完成,如果不是这样,那么可能就会导致错误的发生。

目前已经有些厂商提供了并行编程工具,如Intel的Parallel Studio for C and C++,还有这一领域里的其他厂商如Codeplay、Polycore Software和Clik Arts的相关工具。此外基于C语言的新的并行编程模型标准OpenCL,已由Khronos Group发布,并迅速得到了Intel、AMD、Nvidia和其他各厂商的共同支持。

Santa Clara举行的多核芯片博览会展示了更多的工具正在开发中。嵌入微处理基准联盟(51CTO.com注,即EEMBC,为嵌入式芯片制订基准的非盈利性组织)的软件工程总监Shay Gal-on说,软件编译器必须能够识别并行的代码,然后在没有人工干预下完成并行工作。

尽管缺少相关的工具,一些软件供应商已经找到了相对容易的建立并行代码的方法,用来处理简单的计算工作比如图像和视频处理,Gwennapp表示,比如Adobe已经通过重写Photoshop,在某些特定的x86内核上运行放大和图像滤镜等任务时,性能可以提高到3到4倍。

“在处理视频或图片时,你可以将不同的像素系统分配给不同的CPU。这样你就可以得到并行处理方式,”Gwennapp说。但是,对于更复杂的任务,则很难找到一个单一的方法来确定并行计算的顺序,然后将它们分配给不同的CPU。

编程方面可能面临着多核带来的***挑战,而在硬件方面也需要作出变化,来克服如内存延迟和总线速度缓慢等问题。“由于你的芯片上添加了越来越多的内核,你就需要更多的内存带宽来适应它们,”Gwennapp说。

共享一个内存高速缓存或数据总线的多个内核会造成瓶颈效应,这意味着额外的内核将在很大程度上遭到浪费。“这种情况下假设你有6或8个CPU,那么它们所有的时间将花费在互相交谈上,既不向前走,也不做任何工作,”他说。

责任最终还是要背负在开发者的肩上。他们需要编写更好的并行程序来搭建硬件和软件之间的桥梁。很多软件开发者并没有跟上硬件设计的***进展,EEMBC的Gal-on这样说,他们应该打开数据表来研究***的芯片架构,考虑一下怎样能让他们的代码表现得更好。

【编辑推荐】

  1. 多核的涌现亟需新软件开发技巧
  2. 多核处理器趋势对软件架构的影响
  3. 视频:英特尔多核处理器平台的应用开发概览

【51CTO.com译稿,合作站点转载请注明原文译者和出处为51CTO.com】

原文:Multicore chips pose next big challenge for industry  作者:Agam Shah

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
P2P的自白|我不生产内容,我... 现在一提起P2P,人们就会联想到正在被有关部门“围剿”的互联网理财服务。×租宝事件使得劳...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...