主页 英特尔® 软件网络

创建高能效软件(第四部分)

发布日期: 2007年9月13日 | 最后修改日期: 2008年8月27日
操作系统

本节内容简短,主要为您提供了一些参考资料的链接,旨在介绍可支持面向 Microsoft Windows Vista 和 Linux 开发功耗感知型应用的操作系统特性。

对于如何在 Vista 中创建功耗感知型应用,微软拥有丰富的资源,详细信息请参考[Ref10Ref11Ref12、and Ref13]。例如,在《Windows Vista 应用功耗管理最佳实践》[Ref11]白皮书中,作者着重强调了以下主题:

  • 处理睡眠和恢复的转换
  • 防止系统空闲超时
  • 专为更耐久的电池使用时间而设计
  • 应对常见的功耗问题
  • 专为娱乐和多媒体电脑场景而设计
  • 使用来自管理代码的功耗管理 API
  • 专为早期 Windows 版本而设计
  • 应对 Windows Service 内的功耗问题
  • 对应用进行功耗管理测试

此外,微软还提供了高级配置和电源接口(ACPI)的相关信息,其中明确定义了用于硬件识别、主板和设备配置,以及功耗管理的通用接口。编写兼容 ACPI 的驱动程序可支持操作系统控制设备的电源状态,并能在不使用的时候关闭设备,从而节省能量。如欲了解更多信息,请参考[Ref12]。大多数 Linux 版本也支持 ACPI。

对于面向 Linux 创建功率感知型应用,您只需通过您最喜欢的搜索引擎来搜索“Linux 功耗管理”,即可找到众多有用资源。例如,参见[Ref19]即可了解 Linux 功耗管理指南,或参见[Ref20]即可了解基于 Linux 的系统功耗管理的相关文章。

另一项针对 Linux 开发人员的考虑事宜,则是将一款高能效 Linux 版本用于 Midori(一个旨在为小型设备开发系统软件的开源项目)等移动设备。[Ref21]

Linux PowerTOP 是一款非常有趣的 Linux 工具,可用于检查流程的能效。[11] 它可通过紧迫时间干扰(tight time interrupt)特性来识别流程,从而防止 CPU 进入更深度的 C 状态。PowerTOP.org 现已成功识别并改进了 Linux 操作系统,以此实现了各种版本的能效提升。

工具和技术

本节将向您全面介绍英特尔提供的一系列可支持多线程和环境感知型计算的工具。

线程工具

英特尔® 线程检测器

英特尔® 线程检测器是一种分析工具,可准确定位难以发现的线程错误,如 32 位和 64 位应用中的竞跑条件和死锁等。此外,它还能顺利集成到自动化质量保证/测试流程中,以有效确保代码的质量。该工具能够:

  • 检测隐藏的潜在错误(如死锁和竞跑条件),并将这些错误映射至源代码行、呼叫堆栈以及内存参考中。
  • 显示有用告警,尤其突出显示最有可能导致严重后果的错误,以实现高效的线程应用诊断。
  • 当与所支持的英特尔® 编译器以及源代码重构模式搭配使用时,可一直跟踪错误至源代码的具体变量中。
  • 完善的检错功能不仅有助于降低添加线程所造成的风险,而其还便于您动手学习线程的相关基本原理。

英特尔® 线程分析工具

Windows* 版英特尔® 线程分析工具 3.1 可帮您优化多线程应用的运行速度,从而实现英特尔® 多核处理器的最佳性能。该工具可帮助开发人员:

  • 了解线程的工作及交互方式(时间视图)
  • 准确定位调用堆栈以及源代码中性能问题的确切位置,从而有效协助问题分析。
  • 测量应用所能有效利用的内核数量,以便确定实际的并行计算性能

英特尔® 线程构建模块

英特尔® 线程构建模块 1.1 是一个 C++ 运行时库,可提取必要的低级线程详细信息,以实现最佳多核性能。由于它使用了常见的 C++ 模板和编码样式,因而大大避免了繁复的线程处理实施工作。此外,它还可支持开发人员创建具有内在可扩充性、可跨平台移植的应用,也就是说,即使处理器内核的数量有所增加,您也无需代码维护。

  • 它包括多种常用算法,支持出色的并行性能和可扩充性
  • 提供通用模板来定制算法,以满足开发人员的不同要求
  • 支持应用内轻松部署插件,以实现可扩充的软件运行速度,从而针对可用内核和高速缓存位置进行合理优化
  • 多数情况下,您可通过预先构建并行结构,来减少生成线程化软件所需的工作量

英特尔® VTune™ 性能分析器

