回顾和展望:多核处理器的影响和挑战



  计算机领域正在发生着悄无声息革命及其他芯片制造商不断推出在单晶片上集成多重处理单元新型芯片取代过去中央处理器计算机目前正在步入多核时代尽管这项技术对我们而言并不是新鲜事物但这是这种类型体系架构首次大规模运用于商用个人电脑和服务器市场

  这场变革将影响到每位计算机用户多核技术触角已经深入到服务器笔记本电脑甚至游戏机控制台领域从最终用户角度来看这种变革影响是潜移默化然而根据过去 2十年经验要获取相应性能所付出价格预期还是个未知数设计者们会发现要实现多核设计性能也是项充满挑战艰巨任务特别是现在还没有劳永逸办法和自动化技术能适应多核系统上运行现行软件Software

  指路多核

  计算机市场长期以来直在处理器速度上稳步前进处理器速度很大程度上取决于时钟频率传递给处理器执行指令速度有多快时钟频率越快处理器在指定时帧内执行指令数目就越多半导体物理特性对处理器时钟频率速度提升会有限制这种可以从图示中清楚显示从中可以看到英特尔和AMD处理器随着时间推移平均时钟频率和热量消耗情况

  从这张能量消耗曲线图上看能量消耗持续攀升要求更多冷却和电力服务来维持处理器运行就是要增加处理器内核比例来取代单纯提升时钟频率这张图中时钟频率下降是指AMD公司和英特尔公司首款双核处理器面世这些处理器设计考虑到热量问题相对单核处理器设计时钟频率要低双核芯片从过往经验来看能达到单核芯片两倍性能从而能帮助处理器性能不断进步

  多核发展的路

  目前英特尔公司和AMD公司都推出了自己多核处理器双核和 4核处理器目前已经投入市场从公司市场导向来看他们还计划在2009年到2010年陆续推出 8核处理器大致时间表如下:

  2005年 双核处理器

  2007年 4核处理器

  2009年+ 8核处理器

  服务器和工作站传统上都是使用双路处理器这就意味着到2010年底每个母板上核心总数量能轻易达到16个另外AMD和英特尔处理器都提供 4路甚至 8路插槽设计从 8路核心由此类推就意味着在不久将来 6十个 4核服务器也并非不能实现预期

  多核面临挑战

  多核处理器革命给整个计算机领域带来了前所未有挑战和机遇方面多核意味着在同样空间内实现更多计算功效方面处理器体系架构根本性变化要想充分利用这些处理器比起的前设计就更具挑战性

  面临挑战的就是软件Software概述如下:

  现有软件Software如果不做改变就无法利用目前不断进步处理器所提供多核性能

  为了充分利用多核需要同时做很多事情这种行为通常被称为并行计算并行如果编译正确执行指令速度将比传统串行要快很多它能将工作负载按照区别需求分配给处理器区别核心而传统串行只能利用个核心确实这种编译方式也只能识别个核心!

  多核带来影响

  从最终用户角度来看多核对工作负载影响更为直接举例来说工作负载要同时执行区别任务此时多核系统就能马上发挥它优势所在比如你在上观看视频同时计算机正在准备打印份大型文档作业多核系统就能协助你同时完成这些作业如果他们不是采用并行设计独立应用将不可能超越单核速度

  应用设计者们为了满足多核需求需要花费时间对代码进行升级和测试在并行设计上没有简单或者自动化捷径可循因此多核菜单(MCCB)设计就需要付出更多努力除了研发多核应用软件Software需要花费额外心血外还要适应不断涌现全新概念

  内存的争

  从定义上说所有多核系统都必须共享内存设计内存子系统能让核心的间争夺最小化但是仍然会出现内存空间为两个或者更多内核所用时候这种情况在很多时候就会导致性能问题或者性能衰减

  资源的争

  和传统单核处理器区别多核系统每个核心都必须共享本地资源除了内存的外这些资源还包括硬盘网络连接PCI总线和个人电脑工作站或者服务器其他

  Program Locality

  在多核系统中应用在那个核心上运行取决于操作系统会尽可能让所有核心工作负载均等通过在核心间对进行迁移来实现分配如果万迁移所在核心无法使用同样高速缓存Cache或者本地内存资源那么就会丧失高速缓存Cache数据优势所在性能也会因此衰减

  类型

  多核也会引发设计中新类型这种情况出现是在核心间新时间动态分配出现了问题当核心都在互相等待和冻结或者他们不能保持同步时这种情况就会发生从而报错设计者们必须在编译应用时对这点有清醒认识

  模式

  最后个问题就是模式在多核系统中核心是通过内存共享数据和通讯设计者们实现途径是取决于他们惯常编写代码模式对于所有多核设计来说没有单标准方式(语言或者API)是可以通行无阻处于多核菜单设计目我们将设计思路方法分成两类:

  主流思路方法:这种设计思路方法就是公开/标准API(应用编程接口)从过往经验看API已经在并行设计上取得了成功具有丰富编程经验基础来向设计者提供支持采用API编程思路方法在灵活性和将来升级支持方面都是风险较低选择但对于特别问题处理方面却并非最佳编程方式

  新生力量:这些编程思路方法是新生力量在将来也颇具潜力但是并非所有思路方法都具备这样实力成为大型项目选择(比如说有些尚处于试验阶段)虽然他们在实现并行方面更为出色但作为项新兴技术要进行推广还有定风险

  当然我们试图向软件Software研发人员提供指南意图颇有些班门弄斧毕竟只有设计者们最清楚项目规模和需求这些分析是要协助设计者们把握选择方向我们愿望是编程思路方法新生力量能逐渐成为设计主流随着多核系统逐步普及这些编程思路方法也能得到更广泛使用

  这些新兴编程模式数量太多而无法罗列甄选出主要思路方法由 3种组成:Threads(线程技术),OpenMP和MPI并行算法Threads(线程技术)使用是均衡共用存储器或者共享内存在传统多核系统中已经有多年使用历史

  另外种正在发展的中并能相对容易利用线程思路方法就是OpenMPOpenMP使用组指令设计来允许设计者更为简便实现对称多处理机并行要求MPI(消息传递接口)是实现高性能计算代码并行设计标准方式MPI并行设计能在独立计算机上对进程间信息进行传递对于对称多处理计算机也同样适用

  未来的路

  多核设计在计算机世界中是个广泛而动态领域MCCB对于多数设计者而言都是个好开端还将继续提供多核革命资源案例基准和背景资料

Tags: 

延伸阅读

最新评论

发表评论