Intel® Fortran Compiler 8.0 for Linux* Systems
Release Notes

Contents

Overview
New Features
System Requirements
Installation
Known Limitations
Technical Support
Documentation
Additional Information
Copyright and Legal Information

Overview

The Intel® Fortran Compiler for Linux helps make your software run at top speeds on all Intel® IA-32 processors and the Intel® Itanium® processors. Optimizations include support for Streaming SIMD Extensions 2 (SSE2) in the Intel® Pentium® 4 and Pentium® M processors, Streaming SIMD Extensions 3 (SSE3) in the Intel processors code-named "Prescott" and software pipelining in the Intel Itanium® 2 processor. Inter-procedural optimization (IPO) and profile-guided optimization (PGO) can provide greater application performance. Intel Compilers support multi-threaded code development through autoparallelism and OpenMP* support.

The following components are included in the installation package:

The paper, Optimizing Applications with the Intel C++ and Fortran Compilers for Windows* and Linux, explains how to use the Intel compilers to optimize for the Pentium 4 and Itanium processors and is available at http://www.intel.com/software/products/compilers/ . Additional information on the Intel Software Development Products is available at http://www.intel.com/software/products/ .

Product Contents

Intel Fortran Compiler for IA-32 Based Applications

The Intel Fortran compiler for IA-32 based applications contains the following components:

Intel Fortran Compiler for Itanium-Based Applications

The Intel Fortran compiler for Itanium-based applications contains the following components:

Compatibility

You must recompile all Fortran sources that were compiled with earlier compilers, including those that create .mod files. Third-party libraries will also need to be rebuilt - if you are using third-party libraries, please let us know which ones through Intel Premier Support at https://premier.intel.com. A document describing Intel Fortran 7 porting considerations is available from http://developer.intel.com/software/products/compilers/flin/ or from Intel Premier Support.

New Features

This is a new generation of Intel Fortran that combines the best technology from both Intel Fortran and Compaq* Visual Fortran. The "front-end" of the compiler, which provides Fortran language features and Fortran-specific optimizations, is now derived from that of Compaq Visual Fortran. The Fortran run-time library (I/O and non-math intrinsics) also derives from Compaq Visual Fortran. The "back-end" is from the latest generation of Intel's high-performance code generation and optimization technology to achieve the best performance on Intel processors.

Optimization support for the Intel processors code-named "Prescott"

The Intel processors code-named "Prescott" are a new generation of IA-32 processors. These processors support a new "SSE3" instruction set, which can improve performance of vectorized loops containing complex data types, float-to-integer conversions, and horizontal adds.

The Intel Fortran Compiler 8.0 for Linux adds the ability to optimize for this new processor generation. To do so, specify the -xP or -axP options. For further details, please consult the sections on optimizations in the Intel Fortran Compiler User's Guide.

New IA-32 Optimization Options

This release includes two new code generation options. -xB and -axB direct the compiler to generate code for best performance on the Intel Pentium M processor. The new -xN and -axN options enable additional optimizations for all Intel Pentium® 4 processors. Intel recommends the use of -xN and -axN for best performance with Pentium 4 processors, and suggests trying -xB or -axB to see if it helps your application on the Pentium M processor. For more information, please refer to the sections on optimizations in the Intel Fortran Compiler User's Guide

Changes to Default Linking Behavior

The compiler configuration files, <install-dir>/bin/ifort.cfg and <install-dir>/bin/icpc.cfg, have been modified to remove the RPATH command to the linker. This was used in previous releases to set the location of the Intel shared libraries in the executable. The disadvantage of putting the RPATH directive in the configuration file is that just typing the compiler, ifort, would result in a cryptic error:

/usr/lib/crt1.o: In function `_start': /usr/lib/crt1.o(.text+0x18): undefined reference to `main'

Which would confuse users, thinking that there is a problem with their compiler or installation. The current release removes the RPATH directive, and typing ifort gives a more informative error:

ifort: Command line error: no files specified; for help type "ifort -help"