英特尔® VTune™ 性能分析器无需重新编译,即可借助图形用户界面简化应用性能。它独立于编译器和语言之外,能够支持 C、C++、Fortran、C#、Java、.NET 和其它语言。此外,VTune 还包括调用关系图分析、采样事件,以及面向所有最新英特尔® 处理器的广泛调整事件集。这里所采用的就是一个面向 Windows 的 VTune 版本和一个面向 Linux 的版本。

环境感知型工具

英特尔为开发人员创建了多款工具,其众多特性可支持他们开发环境感知型应用。这些工具包括:

  • 移动平台软件开发套件(MPSDK)
  • 笔记本电脑游戏技术开发套件(游戏 TDK)
  • Web 2.0 技术开发套件(Web 2.0 TDK)

英特尔® 移动平台软件开发套件

移动用户大多期望业务应用能够实现自动调整,从而适应资源受限的移动环境。有了英特尔移动平台软件开发套件,开发人员便可集成多种移动特性,从而满足用户随时随地计算的需求。

  • 透明的连接管理:开发能够帮助用户将其目光从网络连接管理转移到任务本身的应用。
  • 功耗与性能平衡:开发人员可利用功耗环境,对可用的电池使用时间进行最充分的利用。
  • 管理可用内存:利用可用内存和磁盘空间进行本地数据存储和同步。借助软件开发套件开发的应用,可发现并利用可用内存及磁盘空间,从而进行高速缓存、本地存储和同步。
  • 适应不同的显示器类型:移动设备通常会连接到不同类型的显示器上。基于软件开发套件的应用不仅能够发现连接的显示器类型,还能灵活适应该显示器的类型。

创建可感知平台环境的代码,意味着应用可根据用户设置以及环境和平台的变化,实现更加有效的调整。

下图就为您显示了英特尔® 移动平台 SDK 如何跨越多个不同的功能层,实现应用和移动硬件之间的更佳结合。

如欲了解有关移动平台 SDK 的更多信息,请访问:http://ossmpsdk.intel.comwww.intel.com/software 

英特尔® 笔记本电脑游戏技术开发套件

英特尔® 笔记本电脑游戏技术开发套件(TDK)向您提供了一个接口,您可通过添加移动型特性来帮助扩展游戏的接口,从而支持更出色的笔记本电脑游戏体验。

TDK 包括 C++ 代码,可帮助开发人员创建各种具有以下特性的应用:

  • 响应电源变化、电池电源水平以及 WiFi 信号强度变化等平台状态变化
  • 通过监控平台特性,以及采取适当措施来响应移动使用方式所导致的变化,从而大大改进您的游戏体验
  • 利用线程 API 调用,来为多核平台提供更好的处理器利用率

主要特性包括:

  • 高层 API,以获取有关电池电源状态、网络连接和处理器信息(包括内核数量)等在内的多种信息
  • 一个线程事件管理系统,可通过最低限度的客户机游戏应用成本来监控系统变化
  • 能够以面向对象的方式,创建用户定义的回调,从而处理特定的平台事件

如欲了解有关笔记本电脑游戏 TDK 的更多信息,请访问:http://softwarecommunity.intel.com/articles/eng/1017.htm 

英特尔® Web 2.0 技术开发套件

Web 2.0 TDK 可提供免版税的 Javascript API、二进制代码和源代码,以支持开发人员创建能够充分利用笔记本电脑和超移动电脑的众多移动特性的网络应用。在 Web 2.0 应用中,开发人员可充分利用平台配置和环境的相关信息,提供更有效的交互和更出色的用户体验,特别是对于那些经常发生连接间断和电量不足问题的移动平台。

TDK 不仅能让开发人员在使用 JavaScript 的浏览器内了解到显示、存储、处理器等平台配置,还能使其明晰带宽、连接情况、电源和位置等平台环境。它包含适用于 IE 6/7 和 Firefox 的文档及完整源代码(C++ 和 JavaScript)。这些代码可以直接融入您的扩展程序或 JavaScript 程序库中,并且无需支付任何版税即可重新分发。

主要特性包括:

  • 支持带有 IE6/7 或 Firefox 浏览器的 Windows XP*
  • 能以面向对象的方式创建用户定义的回调,从而处理特定的平台事件。
  • 提供高级 JavaScript API,以获取关于电池电源状态、网络连接和处理器信息(包括内核数量)等多项内容。
  • 提供有关功率、连接情况、存储、带宽、处理器和位置的 API 信息

如欲了解更多信息和演示/视频,请访问:http://www.intel.com/software/web20TDK/ 

结论

本文分析了软件方案、设计和软件开发工具,您可充分利用上述资源,提升应用软件的能效、延长移动平台的电池使用时间。计算效率、数据效率和环境感知方法均有利于创建高能效的应用。此外,我们还准备了众多资源,以白皮书、开发人员套件和分析工具等形式向您提供。请参见参考资料列表了解更多信息。

