系统 数据库 中间件 CAE 杀毒 防火墙 入侵检测 VPN 加密 ERP 财务管理 进销存 物流 协同办公OA 桌面办公 网络管理 CAD GIS

英特尔 C++ 编译器 9.0 Linux 版 教育版 一个许可

简介:
英特尔? C++ 编译器专业版可为创建多线程应用程序提供最好的支持。只有专业版才能提供广泛的高级优化、多线程和处理器支持,其中包括处理器自动调度、矢量化功能、自动并行处理、OpenMP*、数据预取和循环展开,以及用于并行处理、数学处理和多媒体库的高度优化的 C++ 模板。
报价:100 元
产品说明
产品图片
4 产品参数
编  码   品 牌 英特尔  购买方式 许可证 
版本类型 教育版 版本号 9.0 语言版本 英文版
软件环境 见正文
硬件环境 见正文
4 相关下载
4 产品认证获奖情况
4 产品应用案例
4 产品描述

概述

英特尔? C++ 编译器专业版可为创建多线程应用程序提供最好的支持。只有专业版才能提供广泛的高级优化、多线程和处理器支持,其中包括处理器自动调度、矢量化功能、自动并行处理、OpenMP*、数据预取和循环展开,以及用于并行处理、数学处理和多媒体库的高度优化的 C++ 模板。
专业版将高性能编译器与英特尔? 线程构建模块(英特尔? TBB)、英特尔? 高性能多媒体函数库(英特尔? IPP)以及英特尔? 数学核心函数库(英特尔? MKL)组合在一起。虽然这些库是单独提供的,但专业版为构建成本低廉、功能强大的高性能并行代码打下了坚实的基础。
标准版编译器与专业版编辑器具有相同的性能和功能,但标准版编译器不提供多线程库。
用于英特尔 C++ 编译器 Linux 版的集群 OpenMP* 还提供了一种简单方法,可以将 OpenMP 并行扩展至以 64 位英特尔? 架构为基础的集群。
特性
性能
请考虑使用英特尔 C++ 编译器专业版,以最大限度地提高性能。内置优化技术和多线程支持能够帮助创建可在最新的多核处理器上获得最佳运行结果的代码。


先进的优化特性
使用英特尔 C++ 编译器 Linux 版编译的软件可从先进的优化特性中获益,在此将对一些功能进行简要讲解,如欲了解更为详尽的信息,请参见以下链接:
多线程应用程序支持,包括用于简单有效的软件线程技术的 OpenMP 和自动并行处理。
自动矢量化功能对代码进行并行处理,以便利用最新处理器的单指令多数据流扩展 (SSE) 指令集体系结构(SSE、SSE2、SSE3、SSSE3 和 SSE4)。
高性能并行优化程序 (HPO) 重构并优化循环,以确保自动矢量化功能、OpenMP 或自动并行处理功能最大限度地将处理器的功能用于高速缓存和内存访问、SIMD 指令集以及用于多个内核。这一创新功能(对于 10.0 版而言为全新功能)将矢量化功能、并行处理和循环转换组合成一个流程,与以前离散的多个阶段相比,该流程更快、更有效且更可靠。
过程间优化 (IPO):对于包含许多常用中、小函数的程序,特别是循环内包含调用的程序,IPO 可以极大地提高应用程序性能。此优化程序的分析功能还可以提供有关漏洞和编码错误(如未初始化的变量或 OpenMP API 问题)的反馈,即使是严格依赖于编译器前端提供的分析的编译器也无法检测到这些错误。
档案导引优化 (PGO):通过降低指令缓存快取置换(cache-thrashing)、重组代码布局、缩减代码长度并减少分支预测失误来提高应用程序性能。
使用英特尔? 调试器针对已优化代码进行调试对于已针对英特尔? 架构进行优化的代码,能够提升其调试过程的效率。
Eclipse* IDE 集成
除提供命令行外,还为在英特尔? 安腾? 处理器上运行的 Linux 提供 Eclipse 集成。
英特尔 C++ 编译器 Linux 版附带一份功能强大且广泛使用的 Eclipse 开源 IDE。
可以在 Eclipse 内部调用编译器,也可以通过使用命令行接口调用编译器。
Eclipse 集成将英特尔 C++ 编译器 Linux 版与您可能已使用的其它工具(如 make、Emacs 和 gdb)结合使用。

本版本新增内容
英特尔 C++ 编译器 Linux 版构建于卓越的基础之上。您可以针对下一代硬件亲自创建下一代软件。