However, as executables no longer contain the location of the Intel shared libraries, you need to specify the location of the shared libraries. Any of the following techniques can be used to do this:

  1. Modify the LD_LIBRARY_PATH environment variable to contain the location of the Intel shared libraries. For sh type shells, enter: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<install-dir>/lib.
  2. Use the ldconfig system utility. Note: this requires root user privileges to run.
  3. Modify the compiler configuration files, <install-dir>/bin/ifort.cfg

If you see an error message such as this:

error while loading shared libraries: libcprts.so.5: cannot open shared object file: No such file or directory

you need to apply one of the three methods listed above to set the location of the Intel shared libraries.

Intel® Compilers code-coverage tool

The Intel Compilers code-coverage tool leverages the Intel Compilers profile-guided optimization technology to present developers a complete picture of the coverage of their application code on a particular workload. To find the application's code coverage the tool combines static profile information generated by the compiler with dynamic profile information generated by running the user's instrumented binaries on the workload. The coverage tool uses this information together with the application sources to create HTML pages with color annotations that highlight the coverage of the code. Navigation is through frames that make it particularly easy to sort the application's files and functions and see the least-covered modules and functions. Developers can then use their favorite browser to display the coverage of their code.

The Intel Compilers code coverage tool can be used in a number of ways to improve development efficiency, reduce defects, and improve application performance. When applied to the profile of the application on its test space, the tool can be used to measure the overall quality of testing based on the coverage information. Similarly, when applied to the profile of a performance workload, the code-coverage information indicates how well the workload exercises the application's critical code. High coverage of performance-critical modules is essential to taking full advantage of the profile-guided optimizations that Intel Compilers offer. The tool also provides an option, useful for both coverage and performance tuning, through which the users can display the dynamic execution count of each basic block of the application. Lastly, the coverage tool provides the ability to compare the profile of two different runs of the application. This feature can be used to find the portion of the application's code that is not covered by the application's tests but is exercised when the application is used outside the test space, such as by a customer.

The Intel Compilers code-coverage tool is supported on Intel Architecture IA-32 and the Itanium Processor Family on both Windows and Linux and seamlessly supports C, C++, and Fortran.

Intel® Compilers test-prioritization tool

The Intel Compilers test-prioritization tool leverages the Intel Compilers profile-guided optimizations technology to select and prioritize application tests based on prior execution profiles of the application. Using this tool, users can select and prioritize the tests that are more relevant for any subset of the application's code. When certain modules of an application are changed, the Intel Compilers test-prioritization tool suggests the tests that are most probably affected by the given change set. The tool mines the profile data from previous runs of the application, discovers the dependency between the application's components and its tests, and uses this information to guide the process of testing. The tool can be used for devising an effective hierarchical testing based on the application's code coverage. For instance, the tool may be used to find the smallest subset of the application tests that achieve exactly the same code coverage as the entire set of tests. The tool can also be used to dramatically reduce the turn-around time of testing. Instead of spending a large amount of time and finding a possibly-large number of failures, the tool may enable the users to quickly find a small number of tests that expose the defects associated with the regressions caused by a change set. The tool offers the potential of significant time saving in testing and development of large-scale applications where testing is major bottleneck. The tool can be used to minimize the number of tests that are required to achieve a given overall coverage for any subset of the application. Moreover, when the execution times of the tests are available, the tool may also be used to select and prioritize the tests to achieve certain level of code coverage in a minimum amount of time.

The Intel Compilers test-prioritization tool is supported on Intel Architecture IA-32 and the Itanium Processor Family on both Windows and Linux and seamlessly supports C, C++, and Fortran.

Please refer to the following link for additional details: http://www.intel.com/software/products/compilers/techtopics/pgt.htm.

Intel Debugger Graphical User Interface

The Intel Debugger idb now offers an optional graphical user interface. For more information, including known problems and restrictions, please see the Intel Debugger Release Notes.

Versioned Intermediate files (.il) during interprocedural optimization (IPO)