本文分析了软件方案、设计和软件开发工具,您可充分利用上述资源,提升应用软件的能效、延长移动平台的电池使用时间。计算效率、数据效率和环境感知方法均有利于创建高能效的应用。此外,英特尔还提供了众多资源,以白皮书、开发人员套件和分析工具等形式向您提供。其中很多资源已在上文中有所提及,接下来,我们将在下一部分继续为您介绍。如欲了解有关能效及其它主题的更多信息,请访问:http://softwarecommunity.intel.com 

参考资料
  1. 《嵌入式软件的功耗分析》,作者:Tiwari、Malik 和 Wolfe,计算机辅助设计国际大会,1994 年。
  2. 《数据效率软件和内存架构是提高性能和降低功耗的基础》,作者:Guido Arnout 博士,《信息季刊》第 3 期第 4 卷,2005 年
  3. 《磁盘 I/O 方法的功率分析》,作者:Karthik Krishnan 和 June De Vega,http://softwarecommunity.intel.com/articles/eng/1091.htm 
  4. 《功率优化:进一步深化移动远景》,作者:Karthik Krishnan、Rajshree Chabukswar 和 Jun De Vega,http://softwarecommunity.intel.com/articles/eng/1092.htm 
  5. 《利用多线程技术最大限度改进英特尔® 酷睿™ 微体系结构的性能和能效》,作者:Rajshree Chabukswar,http://www.intel.com/technology/magazine/computing/mobile-power-saving-0506.pdf 
  6. 《最大限度节省移动平台的功耗》,作者:Rajshree Chabukswar,http://www.intel.com/cd/ids/developer/asmo-na/eng/274896.htm 
  7. 《算法分析文章精选》,作者:Donald E. Knuth,2000 年
  8. 《计算机编程的艺术》,4 卷,作者:Donald E. Knuth,2005 年
  9. 《算法分析简介》,作者:Robert Sedgewick 和 Philippe Flajolet,1996 年
  10. 10. 《Windows Vista:开发功耗节省型应用》,幻灯片,作者:Pat Stemen 和 Geralyn Miller,SDC 2005 (请访问:http://download.microsoft.com/download/c/d/5/cd5154e8-d825-4e14-89c8-8b0eb9dda203/pdc_2005_developingpower-awareapplications.ppt) 
  11. 《面向Windows Vista 的应用功耗管理最佳实践》,微软白皮书,(请访问:http://www.microsoft.com/whdc/system/pnppwr/powermgmt/PM_apps.mspx) 
  12. 《ACPI / 功耗管理——架构与驱动程序支持》,微软硬件开发人员中心,(请访问:http://www.microsoft.com/whdc/system/pnppwr/powermgmt/default.mspx) 
  13. 《Windows Vista 和 Windows Server 2008 的处理器功耗管理》,微软白皮书(请访问:http://www.microsoft.com/whdc/system/pnppwr/powermgmt/ProcPowerMgmt.mspx) 
  14. 《扩展风靡全球的处理器架构》,作者:R.M. Ramanathan et.al.,英特尔白皮书,(请访问:http://download.intel.com/technology/architecture/new-instructions-paper.pdf) 
  15. 《PeekMessage:优化应用以支持更耐久的电池使用时间》,作者:Dale Taylor,英特尔白皮书
  16. 《高能效图形用户界面设计》,作者:Vallerio、Zhong 和 Jha
  17. 《无线局域网数据传输功耗分析》,作者:Jun De Vega 和 Rajshree Chabukswar,英特尔白皮书,http://www.intel.com/cd/ids/developer/asmo-na/eng/333927.htm 
  18. 作者:B. Schilit、N. Adams 和 R. Want.(1994 年)。《环境感知型计算应用》。移动计算系统和应用(WMCSA'94)IEEE 研讨会,美国加利福尼亚州圣克鲁斯市:89-101。(请访问:http://sandbox.parc.com/want/papers/parctab-wmc-dec94.pdf) 
  19. 《Linux 功耗管理指南》,http://www.gentoo.org/doc/en/power-management-guide.xml 
  20. 《基于 Linux 的系统功耗管理》,http://www.linuxjournal.com/article/6699 
  21. Midori,http://midori.sourceforge.net 

 

作者简介

Bob Steigerwald
Bob Steigerwald 是英特尔软件解决方案事业部的工程经理,在美国加利福尼亚州的福尔松工作。他拥有美国空军军官学校的计算机科学学士学位、伊利诺伊大学计算机科学硕士学位,以及美国海军研究生院的计算机科学博士学位,他在攻读博士学位时的主要研究方向为软件工程和软件重复使用。目前他的团队正致力于确定一系列工具和技术,以支持面向英特尔架构移动平台而开发的高能效软件。他的电子邮件地址为:bob.steigerwald@intel.com

Rajshree Chabukswar
Rajshree Chabukswar 是软件解决方案事业部的一名软件工程师,主要负责客户机的支持工作,以便通过软件优化来支持客户机平台。在进入英特尔之前,她获得了纽约州 Syracuse 大学的计算机工程设计硕士学位。她的电子邮件地址为:rajshree.a.chabukswar@intel.com

Karthik Krishnan
Karthik Krishnan 是英特尔软件解决方案事业部的一名软件工程师。他拥有印度理工学院的数学硕士学位。目前,他的工作重点在于双核平台上软件应用的功率和性能优化。他的电子邮件地址为:karthikeyan.krishnan@intel.com

Jun De Vega
Jun De Vega 是英特尔软件与解决方案事业部的一名应用工程师,主要致力于面向英特尔® 架构的应用优化工作。他负责在英特尔® 移动平台和台式机平台上支持独立软件开发商(ISV)的应用。他的电子邮件地址为:rodolfo.de.vega@intel.com

附录 A:功率测量方法

测量移动平台中单个组件的功耗并不烦琐。现在已有多款工具可能对特定移动平台所消耗的功率进行高级别的评估,但是不能提供具体组件的详细信息。这样,一种更为精确深入的功率测量方法应运而生,即使用数据获取(DAQ)工具,它们不仅可测量具体的硬件组件,还能生成更加详尽的功率测量记录。以下列出了我们用于分析的平台详细信息和功率测量方法。

硬件

Fluke NetDAQ* 2686A

目标电脑:英特尔® 酷睿™ 双核处理器/2 GHz Yonah、Jamison Canyon* CRB、2x512 MB DDR2、40 GB SATA 5400 rpm(2.5 英寸移动式)、CD/DVD 驱动器、Microsoft Windows* XP Professional SP2

电脑主机:任何 IA32 系统

软件

测试应用(使用不同的应用)

NetDAQ 记录器:Fluke DAQ 软件 v2.2

测试设置



  • 电脑主机可以是任何采用 Microsoft Windows XP 和 NetDAQ 记录器软件的 IA32 系统。记录器可收集测量的电流和电压,并支持用户计算平均功率(瓦)。我们用于整个分析的取样间隔均为 25 微秒。平台功率测量不包括移动设备的 LCD 显示器。
  • NetDAQ 的模块附于(各自导线)目标电脑之上,以测量感应电阻上的电流和压降。NetDAQ 通过交叉网络线缆连接到主电脑。
  • 目标电脑(Napa/Yonah)的主板十分特殊(Jamison Canyon CRB),它具有多个内置传感器。对于每个目标组件(即 CPU)而言,所有电阻器都在两端加固(焊接)并连接到附在 NetDAQ 单元的模块上。

 


[1] 您可能会注意到,它并非总是正确的,这点非常有趣。由于处理器状态与电压之间呈平方关系,我们可以得出:相比以更高的 P 状态运行更短时间相比,流程以更低的 P 状态运行更长时间实际上消耗的能量更少。这有待于我们做进一步研究。

[2] 如欲了解这一主题的更多详细信息,请访问:http://www.intel.com/technology/magazine/computing/mobile-power-saving-0506.pdf 

[3] http://us.fluke.com/usen/products/NetDAQ.htm?catalog_name=FlukeUnitedStates 

[4] GV3 是微软提供的一个补丁程序(KB896256),可更改内核功率管理器,使其跟踪整个封装(而非独立内核上)的 CPU 利用率。当一个内核的工作负载远远少于另一个内核时,它可解决功率管理器因不正确计算处理器的优化目标性能状态而产生的问题。在自适应模式中,性能状态设置过低,性能受到负面影响。

[5] 如欲了解有关该研究的更多详细信息,请访问:http://softwarecommunity-zho.intel.com/articles/zho/1089.htm 

[6] 如欲了解有关 MobileMark 2005 的详细信息,请访问:http://www.bapco.com/ 

[7] 如欲了解有关该分析的更多详细信息,请访问:http://softwarecommunity.intel.com/articles/eng/1091.htm 

[8] 如欲了解本主题的更多详细信息,请访问:http://www.intel.com/cd/ids/developer/asmo-na/eng/333927.htm 

[9] 如欲了解有关本研究的全部详细信息,请访问:http://www.intel.com/cd/ids/developer/asmo-na/eng/dc/mobile/333574.htm 

[10]如欲了解有关 Extech 功耗分析器的详细信息,请访问:http://www.extech.com/instrument/products/310_399/380803Power.html 

[11] 请访问:http://LinuxPowerTOP.org 



上一页 1  2  3 4  下一页

第 4 页,共 4 页
我们邀请您在本页 发表评论 (不受客服控制),或直接向我们的支持中心 提问.