英特尔 Fortran 编译器 Mac OS* X 版为所有英特尔® 架构平台提供快速开发能力和卓越性能。
它能够对软件执行自动优化和并行处理,从而充分利用英特尔多核处理器(包括双核移动平台、桌面平台以及企业平台)。
Mac* 和多核功能概述
以下特性旨在专门解决新型基于英特尔® Mac 的架构性能。此处针对每种特性作一简短介绍,链接中为详细说明:
- 多线程应用支持,包括 OpenMP 和自动并行处理,能够使您充分利用与英特尔酷睿微体系结构类似的多核技术。
Xcode* 集成支持开发人员在类似的环境下连续工作,同时充分发挥英特尔® 编译器高级功能的优势。
性能通过英特尔 Fortran 编译器专业版,您可以选择所需要的工具,将 Fortran 编译器及其内置优化功能、线程和安全功能与高度优化的数学函数库(该函数库简化了强大且可扩充的多线程数学函数的引入)结合使用,最大限度地利用多核处理器。
先进的优化特性概览
基于英特尔® 处理器的 Mac 硬件还能够获得先进的优化特性所带来的优势,下面对一些优化特性作一简短介绍,链接中为详细说明:
- 多线程应用支持,包括用于简单有效的软件线程技术的 OpenMP 和自动并行处理。
- 自动矢量化功能对代码进行并行处理,以便利用最新处理器的单指令多数据流扩展 (SSE) 指令集体系结构(SSE、SSE2、SSE3、SSSE3 和 SSE4)。
- 高性能并行优化程序 (HPO) 重构并优化循环,以确保自动矢量化功能、OpenMP 或自动并行处理功能最大限度地将处理器的功能用于高速缓存和内存访问、SIMD 指令集以及用于多个内核。这一创新功能(对于版本 10 而言为全新功能)将矢量化功能、并行处理和循环转换组合成一个流程,与以前离散的多个阶段相比,该流程更快、更有效且更可靠。
- 过程间优化 (IPO):对于包含许多常用中、小函数的程序,特别是循环内包含调用的程序,IPO 可以极大地提高应用程序性能。此优化程序的分析功能还可以提供有关漏洞和编码错误(如未初始化的变量或 OpenMP API 问题)的反馈,即使是严格依赖于编译器前端提供的分析的编译器也无法检测到这些错误。
- 档案导引优化 (PGO):通过降低指令缓存快取置换(cache-thrashing)、重组代码布局、缩减代码长度并减少分支预测失误来提高应用程序性能。
- 使用英特尔® 调试器针对已优化代码进行调试对于已针对英特尔® 架构进行优化的代码,能够提升其调试过程的效率。
英特尔 Fortran 编译器 Mac OS X 版构建于卓越的基础之上。您可以针对下一代硬件亲自创建下一代软件。以下为自编译器版本 9 以来全新的特性。
| 新增内容 | 益处 |
| 支持 Mac OS* X Leopard 和 Xcode* 3.0 | 支持创建能充分利用最新 Mac OS X 功能的应用。 |
| 其它 Fortran 2003 特性,包括输入/输出流 |
使用 C 互操作特性,可以更轻松地开发混合语言应用程序。异步 I/O 增强了读取和写入大型文件的应用程序的性能。有关可以支持的 Fortran 2003 特性的完整列表,请参阅编译器发行说明。
|
| 增强的性能和线程 |
为计算密集的应用程序(如图形/数字媒体、财务建模)提供更出色的应用程序性能,并为线程或非线程应用程序提供高性能计算。全新的高性能并行优化程序 (HPO) 提供了更为强大的功能,用于分析、优化和并行处理更多循环嵌套。
|
安全检查和诊断- GNU Mudflap
- 用于缓冲区溢出的静态验证程序
- OpenMP* API 验证。
|
能够创建更不易受安全漏洞(如参数类型不匹配)影响的代码。不管是初学者还是经验丰富的用户,诊断都能帮助他们捕获常见的代码错误,从未初始化的变量、不匹配的虚拟参数和实际参数,到 OpenMP API 编码问题。
|
| 64 位 Mac OS X* 支持 |
能够创建此类应用程序:它们可利用由最新 Apple* Mac OS X 系统中使用的基于英特尔® 64 体系结构的处理器实现的寻址和性能功能。
|
| 优化报告 |
对于希望使用我们的高级优化功能以帮助编译器在调试应用程序时可以更好地工作的用户,我们将提供更详细的优化诊断信息。新的 VTune™ 分析器 Linux 9.0 版可以筛选优化报告,以帮助引导所需要的优化过程。
|
| 多项支持循环展开和流处理存储实现更高级优化的选择 | 提升的应用性能。 |
支持最新多核处理器
英特尔 Fortran 编译器为最新的英特尔多核处理器提供优化支持,这些多核处理器如下所示:
- 英特尔® 酷睿™2 双核处理器
- 英特尔® 酷睿™2 四核处理器
- 四核英特尔® 至强® 5300 系列处理器
- 双核英特尔® 至强® 处理器 3000 系列
- 双核英特尔® 至强® 处理器 5000 系列
- 双核英特尔® 至强® 处理器 7000 系列
- 双核英特尔® 安腾® 2 处理器
|
英特尔编译器通过始终为每代处理器迅速提供顶级支持,确保您的投资以后也有回报。对于新硬件平台以惊人速度不断面世的现今社会,这是一个非常关键的优势。
通过对自动并行处理和 OpenMP* 的支持,您可以创建优化的多线程应用程序,这些应用程序会充分利用多核处理特性,从而提供卓越性能。
|
| 专业版 |
不仅包括编译器的高级功能,还包括用于数学处理的具有高度优化函数的英特尔数学核心函数库。
|
本节详细介绍编译器的高级优化功能。
多线程应用支持
OpenMP 和自动并行处理能够帮助将串行应用程序转化为并行应用程序,使您能够充分利用多核技术,例如英特尔® 酷睿™ 双核处理器、双核英特尔安腾 2 处理器以及对称多处理系统:
- OpenMP 是可移植多线程应用程序开发的行业标准。在细粒度(循环级别)与粗粒度(函数级别)线程技术上具有很高的效率。
对于将串行应用程序转换成并行应用程序,OpenMP 指令是一种容易使用且作用强大的手段,它具有使应用程序因为在多核心与对称多处理器系统上并行执行而获得大幅性能提升的潜力。 - 自动并行使用能自动将循环线程化的自动并行功能,提高多处理器系统上的应用程序性能。这个选项会检测能够安全地并行执行的循环,然后自动生成多线程代码。
自动并行功能使得用户不必处理迭代分区、数据共享、线程调度及同步等低级别的细节。它还能够提供多处理器系统与支持超线程 (HT) 技术的系统所具有的性能优势。
有关多线程应用支持的详细信息,请访问英特尔的
线程开发人员中心。
高性能并行优化程序 (HPO)
对于版本 10 而言为全新的这一创新功能将自动矢量化功能、自动并行处理功能和循环转换功能组合成一个流程。与以前离散的多个阶段相比,该流程更快、更有效且更可靠。
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) 编译过程使英特尔 Fortran 编译器可以更好地利用处理器微体系结构,更有效地使用指令调度与高速缓存,并可以更好地执行分支预测。通过重新组织代码布局以减少指令缓存反复、缩减代码长度并减少分支预测失误,它可以帮助提高应用程序性能。
如图 3 所示,PGO 是一个三阶段的流程。这三个阶段包括:1) 利用增加的工具对应用进行编译,2) 文件生成阶段,在该阶段中执行并监视应用,3) 针对第一阶段中收集的数据加入优化,进行重新编译。下面是几种影响档案导引优化的代码长度说明:
- 基本模块和函数分类——将经常执行的模块和函数放置在一起,便于充分利用指令缓存定位。
- 辅助内联决策——将经常执行的函数进行内联,这样,代码长度的增加就会在性能受到最大影响的区域内发生。
- 辅助矢量化决策——对循环次数较高和经常执行的循环进行矢量化,这样,代码长度的增加就会随着性能的增加而缓解。
使用英特尔调试器针对已优化代码进行调试
英特尔调试器支持对优化过的代码进行调试(即,对为了在特定的硬件体系结构上取得最佳执行效果而大幅改动过的代码进行调试)。对于优化过的代码进行调试,英特尔编译器产生符合多项标准的调试信息,支持英特尔编译器的所有调试器中均可使用这些信息。英特尔调试器支持多核架构,能够调试多线程应用程序,并提供以下相关的功能:
- 一个全停止/全执行(all-stop/all-go)模式(即,当一个线程停止时,所有线程都停止;一个线程恢复执行时,所有线程都恢复执行)
- 列出创建的所有线程
- 在线程之间交换焦点
- 查看详细的线程状态
- 为所有线程或线程子集设置断点(包括全停止、跟踪和观察变化)并显示堆栈的后备跟踪
- 内置的 GUI 能够提供一个“线程”面板(在当前源窗体中),当创建一个线程时,该面板处于激活状态,并允许操作员选择线程焦点,然后显示出相关的详细信息
最新增强的 GNU 项目调试器(GDB 调试器)还可以用于并行应用程序。如欲了解更多信息,请参阅
英特尔调试器技术白皮书 
[PDF 211 KB]。
返回页首深入了解 Mac 和多核性能
这一部分针对以上“Mac 及多线程性能概览”部分作进一步详细说明。
Xcode 集成
英特尔 Fortran 编译器 Mac OS X 标准版和专业版与 Xcode 兼容,支持开发人员利用广泛使用的 IDE,同时还可以充分利用来自英特尔的高级优化功能。

