概述
英特尔? Visual Fortran 编译器专业版可为创建多线程应用程序提供最好的支持。只有专业版才能提供广泛的高级优化、多线程和处理器支持,其中包括自动处理器调度、矢量化功能、自动并行处理、OpenMP*、数据预取、循环展开、重要的 Fortran 2003 支持以及高度优化的数学处理库和Microsoft Visual Studio*。
现在,开发人员可根据其数学处理需求,在三个选项之间进行选择。
专业版将高性能编译器与英特尔? 数学核心函数库(英特尔? MKL)结合在一起。
含有 IMSL* 的专业版还包括用于 Windows 的 IMSL Fortran 库
标准版编译器与专业版编辑器具有相同的性能和功能,但标准版编译器不包括英特尔 MKL 或 IMSL。
所有版本现都包括 Microsoft Visual Studio 2005 首选合作伙伴版,提供了完整的 Fortran 开发环境。
特性
英特尔 Visual Fortran 编译器 Windows 版为所有英特尔? 架构平台提供快速开发能力和卓越性能。它是一种全语言 Fortran 95 编译器,其中包含了来自 Fortran 2003 标准版的许多功能,还带有大量广泛使用的扩展。
它能够对软件执行自动优化和并行处理,从而充分利用英特尔多核处理器(包括双核及四核移动平台、桌面平台以及企业平台)。
现有三个编译器包可供选择
可供选择的英特尔 Visual Fortran 编译器 Windows 版有三种:专业版、含有 IMSL 的专业版,以及标准版。专业版将高性能编译器与英特尔数学核心函数库(英特尔 MKL)结合在一起。含有 IMSL 的专业版提供专业版中的所有许可组件,还包括用于 Windows 的 IMSL Fortran 库。标准版提供不含英特尔 MKL 或 IMSL 的编译器。所有版本都包括 Microsoft Visual Studio 2005 首选合作伙伴版(评估版和学生版许可证类型除外)。
性能
通过英特尔 Visual Fortran 编译器专业版,您可以选择所需要的工具,将 Fortran 编译器及其内置优化功能、线程和安全功能与高度优化的数学函数库(该函数库简化了强大且可扩充的多线程数学函数的引入)结合使用,最大限度地利用多核处理器。

先进的优化特性
使用英特尔 Visual Fortran 编译器 Windows 版编译的软件受益于这些高级优化特性,此处简单说明其中若干特性,您可以通过链接获得更完整的说明:
多线程应用支持,包括用于简单有效的软件线程技术的 OpenMP 和自动并行处理。
自动矢量化功能对代码进行并行处理,以便利用最新处理器的单指令多数据流扩展 (SSE) 指令集体系结构(SSE、SSE2、SSE3、SSSE3 和 SSE4)。
高性能并行优化程序 (HPO) 重构并优化循环,以确保自动矢量化功能、OpenMP 或自动并行处理功能最大限度地将处理器功能用于高速缓存和内存访问、SIMD 指令集,以及用于多个内核。这一创新功能(对于 10.0 版而言为全新功能)将矢量化功能、并行处理和循环转换组合成一个流程,与以前离散的多个阶段相比,该流程更快、更有效且更可靠。
过程间优化 (IPO):对于包含许多常用中、小函数的程序,特别是循环内包含调用的程序,IPO 可以极大地提高应用程序性能。此优化程序的分析功能还可以提供有关漏洞和编码错误(如未初始化的变量或 OpenMP API 问题)的反馈,即使是严格依赖于编译器前端提供的分析的编译器也无法检测到这些错误。
档案导引优化(PGO):通过降低指令缓存快取置换(cache-thrashing)、重组代码布局、缩减代码长度并减少分支预测失误来提高应用程序性能。
本版本新增内容
英特尔 Visual Fortran 编译器 Windows 版建立于卓越的基础之上。您可以针对下一代硬件亲自创建下一代软件。

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

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

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

兼容性和灵活性
符合标准,广泛兼容
英特尔 Visual Fortran 编译器旨在与 Microsoft 开发产品协同工作,它依赖于这些产品的特定组件。它与 Microsoft Visual Studio 2005 以及 Visual Studio .NET* 2003 相集成,并提供扩展的 32 位和 64 位多核处理器支持。
英特尔 Visual Fortran 编译器 10.0 Windows 版完全支持 Fortran 95 语言标准版以及以前的标准版 Fortran 90、Fortran 77 和 Fortran IV。它还包括来自 Fortran 2003 语言标准版的许多特性,以及大量广泛使用的语言扩展。支持的主要语言扩展程序包括:
四重精确 REAL 数据类型 REAL(16)
为用户定义的类型构造、记录、合并、映射语法
用以增强多语言应用程序开发的指令和函数
二进制流 I/O
有关语言特性的完整列表,请参见产品文档。
英特尔 Visual Fortran 编译器 10.0 Windows 版还通过如下功能增强编程人员的工作效率:
运行时间阵列和字符串限制检测
跨文件程序界面检测
未初始化变量运行时检测
使用文件名和行编号进行错误追踪
该编译器还具有一个特点,即它与 Compaq Visual Fortran* 高度兼容,包括语言扩展、预定义模块以及库例程。
跨应用领域实现卓越性能
英特尔 Visual Fortran 编译器 Windows 版带来了杰出的性能与可用性,帮助您在诸多的软件市场中赢得业务优势。
下一代数据密集型应用程序开发人员将受益于英特尔编译器的动态性能优化,从而降低延迟和处理时间,而且软件设计人员添加其它功能特性也不会对性能带来太大影响。
科学、研究及相关应用将受益于快速编译时间、高性能执行以及强大的技术支持。计算密集型软件可以充分利用英特尔架构平台中的并行功能所带来的优势。
系统要求
本部分介绍为下述三种不同的硬件平台开发应用程序时的系统要求。
处理器术语
英特尔编译器支持三种平台:处理器和操作系统类型的常见组合。本部分介绍英特尔在其文档、安装过程和支持网站中用于描述平台的术语。
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 或英特尔 64 架构的处理器或 AMD 处理器的应用程序开发主机软件要求
针对基于 IA-64 架构的处理器开发应用程序的主机软件要求
运行应用程序的目标系统要求



注:
以上并未列出全部处理器型号名称——如果其它处理器型号能够正确支持所列出的指令集,则也可以使用并达到预期效果。如果您对某个处理器型号存在疑问,请与英特尔? 卓越支持联系。
有些优化选项对运行应用的处理器类型有所限制。如欲了解更多信息,请参阅这些选项的相关文档。
高级优化选项或超大型系统可能需要其它资源,如更大的存储器和磁盘空间。
在未安装英特尔 Visual Fortran 编译器的系统上运行应用程序时,可能会要求在目标系统上安装某些可再发行 DLL。
对于使用了跨编译在不同平台上构建的应用程序,目标系统上的 Microsoft 运行时 DLL 必须与用于构建该应用程序的 Platform SDK 提供的 DLL 相同或其新一些。
某些文档需要使用 Adobe Acrobat Reader* 7.0 或更高版本才能查看。
对于确保运行应用程序的操作系统与处理器均支持应用程序所含全部机器指令,应由应用程序开发人员负责。