英特尔®续写嵌入式的历史
通向Clovertown之路
more...
中国嵌入式市场的趋势看好
英特尔®软件开发产品、培训与支持加速多核设计优化
英特尔®先进平台技术
新一代智能机器人为中国校园提供怆造力
中国嵌入式处理器市场现状与趋势 - 与韩毅荣的一谈
more...
在产品的整个生命周期中为其提供保护
多核虚拟化技术支持增强的性能与较低的成本
多核软件调试向传统方法提出挑战
more...
英特尔®双核平台助 RadiSys 打造高能效 Mini-ITX 嵌入式系统主板
英特尔®双核助力中兴通讯打造高性能通信计算平台
英特尔®嵌入式解决方案助力研华科技强化竞争力
标题:英特尔®嵌入式解决方案助升腾打造高性能嵌入式终端
more...
MicroTCA™—释放强大潜能
RadiSys 酷睿™ 双核 COM Express
more...
AR-ES0831 低压无风扇嵌入式计算机系统支持 EPIC 系列单板计算机
嵌入式 BIOS® 2000
Phar Lap ETS
more...
Extension Media
Chip Design
EE Catalog
Tech Guide Online
Embedded Intel® Solutions
 
:: HOME ::
  英特尔®软件开发工具、培训
与技术支持加速多核设计的优化


介绍

英特尔®长期以来一直致力于为广泛的通 信与嵌入式应用提供性能日益出色的 微处理器架构。如今,英特尔®处理器采用 的一款平台架构可提供日益增强的处理能 力,同时还能够解决空间的限制和功耗问 题。随着其创新触角延伸至主频之外,开 始提供集成的平台解决方案,英特尔®当之 无愧地成为支持新一代通信与嵌入式计算 应用的行业领先厂商。

通过推出多核处理器,英特尔®为开发人员 们提供了在优化功耗的同时提升性能的机 遇。为了把握住这一机遇,并行执行多代 码数据流,英特尔®提供了一系列软件工具 与技术信息,帮助开发人员最大限度地提 高多核平台的性能。


图1:调用图(Call Graph)—程序流程的示意图,帮助您快速识别关键函数和调用顺序


充分利用并行处理优势
英特尔®已开发出一套强大的集成软件开发 工具,用以支持多线程应用的快速开发与 优化。这些工具包括:
  • 英特尔® VTune™ 可视化性能分析器,用以评估应用特性 并确定性能影响;
  • 英特尔®线程检测器和英特尔®线程分析调节器,用以确定 改善代码效率与性能的确切时机;
  • 英特尔® C++ 编译器与代码库,用以实现应用软件的自 动并行处理。
英特尔® VTune™ 可视化性能分析器
为协助开发人员确定在应用内实现并行处理的时机,英 特尔®提供了英特尔® VTune™ 可视化性能分析器。该工 具利用硬件中断,向开发人员明确展示了应用的执行方 式。英特尔® VTune™ 可视化性能分析器在 Windows 和 Linux 中,帮助开发人员致力于应用中性能密集型部分的处 理1。该工具还提供了两项技术:抽样和调用图,旨在确定 改善代码内线程的时机。

由于英特尔® VTune™ – 可视化性能分析器能够对处理器中 的几乎每个性能计数器进行抽样,因而开发人员通过重点 关注时钟标记即可了解花费在该程序每个函数上的具体时 间。在确定了最耗时的函数后,开发人员即可进一步查看 源代码,确定线程可否有效实施有些资源密集型函数可能无需进行并行处理。当确定一个 热点无法进行线程处理时,可通过对更高级的函数进行线 程处理来改善性能。英特尔® VTune™ 可视化性能分析器调 用图技术以图形方式显示了整个应用的调用树结构,使开 发人员能够对更高级别的调用进行线程处理,从而支持多 个线程同时调用热点函数。

除帮助开发人员确定在源代码中执行并行处理的机会外, 英特尔® VTune™ 可视化性能分析器还有助于开发人员确 定由于错误共享而引起的线程代码中的性能问题。当两个 线程处理位于同一高速缓存行的数据时,便会发生错误共 享。一旦一个线程改变了该高速缓存行上的数据,此高 速缓存便会无效。由于第二线程必须等待高速缓存重新加 载,因此会影响性能。借助英特尔® VTune™ 可视化性能分 析器抽样技术,开发人员可以对二级高速缓存失误进行抽 样。频繁的高速缓存失误是可能发生错误共享的先兆。

英特尔®线程检测器
英特尔®线程检测器作为英特尔® VTune™ 可视化性能分析 器的一个插件,可在程序运行时检测线程错误。之后将在 存在该错误的源代码行将错误显示出来,并进行隔离。英 特尔®线程检测器能够识别线程错误的潜在原因,并提供解 决方案建议。通过识别共享和专有变量冲突,英特尔®线程 检测器加速了线程应用的开发。


图2:英特尔®线程检测器—通过在执行时监控应用,确定数据争用、线程死锁及其它线程错误


