编者的话
多核处理器带动主流科技 林玲玲
英英特尔聚焦
嵌入式片上系统振兴 x86s Geoffrey James
英特尔聚焦
为多核环境创造并行编程语言 Ed Sperling
特稿 11 嵌入式计算机模块(COM)符合医疗电子 设备的要求 Christine Van De Graaf
市场观望
高速嵌入式市场的发展趋势 Geoffrey James
2008年“英特尔杯”大学生电子设计竞赛
More...
基于英特尔®QuickAssist 技术的英特尔® EP80579 安全应用软件
采用英特尔®QuickAssist 技术的英特尔® EP80579 集成处理器
面向嵌入式应用的四核英特尔®至强® 处理器 5300 系列
支持嵌入式计算的英特尔®凌动™处理器 Z5xx 系列
支持嵌入式计算的英特尔®系统控制器中枢 US15W
More...
对 PC/104-Plus 市场的展望 Geoffrey James
在英特尔® ECX 部署英特尔®凌动™处理器 Frank Shen
在多核环境下电信/ 网络应用所面临的挑战 Eric Carmes
More...
创新引领嵌入式系统优势
和汽车融为一体的信息娱乐系统
高性能的数字视频监控解决方案
开创新领域
More...
IEI 威强半长 CPU 卡支持 45 nm 英特尔® 处理器同时支持 PCI Express 和 PCI 接口
IEI 威强工业电脑发表采用英特尔® EP80579 集成处理器嵌入式单板电脑
PORTWELL 瑞传之心,科技创新 瑞传科技基于英特尔®凌动™处理器/英特尔® EP80579 集成处理器的系列新品
TENASYS 采用多核处理器且面向 Windows® 的 INtime® RTOS,实现可靠的实时决策机制
Total Phase 借力经济型 USB 开发工具缩短上市时间
More...
AAEON 研扬科技 FOX-150 15”多功能防水型 平板电脑
AAEON 研扬科技 AEC-6920 高级无风扇嵌入式 控制系统
ADLINK 凌华科技 Express-MLC COM Express Type 2 引脚兼容型英特尔® 凌动™ 处理器 Z5xx 系列
ADVANTECH 研华科技 研华超低功耗 COM-Express SOM-5775 基于英特尔® 凌动™ 处理器 Z500 平台
ADVANTECH 研华科技 研华 SOM-5786 COM-Express 模块将性能提升到新的高度
AXIOMTEK 艾讯科技 全球最小 x86 构架 英特尔® 凌动™ 处理器嵌入式主板 PICO820
DFI ACP 友通 BL100-n 经济高效的 Mini-ITX 解决方案
EMERSON 艾默生网络能源 ATCA-7150 处理器刀片
EMERSON 艾默生网络能源 ATCA-7301 处理器刀片
EMERSON 艾默生网络能源 ATCA-7350 多核处理器刀片
EMERSON 艾默生网络能源 CPCI7200 单板电脑
EMERSON 艾默生网络能源 PrAMC-7210 AMC 模块
EUROTECH Catalyst 模块
EVOC 研祥智能 PPC-1204 12.1 寸可触摸 平板液晶电脑
EVOC 研祥智能 PPC-1503 15” 工业级高亮度 液晶平板电脑
FLEXCOMM浩通科技 Monte Gold全 特性 SME/SOHO 无线路由器与 VoIp 网关
IEI 威强工业 微型嵌入式 PCI-104 主板
KONTRON 控创科技 CP6016 高性能 PCI Express 处理器板
KONTRON 控创科技 ETXexpress®-PC
AbatronBDI2000 的 JTD JTAG 目标调试器
KONTRON 控创科技 工业级高静音服务器 KISS 系列
LAUTERBACH TRACE32-PowerTools 产品系列
MEN MICRO 基于 ESMexpress® 的 XM1 模板系统
MSI微星科技 PPC-1503 15” 工业级高亮度液晶平板电脑
MSI微星科技 PPC-1503 15” 工业级高亮度液晶平板电脑
PORTWELL瑞传科技 小型主板: Mini-ITX、ECX 和 Nano-ITX
SBS盛博科技 STM8001 基于英特尔®凌动™ 处理器系列嵌入式 CPU 模块
SBS盛博科技 基 于 英特尔® EP80579 集成处理器片上系统 (SOC).
TOTAL PHASE Cheetah™ SPI 主机适配器与 Flash Center 软件
INSYDE系微 下一代 EFI/UEFI 固件(BIOS)
LAUTERBACH TRACE32-PowerView 产品系列
MICROSOFT 微软 Windows® Embedded CE
WIND RIVER 风河 风河 VxWorks 解决方案
WIND RIVER 风河 Linux® 解决方案
WIND RIVER 风河 网络通信解决方案
WIND RIVER 风河 航空与国防行业解决方案
More...
Extension Media
Chip Design
EE Catalog
Tech Guide Online
Embedded Intel® Solutions
 
:: HOME ::
 

为多核环境创造并行编程语言

作者:Ed Sperling

软件开发往往滞后于硬件的变革速度,尤其在多核芯片领域这种差距还在不断扩大。

硬件方面,在合理功耗条件下进一步发掘130纳米乃至65纳米单核处理器的性能潜力已变得极为困难。在笔记本电脑等便携式设备中,将单核芯片的性能提高50%会使设备过热,导致无法手持或者需要耗尽电池的电量来冷却整个设备,有时两种情形兼有。即使在数据中心等能够有效冷却芯片的地方,降低服务器机架的热度所需要的能量也非常惊人,这令美国环境保护署极为不满。

