英特尔® 英特尔多核计算技术专区
图像
编译器C++/Fortran
图像 图像
如何安装Windows版的英特尔C++编译器

SSE指令生成及针对处理器的优化 Intel FORTRAN 编译器 入门系列之三: 兼容 Fortran 语言标准 95/2003
英特尔C++编译器10.1与MS Visual C++的兼容性

Intel FORTRAN 编译器 入门系列之一: Linux 安装和使用 Intel FORTRAN 编译器 入门系列之四: OpenMP 支持
英特尔C++编译器对标准C和C++的支持 Intel FORTRAN 编译器 入门系列之二: Windows 安装和使用 打印打印
图像 图像

图像 如何安装Windows版的英特尔C++编译器 图像

在安装Windows版的英特尔C++编译器之前,你必须安装以下开发工具中的一种:

  • Microsoft Visual C++* 6.0
  • Microsoft Visual Studio 98
  • Microsoft Visual C++ .NET* 2003 标准版或更高
  • Microsoft Visual Studio .NET 2003, 并且安装Visual C++
  • Microsoft Visual Studio 2005* 或 2008, 标准版或更高, 并且安装Visual C++
  • Microsoft Visual C++ 2005* Express Edition

    注:如果你安装的是MS VC 2005/2008 Express Edition,您还必须安装Windows Server 2003 R2 Platform SDK (Core SDK),在这样的配置下,英特尔C++编译器将只能在命令行下使用,无法集成到Visual Studio的IDE中。具体请查阅编译器的Release Notes的System Requirements章节。

    如果您已经满足了以上要求,您就可以开始安装英特尔C++编译器了。在安装之前,请确保MS VC及MS VS是关闭的。 双击英特尔C++编译器的安装程序就开始了安装,安装过程中会要求您输入序列号或提供许可文件(.lic文件)。您还可以选择安装不同的组件,组件包括:

  • 英特尔C++编译器 for IA-32应用程序
  • 英特尔C++编译器 for Intel 64应用程序
  • 英特尔C++编译器 for IA-64应用程序
  • 英特尔调试器
  • Microsoft Visual Studio IDE集成
    您可以根据您开发的需求安装不同的组件。




  • 图像 英特尔C++编译器10.1与MS Visual C++的兼容性 图像

    英特尔C++编译器10.1支持MS VC6、VC .NET 2003、VC 2005及VC 2008,仅支持C/C++语言的项目,不支持managed code和attribute code。

  • 在VC 2005的IDE中,您可以使用英特尔C++编译器编译IA-64和Intel 64的应用程序。在VC .NET 2003的IDE中则不可以。要编译Intel 64的应用程序,您需要VS 2005标准版或更高版本;要编译IA-64的应用程序,则需要VS 2005 Team Suite。
  • 您可以使用英特尔C++编译器及VC对项目做混合编译,即一部分文件用英特尔C++编译器编译,其余部分用VC编译。
  • 英特尔C++编译器支持VC .NET引入的新开关:/Zc:forScope和/Zc:wchar_t。
  • 英特尔C++编译器与.NET Intrinsic完全二进制兼容。
  • 英特尔C++编译器完全支持VC .NET引入的运行检测开关,包括/RTCs、/RTCu、/RTCc、/RTC1。
  • 当您在命令行下用英特尔C++编译器编译时,您可以使用/Qvc7.1或/Qvc8来选择编译器与VC .NET 2003或VC 2005保持兼容。


  • 图像 英特尔C++编译器对标准C和C++的支持 图像
    对C标准的支持 英特尔®C++编译器符合ANSI/ISO standard ISO/IEC 9899:1999标准,唯一的例外是不支持128位的long double类型。 对C++标准的支持 英特尔®C++编译器符合ANSI/ISO standard ISO/IEC 14882:1998标准,唯一的例外是模板使用export关键字。如: export template void fun(T); export template class A; Linux版和Mac OS版的英特尔®C++编译器都支持上述用法,但Windows版的英特尔®C++编译器目前还不支持。


    图像 SSE指令生成及针对处理器的优化 图像

    英特尔C++编译器中针对英特尔处理器优化的编译器选项 英特尔C++编译器中针对英特尔处理器优化的选项分两类:

    1. /Qx (在Linux上是 -x )—— 是表示不同处理器的代码,处理器代码对照表请见下表。使用该开关可以生成出专门针对指定某款处理器优化的代码。生成出的代码仅能在指定的处理器或更新的处理器上运行,因为代码中可能采用了这些处理器中的SIMD指令。在生成的可执行文件的入口处会有一段检查代码,如果该文件运行在较老的处理器,程序将提示您并退出执行。这将有助于避免执行非法指令的错误。

    2. /Qax (在Linux上是 -ax )——使用该开关可以让编译器生成出多条代码路径,通过处理器分发技术(Processor dispatch technology),程序入口处会对当前运行的处理器进行判别,并选择对当前处理器最优化的代码路径。

    处理器代码对照表

    S 可生成SSE4.1、SSSE3、SSE3、SSE2、SSE指令。针对45nm英特尔Core微体系架构进行优化,同时还做一些O代码中没有的优化。
    T 可生成SSSE3、SSE3、SSE2、SSE指令。针对英特尔Core微体系架构进行优化,同时还做一些O代码中没有的优化。
    P 可生成SSE3、SSE2、SSE指令。针对Pentium M处理器微体系架构和Netburst微体系架构进行优化,同时还做一些O代码中没有的优化。
    O 可生成SSE3、SSE2、SSE指令。针对Pentium M处理器微体系架构和Netburst微体系架构进行优化。代码路径可以在支持SSE3的英特尔处理器及非英特尔处理器上执行,例如某些AMD处理器。注意:该代码不支持-axO及/QaxO。
    N 可生成SSE2、SSE指令。针对Netburst微体系架构进行优化,同时还做一些W代码中没有的优化。
    W 可生成SSE2、SSE指令。针对Netburst微体系架构进行优化。代码路径可以在支持SSE2的英特尔处理器及非英特尔处理器上执行,例如某些AMD处理器。
    K 可生成SSE指令。针对Pentium III处理器和Pentium III至强处理器进行优化。代码路径可以在支持SSE的英特尔处理器及非英特尔处理器上执行,例如某些AMD处理器。

    上述哪些处理器代码比较适合我目前使用的处理器?

    S Quad-Core Intel® Xeon 54XX series
    Dual-Core Intel® Xeon 52XX series
    Intel® Core™ 2 Extreme 9XXX series
    Intel® Core™ 2 Quad 9XXX series
    Intel® Core™ 2 Duo 8XXX series
    T Quad-Core Intel® Xeon® 73XX, 53XX 32XX series
    Dual-Core Intel® Xeon® 72XX, 53XX, 51XX 30XX series
    Intel® Core™ 2 Extreme 7XXX, 6XXX series
    Intel® Core™ 2 Quad 6XXX series
    Intel® Core™ 2 Duo 7XXX, 6XXX, 5XXX, 4XXX series
    Intel® Core™ 2 Solo 2XXX series
    Intel® Pentium® dual-core processor E2XXX, T23XX series
    P Dual-Core Intel® Xeon® 70XX, 71XX, 50XX Series
    Dual-Core Intel® Xeon® processor (ULV and LV) 1.66, 2.0, 2.16
    Dual-Core Intel® Xeon® 2.8
    Intel® Xeon® processors with SSE3 instruction set support
    Intel® Core™ Duo
    Intel® Core™ Solo
    Intel® Pentium® dual-core processor T21XX, T20XX series
    Intel® Pentium® processor Extreme Edition
    Intel® Pentium® D
    Intel® Pentium® 4 processors with SSE3 instruction set support
    N (IA-32 only) Intel® Xeon® processors
    Intel® Pentium® 4 processors
    Intel® Pentium® M
    K (IA-32 only) Intel® Pentium® III Xeon
    Intel® Pentium® III

    如果您必须要支持非英特尔CPU,您应该使用O、W或K。

    推荐使用的处理器代码的组合


    图像 Intel FORTRAN 编译器 入门系列之一: Linux 安装和使用 图像

    经过测试, Intel FORTRAN 编译器能支持安装在绝大多数的主流Linux发行版本, 包括 Asianux* 3.0, Debian* 4.0, Red Hat Enterprise Linux* 3, 4, 5, Fedora* 7, SUSE LINUX Enterprise Server* 9, 10, TurboLinux* 11, Ubuntu 7.0等等 ...

    I. Intel FORTRAN 编译器安装

    1) 下载安装包后, 解包, 并运行安装脚本 (请尽量使用 root 权限的账号进行安装)
    > tar -zxvf l_fc_x_10.1.xxx.tar.gz
    > cd l_fc_x_10.1.xxx
    > ./install.sh
    2) 选择 1 进行安装, 并提供许可文件(License File). 注意请输入完整的全路径, 包括许可文件名 (许可文件通常以.lic结尾, 建议放入缺省目录/opt/intel/licenses)
    3) 选择 1 进行典型安装 (Typical Install)
    4) 根据提示, 阅读许可, 选择安装路径等等, 直到全部结束

    II. Intel FORTRAN 编译器使用

    注意, 缺省的安装目录在 /opt/intel/fc[e]/xx.x.xxx/ (xx.x.xxx代表版本号, fc代表IA-32 and IA-64版本, fce代表Intel 64版本)

    使用前, 需要设置相关的环境:
    ] source /opt/intel/fc/10.1.xxx/bin/ifortvars.sh (或者是ifortvars.csh)

    然后编译源文件:
    ] ifort my_source_file.f90

    查看当前版本
    ] ifort -V

    参看支持的所有命令行选项
    ] ifort -help


    III. 常见问题

    Q: 如果碰到安装失败, 如何解决 ?
    A: 首先, 请确认你下载了最新的发行版本, 并检查当前系统,
    1) 系统是否已经安装 Linux Developer tools 选件, 包括 GCC, G++ 和其它相关的开发工具包
    2) 系统是否已经安装 Linux 选件 compat-libstdc++, 它提供 libstdc++.so.5 库
    3) 如果是Intel 64(EM64T)环境, 系统是否已经安装了 32-bit 库 (可能被称作 ia32-libs )

    然后, 查看发行说明(Release Notes), 核对你的系统是否支持
    最后, 联系Intel Premier Support (http://premier.intel.com), 寻求帮助
    当然, 还可以通过论坛, 搜索网络, 和他人讨论

    Q: 使用时, 遇到错误信息 "ifort: error: could not find directory in which g++ resides"
    A: Intel Fortran编译器无法在你的系统中找到GNU* g++ 编译器. 可能是由于你没有安装 GCC 开发包, 或者 g++ 不是安装在缺省路径, 或者你使用了非英文的Linux版本. 解决办法请访问Intel网站: http://support.intel.com/support/performancetools/fortran/linux/sb/CS-017386.htm

    Q: 使用时, 遇到错误信息 "Intel 10.x compiler's dependency on /usr/lib/libstdc++.so.5"
    A: Intel 10.x 编译器为了保证和基于 GCC 3.2 的系统兼容, 需要使用标准 C++ 库 /usr/lib/libstdc++.so.5, 但是很多比较新的 Linux 发行版本中开始使用 GCC 3.4, 并且提供了全新的标准 C++ 库 /usr/lib/libstdc++.so.6. 因此需要安装 compat-libstdc++ RPM包, 它包含了 /usr/lib/libstdc++.so.5 库.

     


    图像 Intel FORTRAN 编译器 入门系列之二: Windows 安装和使用 图像

    经过测试, Intel Visual FORTRAN 编译器能支持安装在 Microsoft Windows Vista, XP 和 Windows Server* 2003上, 并且支持 Microsoft Visual Studio*2003, 2005 and 2008集成开发环境. 还提供了针对原有 Compaq Visual Fortran 编译器用户的移植. 商业版用户现在还可以选择使用独立的IDE开发环境版本 Microsoft Visual Studio 2005 Premier Partner Edition.

    I. Intel FORTRAN 编译器安装

    1) 安装前, 请先安装 Microsoft Visual Studio 和 Microsoft Platform SDK, 并且升级到最新的 Service Packs (特别是 VS2005 SP1 和 Vista patch)
    2) 下载Intel 编译器安装包, 并运行安装 (请尽量使用 Administrator/root 权限的账号进行安装)
    3) 看到 Intel Software Setup Assistant 安装界面, 提供许可文件(License File, 通常以.lic结尾, 建议放入缺省目录 C:/Programming Files/Common Files/Intel/Licenses (或者通过环境变量 INTEL_LICENSE_FILE 指定路径)
    4) 选择 '下一步' 进行典型安装, 直到全部结束


    II. Intel FORTRAN 编译器使用

    注意, Intel Visual Fortran缺省的安装目录在 C:\Program Files\Intel\Compiler\Fortran\xx.x.xxx\ (xx.x.xxx代表版本号, IA32代表IA-32版本, em64t代表Intel 64版本)

    你可以直接在 Visual Studio 开发环境中, 通过创建新的 Intel Fortran 工程来使用 Intel Visual Fortran 编译器.

    如果想通过命令行使用 Intel Visual Fortran, 可以通过点击系统菜单 [Start]->[All Programs]->[Intel Software Development Tools]-> [Intel Fortran Compiler 10.1.xxx]->[Fortran Build environment for applications running on ...], 这样会自动设置好所有的系统环境.

    另外, 你也可以通过在命令行窗口, 运行 C:\Program Files\Intel\Compiler\Fortran\10.1.012\xxx\bin\ifortvars.bat 来手工设定, 特别是需要和 C++ 编译器混合使用的时候.

    命令行然后编译源文件:
    > ifort my_source_file.f90

    查看当前版本 (Visual Studio中通过 Help -> About 菜单
    > ifort -V

    参看支持的所有命令行选项
    > ifort -help


    III. 常见问题

    Q: 无法安装, 或者安装失败, 如何解决 ?
    A: 是否获得了最新的安装包, 并检查当前系统中是否已经安装了 VS 2003/2005/2008, 以及 Windows Server 2003 R2 Platform SDK. 具体的讨论可以参考: http://support.intel.com/support/performancetools/fortran/windows/sb/CS-007848.htm

    通过查看发行说明(Release Notes)和安装指导(Installation Guide), 了解其它的安装需求
    最后, 联系Intel Premier Support (http://premier.intel.com), 寻求帮助
    当然, 还可以通过论坛, 搜索网络, 和他人讨论

    Q: Intel Visual Fortran 编译器是否支持最新的 Visual Studio 2008 ?
    A: Intel Visual Fortran 编译器从 10.1.019 版本开始支持 Visual Studio 2008, 它是2008年3月份正式发布的. 另外, 对 VS 2005 的支持是从 9.1 版本开始的

    Q: 如何知道当前使用的Intel Visual Fortran 版本号 ?
    A: Intel Visual Fortran 安装包一般名称为: w_fc_c_xx.y.zzz.exe, xx代表大版本, y代表小版本, zzz代表某一个特定的更新发行包. 安装后, 你也可以通过 ifort -V 来获得当前使用的版本号.

    Q: 是否可以保留多个不同的 Intel Visual Fortran 版本? 如何进行选择 ?
    A: 可以. 从 10.0 版本起, 更支持多个更新发行包同时存在; 当你安装新的更新包时, 原先安装的版本不会被自动删除. 当你在Visual Studio 开发环境中, 可以通过菜单 Tools > Options > Intel(R) Fortran) 来选择和切换不同的版本.




    图像 Intel FORTRAN 编译器 入门系列之三: 兼容 Fortran 语言标准 95/2003 图像

    简单的说, Intel Fortran 编译器完全兼容 ISO/IEC 1539:1997 Fortran language standard (Fortran 95), 当然也完全支持更早以前的标准 Fortran 90, FORTRAN 77 and FORTRAN IV (FORTRAN 66.) 在某些场合, 你可能需要使用一些特定的编译器选项 (options) 来适应不同标准之间的差别.

    另外, 最新的 Fortran 2003 (ISO/IEC 1539:2004) 标准已经发布, Intel Fortran 编译器 10.1 版本已经支持了很多 Fortran 2003 标准引入的新功能, 详细的讨论可以参考: http://support.intel.com/support/performancetools/fortran/sb/CS-007846.htm.

    更多的 Fortran 2003 功能更新, 也会最新版本的发行说明中加以说明.




    图像 Intel FORTRAN 编译器 入门系列之四: OpenMP 支持 图像

    随着多核编程时代的到来, 采用在程序代码中加入适量 OpenMP 引导符(Directives)实现并行化的方式, 得到越来越多开发者的重视.

    Intel C++/ Fortran 编译器是业界最早支持 OpenMP 规范的, 目前所有的 Liunx, Windows, MacOS 版本都完全支持 OpenMP 标准 2.5. 具体的信息可以参考: http://support.intel.com/support/performancetools/c/linux/sb/CS-007720.htm

    相应地, Intel C++/ Fortran 编译器提供了选项 /Qopenmp (Windows) 或者 -openmp (Linux, MacOS), 编译时也会给出对应的提示信息. 如果不使用这些选项, 原先代码中的 OpenMP 引导符不会被编译器进行处理.

    想要了解更详细的处理过程, 还可以通过 /Qopenmp-report 或者 -openmp-report 选项来获得相关的 OpenMP 编译报告

    需要说明的是, 由于 OpenMP 规范没有定义具体实现之间的互操作性, 所以可能会出现不同编译器之间 OpenMP 实现的兼容性问题, 特别是当 gcc 4.0 和 Visual C++ 2005 开始加入对 OpenMP 的支持后. 为了避免连接和运行错误, 请注意以下几点:
    -- 避免混合使用不同编译器, 或者不同版本中提供的多种 OpenMP 运行库
    -- 坚持使用同一个编译器版本, 编译所有包含 OpenMP 的 源代码


    如果应用程序中的某些 OpenMP 模块, 已经使用 gcc 或者 Visual C++ 进行编译, 那么在最新的 Intel 编译器 10.1 版本中可以通过选项 '-openmp-lib compat' 或者 '/Qopenmp-lib:compat' 提供支持. Intel 编译器缺省的选项会使用 Intel 编译器自己提供的 OpenMP 运行库.