当两个或多个线程试图同时访问同一资源时,对一个应用 进行线程处理便可能导致数据争用。如果线程无法有效通 信,运行时也会非常不稳定。例如,在读/写数据争用中, 一个线程可能试图写入一个变量,而同时另一个线程正要 读取这一变量。写入操作是否已发生将直接关系到读取线 程的结果。由于数据争用属于不确定性错误,因此除错会 非常困难。程序可能在测试中始终正确运行,但却在客户 运行时发生错误。同步访问通用资源对于避免数据争用错 误相当重要。然而,由于同步可能会降低应用速度,因此 最好仅在必要时执行。英特尔®线程检测器通过检测可能发 生和已经发生的错误,能够帮助确定同步化需求。

英特尔®线程分析调节器
对于采用 OpenMP、Windows API 或 POSIX 线程的线程 应用,英特尔提供了英特尔®线程分析调节器。英特尔®线程 分析调节器充分利用了英特尔® VTune™ 可视化性能分析器 的工具技术,能够帮助调节线程应用。该线程调节器:
  • 支持直观地应用检查;
  • 通过展示沿线程移动的重要路径,支持更高效地使用线程;
  • 识别可能影响性能的同步化问题和额外阻塞时间问题;
  • 突出工作负载的不平衡;
  • 最大限度提高并行区域所用时间,以改进应用性能。
借助英特尔®线程分析调节器,开发人员能够监控代码优化 效果,更好地调节工作负载平衡与同步化。如欲了解更多 信息,请查看英特尔®线程分析调节器2之入门指南。


图3:英特尔®线程分析调节器—查看线程开销与同步化如何影响您的应用性能


英特尔® C++ 编译器 9.0
对于资源有限的开发人员来说,能够自动分析环路并确定 并行处理机会的编译器将是一个更轻松的选择。对于希望 提高多核系统性能的开发人员,建议首先要实现自动并行 处理。

英特尔® C++ 编译器是一款用于 32 位英特尔®架构处理器的 优化编译器。英特尔®编译器可用于 Microsoft Windows 和 Linux 操作系统,支持 C 和 C++ 语言一致,并兼容 GCC 二进制兼容。

该编译器支持 OpenMP,并提供了自动并行处理功能。 OpenMP3 是一种用于多处理平台的共享内存应用程序接 口。OpenMP 使用简单的接口,隐藏线程管理和线程通 信的许多细节。通过向源代码中添加 pragma 编译控制指 令,开发人员可以指定代码的并行区域。这些 pragma 也 可以传递诸如变量属性及简单同步化等信息。OpenMP 代 码与该代码的初始串行版本极为类似。

在自动并行处理模式下,该编译器可对这些环路进行分 析,并为其创建线程代码,从而可以更好地利用并行处理 优势。该编译器可以预估环路内部有多少次计算将发生。 如果计算结果表明数量极少,则可能不会采用并行处理。 这可通过设定阈值选项来得以实现。编译器将只对那些确 定安全的环路进行并行处理,并会自动报告无法对环路进 行并行处理的原因。

对于那些选择明确控制线程,以期实现最佳性能的开发人 员,随 POSIX 和 Windows API 等一起提供的线程库就是 很好的选择。借助这些线程库,开发人员可以非常全面地 管理代码流。英特尔®编译器采用与 OpenMP 部署相同的底 层线程库。因此,OpenMP 代码也可采用自动并行处理模 式执行。

技术培训及资源
英特尔®为开发人员提供了各种培训资源。以下链接可导向 部分在线培训资源。
  • 英特尔®软件学院提供范围广泛的在线及课程培训资源, 能够帮助开发人员创建最具创新性的产品,借助这些培 训资源,开发人员能够发挥出最新英特尔®处理器及相关 技术的最大性能。 https://or1cedar.cps.intel.com/softwarecollege/
  • 英特尔®软件网络提供了免费文章及培训材料,有助于软 件开发人员最大限度地提高代码性能、缩短开发时间并 减少开发负荷。 www.intel.com/cd/ids/developer/asmona/eng/index.htm
  • 通过位于技术在线(Tech Online)的英特尔®资源中心, 用户可以获取相关技术文档,以及电子研讨会培训活动 内容。
    http://intel.techonline.com/
  • 有关英特尔®软件开发产品的更多信息还包括:英特尔® 编译器、英特尔® VTune™ 可视化性能分析器、英特尔® 性能库,以及英特尔® 线程工具等。 www.intel.com/cd/software/products/asmo-na/eng/index.htm
结论
为了充分发挥多核处理器的性能,开发人员可以修改应 用,以充分利用处理器固有的并行处理优势。借助英特尔® 软件工具,开发人员能够识别线程处理机会和调节线程性 能,从而实现从串行到并行处理转换的轻松转变。

1 英特尔® VTune™ 可视化性能分析器,
http://www.intel.com/cd/software/products/asmo-na/eng/vtune/index.htm

2 英特尔®线程分析器入门指南,
ftp://download.intel.com/support/performancetools/threadprofiler/ gettingstartedtp.pdf

3 OpenMP 标准,
http://www.openmp.org



 


 
 
Copyright c 2006 Extension Media, Inc. All rights reserved.