利用英特尔 Fortran 编译器的英特尔架构和 GCC PowerPC* 版,在 Xcode 环境下生成 C/Fortran 通用二进制,保持与 GCC 4.0 的兼容性。通过结合本机代码用于单一编译包中的两种架构,通用二进制专门用于简化 PowerPC 与英特尔架构之间的移植过程。
如果对于创建通用二进制没有做任何更改,那么不包含处理器相关性要求的高级别代码几乎没有任何要求。包含硬件相关性的低级别代码则更具挑战性。
支持 Apple 框架
Apple 框架是一种特殊的捆绑类型,用于分发共享资源,包括库代码、资源文件、标头文件以及参考文档等。它们提供的高灵活性通常比利用动态共享库更好。
有关 Apple 框架的详细信息,请访问
Apple 网站 
。
符合标准,广泛兼容
英特尔 Fortran 编译器完全支持 Fortran 95 语言标准版以及以前的标准版 Fortran 90、Fortran 77 和 Fortran IV。它还包括来自 Fortran 2003 语言标准版的许多特性,以及大量广泛使用的语言扩展。支持的主要语言扩展程序包括:
- 四重精确 REAL 数据类型 REAL(16)
- 为用户定义的类型构造、记录、合并、映射语法
- 用以增强多语言应用程序开发的指令和函数
- 二进制流 I/O
有关语言特性的完整列表,请参见产品文档。
英特尔 Fortran 编译器还可以通过如下特性提高编程人员的工作效率:
- 运行时间阵列和字符串限制检测
- 跨文件程序界面检测
- 未初始化变量运行时检测
- 使用文件名和行编号进行错误追踪
返回页首 主机系统| 硬件 |
| 最低要求 | - 基于英特尔® 处理器的苹果 Mac* 系统
- 至少 512 MB 内存,推荐 1 GB 内存
- 100 MB 的硬盘空间,外加可用于在安装过程下载和存储临时文件的 200 MB 硬盘空间
|
| 软件 |
| 最低要求 | - Mac OS X 10.4.9
- Mac OS* X 开发人员工具包括 Xcode 2.4.1、2.5 或 3.0
- Mac OS X 10.5
- GCC 4.0
|
注:高级优化选项或超大型程序可能需要其它资源,例如更多的内存或磁盘空间。
返回页首