硬件方面,在合理功耗条件下进一步发掘130纳米乃至65纳米单核处理器的性能潜力已变得极为困难。在笔记本电脑等便携式设备中,将单核芯片的性能提高50%会使设备过热,导致无法手持或者需要耗尽电池的电量来冷却整个设备,有时两种情形兼有。即使在数据中心等能够有效冷却芯片的地方,降低服务器机架的热度所需要的能量也非常惊人,这令美国环境保护署极为不满。

即使在已经小有成效的领域,应用开发商也要利用多个内核,将不同功能进行线程化或者在多个内核上操作。例如,在进行数据库搜索时,就非常适合于使用线程化,因为单一任务可以在多个可用的处理器或内核中进行解析。可用的内核越多,应用的运行速度就越快。相反,利用线程化运行游戏软件却会更困难,因为执行的任务完全不同且按照随机顺序处理。

英特尔的首席工程师 Anwar Ghuloum 表示:“线程的确是提升系统性能的一种低层方式。这种方式非常容易出错、造成程序死锁。”

英特尔的研究实验室正在与其大客户合作开发全新的编程环境―Intel Ct; Intel Ct是英特尔的万亿级(Tera Scale)项目的一个主要组成部分(见图)。在今年四月于中国召开的英特尔信息技术峰会上,东软公司首席技术官张霞(Zhang Xia)演示了一组幻灯片,说明用于单线程应用的单一命令需要的代码行数是36,使用具备前向可扩充性的矢量化多线程方法需要的行数是 29-在使用Ct后的结果,而使用单一线程矢量化且不支持扩充的方法则需要116 行。

这是一个接近理想化的环境。位于中国沈阳的东软公司主要开发安全软件,由此已经看到了并行编程的美好未来。但是对于游戏软件制造商等其他公司而言,这一优势并不十分明显。对于 Microsoft• Word 等台式机应用,编写并行代码的优势,如果有的话,也是非常微弱。在开发 Ct 的过程中,英特尔特别关注速度型应用的构建。

Ghuloum 表示:“真正的问题在于我们如何获得上一代面向对象语言(如 C++)的生产力和 Fortran 的性能优势。如果您比较 C 代码和 Fortran,Fortran 的性能是两倍高。

优势与成本

性能方面,开发可充分利用更多内核的软件必将是未来发展趋势。使用单一模片甚至多个嵌入式内核构建系统是唯一的经济高效开发方式。但是多个内核仍是有多个内核相关的性能开销。即使使用高度并行的应用,额外添加一个内核也不会使性能翻番。

英特尔预计,通过使用 C++ 等编程语言,性能损失已经达到20%至30%,如果编写代码能够获得生产力优势,则这一点可以接受。通过并行编程,性能开销可能在30%左右。但是通过多个内核,整体性能却可以提高多达 6 倍。

Mathworks 公司信号处理与通信总监Ken Karnofsky称他公司一直努力在其MATLAB产品中实现并行计算,并更快速的模拟MATLAB和Simulink中的代码。他说这项工作包括拆分功能以及将不同功能分布到多个处理器上。

Ken表示:“这样的并行计算有些让人尴尬——需要使用面向不同数据的不同参数重复进行计算,这一点相对简单。更困难的问题是您还得考虑算法采用的结构以及数据分配方式。”

在某些情况下,使用并行性更高的软件意味着需要更多中间件,这也会影响整体性能。为此,英特尔自主开发能够利用多个内核的中间件。IBM对其Cell处理器也进行了同样的处理,为芯片创造了一个管理程序,其作用相当于处理器的交通警察。而且由于这样的流量都必须进行动态引导,在能源和性能上都要付出代价。

这样做的优势是采用了更多软件,即具备更高的可编程性。尽管软硬件之间的功能比例视芯片架构而定,但是添加更多软件(无论是嵌入式代码、固件还是外部软件)还 是可以为设备的构建增加一些灵活性。库存方面,在消费电子等迅速变化的市场中,独立组件可以即时提升,以便集成最新的通信协议或接口。

并非所有内核都是类似的

并行软件的开发仍然非常复杂,这也是截至目前尚未出现专门开发团队的原因所在。正如价廉的汽油造成备用能源成为面向未来的工作一样,传统的扩充方式也使多核的吸引力有所降低。即使如此高的复杂性,多核编程的重要性不言而喻。当您考虑到并非所有的内核(有些内核较大)都是类似的时候,复杂性将更高。而且在软件并行过程中,相同的应用可以在不同时间充分利用部分或全部不同类型的内核。

至今,Ct多数是在共享内存系统上大范围的被应用。目前,英特尔在考虑是否使用分布式计算环境方法,以使应用能够扩充至系统的每个节点。

当然,上述工作都需要一定的时间来实现。对于数据库和框架而言,第一步是支持并行。英特尔相信在今后一到两年内能够完成这项工作。此后,使开发语言成为主流的一项工作将需要5-10 年的时间,以及英特尔及其价值链厂商,和世界各地多所高校一起努力进行研究与开发。

Ghuloum 说:“首要问题是如何使多核编程变得更简单化。这是个尚未解决的问题。”

Ed Sperling是《Chip Design》杂志的特约编辑。Ed从事技术相关研究和写作已有20年。出色的报道让他获得了无数奖项。

 

 

 


 
 
Copyright © 2007 Extension Media, Inc. All rights reserved.