深入了解先进的优化特性
本节详细介绍编译器的高级优化功能。
多线程应用支持
OpenMP
和自动并行处理能够帮助将串行应用程序转化为并行应用程序,使您能够充分利用多核技术,例如英特尔? 酷睿? 双核处理器、双核英特尔安腾 2 处理器以及对称多处理系统:
OpenMP 是可移植多线程应用程序开发的行业标准。在细粒度(循环级别)与粗粒度(函数级别)线程技术上具有很高的效率。
对于将串行应用程序转换成并行应用程序,OpenMP 指令是一种容易使用且作用强大的手段,它具有使应用程序因为在多核心与对称多处理器系统上并行执行而获得大幅性能提升的潜力。
自动并行使用能自动将循环线程化的自动并行功能,提高多处理器系统上的应用程序性能。这个选项会检测能够安全地并行执行的循环,然后自动生成多线程代码。
自动并行功能使得用户不必处理迭代分区、数据共享、线程调度及同步等低级别的细节。它还能够提供多处理器系统与支持超线程 (HT) 技术的系统所具有的性能优势。
高性能并行优化程序 (HPO)
对于 10.0 版而言为全新的这一创新功能将自动矢量化功能、自动并行处理功能和循环转换功能组合成一个流程。与以前离散的多个阶段相比,该流程更快、更有效且更可靠。
HPO 优化并重构程序循环,以确保自动并行处理功能、OpenMP 和自动矢量化功能彼此结合在一起平稳地运行。HPO 的优化技术利用独特的成本效益分析,为给定程序和循环结构做出正确的优化决策。它将执行许多转换(如循环展开、剥离、交换、拆分等)和其它优化,以确保充分利用处理器的高速缓存架构、SIMD 指令集和多个内核。这些循环转换是自动执行的,因此无需手动更改代码。
自动矢量器
矢量器可自动对代码进行并行化处理,以便充分利用处理器的潜在能力。这种先进的优化对循环进行分析,并确定何时可以安全有效地利用 MMX?、SSE、SSE2 和 SSE3 指令并行执行几种反复循环。图 1 显示了经过矢量化的循环,它在一次 SSE2 运算中计算了四个迭代。
使用矢量化功能可以优化应用程序代码,在英特尔? 处理器上运行时,可以充分利用这些新的扩展功能。这些特性支持先进动态数据调整策略,包括可以生成平衡负载的循环剥离技术,以及可以匹配整个缓存线预取情况的循环展开技术。


图 1. 运行中的矢量器。
过程间优化 (IPO)

对于包含许多常用中、小函数的程序,特别是循环内包含调用的程序,IPO 可以极大地提高应用程序性能。这套可用于英特尔编译器中自动运算的技术无需关注单独的函数,而是利用多文件或整个程序来监测并执行优化。

图 2. 过程间优化流程。
图 2 中显示的 IPO 流程首先需要使用 IPO 选项对源文件进行编译,创建对象 (.o) 文件,这些文件包含编译器使用的中间语言 (IL)。根据链接,编译器结合所有 IL 信息并对其进行分析,以便实现优化机会。典型的优化作为 IPO 流程的一部分,包括程序内联和重排、删除无用(不能获得)的代码、常数传播或已知常量值的代入。IPO 在程序内级别中支持更强大的优化,因为多程序的更多上下文能够使这些更强大的优化更安全。
IPO 的分析功能还可以提供有关漏洞和编码错误(如未初始化的变量)的反馈,即使是严格依赖于编译器前端提供的分析的编译器也无法检测到这些错误。
档案导引优化 (PGO)
档案导引优化 (PGO) 编译过程使英特尔 C++ 编译器可以更好地利用处理器微体系结构,更有效地使用指令调度与高速缓存,并可以更好地执行分支预测。通过重新组织代码布局以减少指令缓存反复、缩减代码长度并减少分支预测失误,它可以帮助提高应用程序性能。
如图 3 所示,PGO 是一个三阶段的流程。这三个阶段包括:1) 利用增加的工具对应用进行编译,2) 文件生成阶段,在该阶段中执行并监视应用,3) 针对第一阶段中收集的数据加入优化,进行重新编译。下面是几种影响档案导引优化的代码长度说明:
基本模块和函数分类——将经常执行的模块和函数放置在一起,便于充分利用指令缓存定位。
辅助内联决策——将经常执行的函数进行内联,这样,代码长度的增加就会在性能受到最大影响的区域内发生。
辅助矢量化决策——对循环次数较高和经常执行的循环进行矢量化,这样,代码长度的增加就会随着性能的增加而缓解。