Each .il file generated by IPO will have a version number. The compiler will only accept .il files with matching versions. The version numbers will be automatically generated and updated as part of the build process.

The following additional features are new

The following behavior changes are new

System Requirements

IA-32 Processor System Requirements

Itanium Processor System Requirements

Note: Compiling very large source files (several thousands of lines) using advanced optimizations such as -O3, -ipo and -openmp, may require substantially larger amounts of RAM.

Installation Notes

If you are using some other versions of the Intel Fortran Compiler 8.0, we recommend you uninstall them prior to installing this version of the Intel Fortran Compiler 8.0. Please refer to the Uninstalling the Compiler and Debugger below for details on uninstallation.

The installation script of the Intel Fortran Compiler uses the system utility RPM to install files. But RPM 4.0.2 and RPM 4.1 have a limitation, please see Known Limitations below for details.

Installing the license

The Intel Fortran Compiler uses Macrovision Corporation's FLEXlm* electronic licensing technology. License management is transparent. The installation program of the Intel Fortran Compiler 8.0 checks for a valid license before installing any component of the product. Also, the license must remain in place on the system in order to use the Intel Fortran Compiler 8.0 to compile and build programs.

Note: The license for your Intel Fortran Compiler for Linux 6.0.1 or 7.1 will work with the 8.0 compiler provided your support services have not expired.

Here is how to setup the license file before installation.

For details about the support service license, please see http://www.intel.com/software/products/compilers/flin/pricelist.htm .

Installing the Intel Fortran Compiler

Perform the following steps to install the IA-32 compiler.

  1. Download the compiler package.
  2. tar the compiler package in a directory to which you have write access.
    > tar -xvf l_fc_p[c]_8.0.xxx.tar
    or
    > tar -zxvf l_fc_p[c]_8.0.xxx.tar.gz
  3. Run the installation script
    Become the root user, needed to run the rpm command, and execute the install script in the directory where the tar file was extracted.
    > source ./install.sh
    If you do not have access to the root account, it is possible to install the compiler without root access by manually unpacking the RPM files with rpm2cpio and editing the ifortvars.sh (.csh) file to include the directory where the compiler is installed. The install script automates this procedure.
  4. Enter the directory for the license file
    It's the directory where you saved the license file (*.lic) above. The installation program will validate the license before installing any Intel Fortran Compiler for Linux component.
  5. After the license checking, the installation program will display the Intel software products that are already installed, and the following menu items for you to install:
  6. Select a package to install.
    The suggested order is to Before installation begins, the End-User License Agreement (EULA) is displayed. Type "accept" to accept this license agreement.
    All necessary packages needed to use the product will also be installed. If an RPM package has already been installed, the install script will report this and say that the installation failed. It will then continue to the next RPM package that needs to be installed to use the product.
    The default RPM options -U --replacefiles are recommended to force the update of existing files.
    The default installation directory is /opt/intel_fc_80/ for the Intel Fortran Compiler, and /opt/intel_idb_xx/ (xx: is the idb version number, run "idb -V" for the version) for the Intel Debugger.
  7. After installation, the Intel packages installed will be redisplayed, followed by a redisplay of the install menu. Enter 'x' to exit the install script.

Environment Variables

The Intel Fortran compiler now supports the following environment variables, if defined:

Setting Up The Compiler Environment

The installation script (install.sh) creates compiler environment script files (ifortvars.sh/ idbvars.sh) that set some environment variables such as PATH, LD_LIBRARY_PATH and MANPATH. It is strongly recommended that you add those script files into your login script (.login file). So once the variables are set in the ".login" file there is no need to run the script files for each session.

Source the script to setup the compiler environment:

The installation program also creates compiler configuration files named <install-dir>/bin/ifort.cfg that contain common settings for all compilations. You can edit these files to add additional default options. Note, if you install a compiler update package, you need to rename the configuration file to another filename if you have modified it so that the installation doesn't overwrite your modified file.

Please register for support after you install this product. See Technical Support for registration instructions.

Uninstalling the Compiler and Debugger

Please follow the steps below to uninstall the Intel Compiler and Debugger.
  1. become the root user
  2. to uninstall the compiler:
    > source <compiler-install-dir>/bin/uninstall.sh or if you've installed the compiler to the default directory, use
    > source /opt/intel_fc_80/bin/uninstall.sh
  3. to uninstall the debugger:
    > source <debugger-install-dir>/bin/uninstall.sh or if you've installed the debugger to the default directory, use
    > source /opt/intel_idb_73/bin/uninstall.sh

Known Limitations

Installation Warning for RPM 4.0.2 and RPM 4.1

RPM 4.0.2 cannot install to a non-default directory. This has been resolved in RPM 4.0.3. RPM 4.1 cannot install to a non-default directory. This has been resolved in RPM 4.11 to 4.2.

Note about installing the Intel Debugger version 7.3

When installing the Intel Debugger version 7.3 for IA-32 or Itanium-based applications from the Intel Fortran Compiler 8.0 package, if the Intel Debugger version 7.1 or 7.2 is already installed on the system, it will be upgraded to the Intel Debugger version 7.3.

Segmentation Violation with static link to libpthreads

Applications built with libpthreads.a statically linked, (libpthreads.a is used by default when -static is used), may fail with a segmentation violation on some versions of Linux when the applications use more than 2MB of stack space. This is a known limitation of Linuxthreads. If you encounter this problem, link libpthreads dynamically. As an alternative, on Red Hat Linux 9 and Red Hat Enterprise Linux 3.0, you can install the nptl-devel package and pass "-I/usr/include/nptl -L/usr/lib/nptl" on the ifort command line. This will create a statically-linked binary which will run under nptl only, but which does not have the stack size limitation.

FLEXlm license daemon

The FLEXlm license daemon is not currently supported on systems running Red Hat Linux 9. This daemon is only needed if floating licenses are in use; in this case, the license server should be installed on a system running some other supported operating system. There is no effect on typical users with single user licenses, which do not require a server.

Dynamic Shared Objects on Itanium Systems

On Itanium systems, when the –shared switch is used to specify that a Dynamic Shared Object (.so) is to be created, ld may issue diagnostic messages referring to "@gprel relocation against dynamic symbol". To correct this problem, add the –i_dynamic and –nofor_main switches to the command line used to build the .so. A future version of Intel Fortran may set these options automatically when –shared is specified.

OpenMP Limitations

POSIX threaded programs that require a large stack size may not run correctly on some versions of Linux because of hard-coded stack size limits in some versions of the Linux POSIX threads libraries. These limits also apply to OpenMP programs (-openmp) and automatically generated parallel programs (-parallel) with the Intel compilers, because the Intel compilers use the POSIX threads library to implement OpenMP based and automatically generated parallelism. Threaded programs that exceed the stack space limit usually experience segmentation violations or addressing errors.

To avoid these limitations, please use a version of glibc built with the FLOATING_STACKS parameter defined, typically version 2.2.4 or later for both IA-32 and Itanium Processor Family. Then use the ulimit -s .... command to set the maximum shell stack size to an explicit large value (units of KBytes) and also set the KMP_STACKSIZE environment variable to the needed thread stacksize in bytes. A shell stacksize limit of unlimited does not work - it causes a fixed hard limit to be imposed. Note, in the bash shell, ulimit -s can be used to set a large maximum stack size only once. In the C shell (csh), ulimit -stacksize can be used to reset the maximum stacksize repeatedly. The default values for KMP_STACKSIZE have been increased to 2 MB for IA-32 and 4 MB for Itanium-based systems.

This solution has been tested on glibc version 2.2.4-13 for IA-32 and glibc 2.2.4-19 for Itanium Processor Family as found in the RedHat 7.2 Linux distribution. For glibc 2.2.4-13 on IA-32, the shared version of the POSIX threads library must be used, (there should not be a -static flag in the compiler .cfg file or on the command line).