图 3. 档案导引优化。
使用英特尔? 调试器针对已优化代码进行调试
英特尔调试器支持对优化过的代码进行调试(即,对为了在特定的硬件体系结构上取得最佳执行效果而大幅改动过的代码进行调试)。对于优化过的代码进行调试,英特尔编译器产生符合多项标准的调试信息,支持英特尔编译器的所有调试器中均可使用这些信息。英特尔调试器支持多核架构,能够调试多线程应用程序,并提供以下相关的功能:
一个全停止/全执行(all-stop/all-go)模式(即,当一个线程停止时,所有线程都停止;一个线程恢复执行时,所有线程都恢复执行)
列出创建的所有线程
在线程之间交换焦点
查看详细的线程状态
为所有线程或线程子集设置断点(包括全停止、跟踪和观察变化)并显示堆栈的后备跟踪
内置的 GUI 能够提供一个“线程”面板(在当前源窗体中),当创建一个线程时,该面板处于激活状态,并允许操作员选择线程焦点,然后显示出相关的详细信息
兼容性和灵活性
符合标准,广泛兼容
英特尔 C++ 编译器 9.1 Linux 版完全符合标准。它还提供升级的 C++ 英特尔编译器 IDE 集成,可以同 Linux 上的 Eclipse 3.1 和 CDT 3.0 集成,并支持安腾? 2 处理器(包括双核英特尔安腾 2 处理器)。
跨应用领域实现卓越的性能
英特尔 C++ 编译器 Linux 版提供了超越一般的卓越性能、实用性以及商业优势,适用于广泛的软件市场。
下一代数据密集型应用程序开发人员将受益于英特尔编译器的动态性能优化,从而降低延迟和处理时间,而且软件设计人员添加其它功能特性也不会对性能带来太大影响。
数字家庭、游戏及娱乐应用程序都可享受英特尔 C++ 编译器提供的完美服务,因为多核平台上的并行处理擅长在后台处理下载、安全保护及其它任务,丝毫不影响用户体验。
移动软件能够在移动多核平台的性能中获得巨大优势,如通过基于英特尔酷睿双核处理器的软件来提高性能,同时降低功耗延长电池使用时间。
系统要求
本部分介绍为下述三种不同的硬件平台开发应用程序时的系统要求。
处理器术语
英特尔编译器支持三种平台:处理器和操作系统类型的常见组合。本部分介绍英特尔在其文档、安装过程和支持网站中用于描述平台的术语。
IA-32 架构——IA-32(英特尔架构,32 位)架构指基于以下处理器且运行 32 位操作系统(“Linux x86”)的系统:至少支持奔腾? II 指令集的 32 位处理器(例如,基于英特尔? 酷睿? 架构的处理器或英特尔? 至强? 处理器),或其他制造商提供的支持相同指令集的处理器。
英特尔? 64 架构——英特尔 64 架构(原先为英特尔? EM64T)指基于此类 IA-32 架构且运行 64 位操作系统 (“Linux x86_64”) 的系统:IA-32 架构基于具有 64 位架构扩展的处理器(例如,英特尔? 酷睿?2 处理器家族或英特尔至强处理器)。但是,如果系统运行的是 32 位版本的 Linux 操作系统,则适用于 IA-32 架构。针对基于英特尔 64 架构的应用程序的英特尔编译器还支持基于 AMD Athlon64* 和 Opteron* 处理器并运行 64 位操作系统的系统。
IA-64 架构——指基于英特尔安腾 2 处理器且运行 64 位操作系统的系统。
本地和跨平台开发
术语“本地”指构建一个应用程序,该应用程序将在构建其的同一平台上运行,例如,在 IA-32 架构上进行构建,以便在 IA-32 架构上运行。术语“跨平台”或“跨编译”指构建一个应用程序,构建该应用程序的平台与将运行该应用程序的平台的类型不同,例如,在 IA-32 架构上构建,在 IA-64 架构上运行。不是所有的跨平台开发组合都受支持,某些组合可能要求安装可选工具和库。
以下列表说明了支持的编译主机(构建应用程序的系统)和应用程序目标(运行应用程序的系统)组合。
IA-32 架构主机——支持的目标:IA-32 架构
英特尔 64 架构主机——支持的目标:IA-32 和英特尔 64 架构
IA-64 架构主机——支持的目标:IA-64 架构
注意:在目标不同于主机的情况下进行开发时,可能需要从 Linux 版本安装可选的库组件。
注意:英特尔编译器 Linux 版的集群 OpenMP 是一项单独许可的特性,其系统要求不同于编译器的系统要求。基于 IA-32 架构的应用程序开发要求


针对支持英特尔 64 架构的处理器或针对 AMD Opteron 处理器的应用程序开发要求


基于 IA-64 架构的应用程序开发要求

注意:
以上并未列出全部处理器型号名称——如果其它处理器型号能够正确支持所列出的指令集,则也可以使用并达到预期效果。如果您对某个处理器型号存在疑问,请与英特尔? 卓越支持联系。
有些优化选项对运行应用的处理器类型有所限制。
使用诸如 -O3、-ipo 和 -openmp 等高级优化功能编译超大源文件(数千行代码)时,可能需要相当大的内存。

发表评论
登录邮箱: 密码: 会员注册
评  论:
重点推荐
特约经销商
  • 北京市
    +86(10)85298800
促销
测评
新闻
案例
技术