In addition, if a common block is declared as "THREADPRIVATE" with an OpenMP directive, the common block must have the same length in all the source files in which it is declared.

Use of Profile Guided Optimization along with OpenMP may substantially increase the execution time for the generation of the profile (.dyn file). This is a known issue which is being addressed. The use of profile guided optimization in conjunction with OpenMP is not recommended for this version of the Intel Fortran compiler.

Some threaded (including OpenMP) applications may encounter problems when linked with the new NPTL-based pthreads library introduced in Red Hat Linux 9. In some cases, this may be worked around by setting the environment variable LD_ASSUME_KERNEL=2.4.19, which results in the use of the previous pthreads library version without NPTL.

Itanium Floating Point Software Assistance Handler 1.12 Error on Red Hat Linux 7.2

On Itanium-based systems, the Floating Point Software Assistance handler (FPSWA), part of the system BIOS, performs software completion of floating point operations that generate exceptional values such as NaNs and Infinities. Version 1.12 of the FPSWA has an error which can be revealed on Red Hat Linux 7.2 systems as an unexpected segmentation violation fault when an application runs. Intel is not aware that this issue affects other distributions or versions of Linux on Itanium systems.

To correct this problem, upgrade the system BIOS to one that includes FPSWA version 1.18 or later. Please contact your system manufacturer for BIOS update information.

Missing Features

The following features of the Intel Fortran Compiler 7.1 are not currently available in Intel Fortran 8.0:

Other issues

Please click on the appropriate link below to see additional notes and known limitations in the latest version of the compiler.

Technical Support

Your feedback is very important to us. To receive technical support for the tools provided in this product and technical information including FAQ's and product updates, you need to be registered for an Intel Premier Support account on our secure web site, https://premier.intel.com. Please register at http://support.intel.com/support/performancetools/support.htm and click on "Registration Center".

For information about the Intel Fortran Compiler's Users Forums, FAQ's, tips and tricks, and other support information, please visit: http://support.intel.com/support/performancetools/fortran/linux/. For general support information please visit http://www.intel.com/software/products/support/.

Submitting Issues

Steps to submit an issue:

  1. Go to https://premier.intel.com/.
  2. Type in your Login and Password. Both are case-sensitive.
  3. Click the "Submit" button.
  4. Read the Confidentiality Statement and click the "I Accept" button.
  5. Click on the "Go" button next to the "Product" drop-down list.
  6. Click on the "Submit Issue" link in the left navigation bar.
  7. Choose "Development Environment (tools,SDV,EAP)" from the "Product Type" drop-down list.
  8. If this is a software or license-related issue, choose "Intel(R) Fortran Compiler for Linux*" from the "Product Name" drop-down list.
  9. Enter your question and complete the fields in the windows that follow to successfully submit the issue.

Guidelines for problem report or product suggestion:

  1. Describe your difficulty or suggestion.
    For problem reports please be as specific as possible, so that we may reproduce the problem. For compiler problem reports, please include the compiler options and a small test case if possible.
  2. Describe your system configuration information.
    Get the version of glibc and kernel with following commands:
        > uname -a
        > rpm -qa | grep glibc
    If you don't have rpm installed, use the command below:
        > ls /lib/libc*
    And copy the information into the corresponding Premier Support fields.

    Get the Intel Fortran Compiler's Package ID with the following commands:
        > ifort -V
    And copy the "Package ID" (e.g. l_fc_p[c]_8.0.xxx) from the output into the corresponding Premier Support field. Please include any other specific information that may be relevant to helping us to reproduce and address your concern.

  3. If you were not able to install the compiler or cannot get the Package ID, enter the filename you downloaded as the package ID.

Resolved Issues

Please review <package ID>_README (e.g. l_fc_p[c]_8.0.xxx_README), available for download from Intel Premier Support, https://premier.intel.com, to see which issues have been resolved in the latest version of the compiler.

Documentation

You can view the Intel compiler and related HTML-based documentation with your Web browser, which provide full navigation, index look-up, search, and hyperlink capabilities. The documents also have PDF versions for easier printing via Adobe Acrobat Reader*.

The documentation is installed in the <install-dir>/doc (default /opt/intel_fc_80/doc) directory. An HTML index document can be found at <install-dir>/doc/fcompindex.htm (default /opt/intel_fc_80/doc/fcompindex.htm). A training tutorial Enhancing Performance with Intel Compilers is also available from links in the documentation index. The Intel® Debugger Manual is provided in HTML form in the Intel® Debugger doc directory (default /opt/intel_idb_xx/doc (xx: is the idb version number, run "idb -V" for the version) ).

The document Intel® Fortran Compiler User's Guide is provided as HTML-based documentation you can view in your Web browser. It is now organized into separate parts:

The following documents are provided in Adobe Acrobat* form (PDF files):

The Enhancing Performance with Intel Compilers provides an interactive HTML-based tutorial on using compiler options that help you optimize your application for IA-32 and Itanium-based systems. Documents that describe the Itanium Assembler are also provided.

Viewing Manpages

The ifort(1) manpage provides a list of command-line options and related information for the ifort compiler command. To display the ifort(1) manpage, type the following command after you set up your environment by using a source command to execute the <install-dir>/bin/ifortvars.*sh file:

$ man ifort

The man command provides single keys or key combinations that let you scroll through the displayed content, search for a string, jump to a location, and perform other functions. For example, type the z to view the next screen or w to view the previous screen. To obtain help about the man command, type the h key; when you are done viewing help, type the q key to return to the displayed manpage. To search, type / character followed by the search string (/string) and press Enter. After viewing the man command text, type q to return to the shell command prompt.

Viewing HTML Documentation

To view the compiler User's Guide HTML-based documentation, you no longer need to use a Java*-enabled or Javascript-enabled Web browser. The documentation format has been tested to work with Web browsers shipped on standard Red Hat* distributions. To allow the HTML-based User's Guide help to be browser-neutral and not require java support, the Search capability has been removed. If you need to search the User's Guide, please use the supplied User's Guide PDF files (same content as HTML-based User's Guide).

Viewing PDF Documentation Files

You can read the PDF files using the xpdf utility or install Adobe Acrobat Reader. The xpdf utility is provided with most Linux distributions and has a Search capability. If you choose to use Acrobat Reader, it is recommended to view the PDF documentation with Acrobat running within Netscape as this provides additional navigation features. To enable Netscape to start Acrobat Reader, it needs to be installed in a directory searched by your PATH environment variable and you need to edit the browser's preferences. Note: If Acrobat Reader isn't configured correctly, you can overwrite the PDF files, requiring you to reinstall them. If improperly configured, the browser may prompt you to Save-As file, which if you click OK can overwrite the PDF documentation files.

Perform these steps needed to update your preferences for Acrobat Reader:

Edit --> Preferences --> Navigator --> Applications --> new
Description: Portable Document Format
MIMEType: application/pdf
Suffixes: pdf
Application: acroread %s

Another method to configure acroread is to add the following entry in the file .mailcap in your home directory:

application/pdf; acroread %s

Depending on your version of the Netscape browser, you might need to disable (turn OFF) the "Automatically load images" option or the browser will freeze when you open the HTML documentation files, this means that you will then need to click on the images in the documentation if you want to see them while paging through the documentation with the browser. Turn OFF this option by clicking on: Edit-->Preferences-->Advanced-->Automatically load images and other data types.

Additional Information

Related Products and Services

Information on Intel software development products is available at http://www.intel.com/software/products. Some of the related products include:

Copyright and Legal Information

Intel, Intel logo, Intel Xeon, Intel XScale, Itanium, MMX, MMX logo, Pentium, Pentium II Xeon, Pentium III Xeon, Pentium M, Intel Thread Checker, Celeron, and VTune are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others

Copyright © 2001 ~ 2003 Intel Corporation. All Rights Reserved.