Intel Fortran Compiler
| Developer(s) | Intel |
|---|---|
| Stable release | 12.1 / September 8, 2011 |
| Operating system | Linux, Mac OS X and Microsoft Windows |
| Type | Compiler |
| License | Proprietary |
| Website | http://software.intel.com/en-us/intel-compilers/ |
Intel Fortran Compiler, also known as IFORT, is a Fortran compiler developed by Intel. It generates code for IA-32, Intel 64 processors. Compilers are available for Linux, Microsoft Windows and Mac OS X. On Windows, it is known as Intel Visual Fortran. On Linux and Mac OS X, it is known as Intel Fortran.
Intel Fortran supports compilation for its IA-32 and Intel 64 processors and certain non-Intel but compatible processors, such as certain AMD processors. Itanium support was dropped starting from version 12.0. [1] The Intel Fortran Compiler for IA-32 and Intel 64 features an automatic vectorizer that can generate SSE, SSE2, SSE3, SSSE3, SSE4 and AVX SIMD instructions. It supports both OpenMP 3.1, automatic parallelization for symmetric multiprocessing and supports almost all of the Fortran 2003 standard and much of the Fortran 2008 standard including Coarray Fortran. With the add-on capability Cluster OpenMP, the compiler can also automatically generate Message Passing Interface calls for distributed memory multiprocessing from OpenMP directives.
The Intel Fortran compiler represents the merging of the Compaq Visual Fortran frontend with the Intel backend. The compiler is also notable for being widely used for SPEC CPU Benchmarks of IA-32, x86-64, and Itanium 2 architectures.
The Intel Fortran Compiler is available in various packages from Intel. It is part of the Intel Parallel Studio XE package (available in Windows and Linux versions), Intel Fortran Composer XE package (available in Windows, Linux and Mac OS X versions), the Intel Composer XE (available in Windows and Linux versions) and the Intel Cluster Suite (available in Windows and Linux).
Contents |
[edit] Optimizations
Intel tunes its compilers to optimize for its hardware platforms to minimize stalls and to produce code that executes in the smallest number of cycles. The Intel Fortran Compilers support three separate high-level techniques for optimizing the compiled program: interprocedural optimization (IPO), profile-guided optimization (PGO),[2] and high-level optimizations (HLO).
Profile-guided optimization refers to a mode of optimization where the compiler is able to access data from a sample run of the program across a representative input set. The data would indicate which areas of the program are executed more frequently, and which areas are executed less frequently. All optimizations benefit from profile-guided feedback because they are less reliant on heuristics when making compilation decisions.
High-level optimizations are optimizations performed on a version of the program that more closely represents the source code. This includes loop interchange, loop fusion, loop unrolling, loop distribution, data prefetch, and more.[3] These optimizations are usually very aggressive and may take considerable compilation time, unless run on Intel's latest generation processors, such as the Core i7, in which case the compilation time with HLO enabled is significantly shortened.[citation needed]
Interprocedural optimization applies typical compiler optimizations (such as constant propagation) but using a broader scope that may include multiple procedures, multiple files, or the entire program.[4]
The compilers include the Intel Math Kernel Library, which has a number of thread-safe and threaded functions.
[edit] Architectures
[edit] Versions
The following versions of Intel Fortran Compiler have been released:
| Compiler version | Release date | Major New Features |
|---|---|---|
| Intel Fortran Composer XE 2011 Update 6 and above (compiler 12.1) | Sep 8, 2011 | OpenMP 3.1, additional 2003 (ALLOCATE with SOURCE=, polymorphic source) and 2008 standards support, Windows version ships with Visual Studio 2010.[5] |
| Intel Fortran Composer XE 2011 up to Update 5 (compiler 12.0) | Nov 7, 2010 | Coarray Fortran, additional 2003 (FINAL subroutines, GENERIC keyword, ...) and 2008 (Coarrays, CODIMENSION, SYNC ALL, SYNC IMAGES, SYNC MEMORY, CRITICAL, LOCK, ERROR STOP, ALLOCATE/DEALLOCATE), ...) standards support.[6] |
| Intel Fortran Compiler 11.1 | June 23, 2009 | Support for latest Intel SSE SSE4.2, AVX and AES instructions. More Fortran 2003 support. Support for latest Intel MKL release (included in compiler products). Commercial licenses for Windows version include Microsoft Visual Studio 2008 Shell and libraries. |
| Intel Fortran Compiler 11.0 | November 2008 | More Fortran 2003 support. Support for OpenMP 3.0. Source Checker for static memory/parallel diagnostics. Commercial licenses for Windows version include Microsoft Visual Studio 2005 Premier Partner Edition. |
| Intel Fortran Compiler 10.1 | November 7, 2007 | New OpenMP* compatibility runtime library. To use the new libraries, you need to use the new option "-Qopenmp /Qopenmp-lib:compat" on Windows, and "-openmp -openmp-lib:compat" on Linux. This version of the Intel compiler supports more intrinsics from Microsoft Visual Studio 2005.
VS2008 support - command line only in this release. |
| Intel Fortran Compiler 10.0 | June 5, 2007[7] | Improved parallelizer and vectorizer, Streaming SIMD Extensions 4 (SSE4), new and enhanced optimization reports for advanced loop transformations, new optimized exception handling implementation. |
| Intel Fortran Compiler 9.0 | June 14, 2005[8] | AMD64 architecture (for Windows), software-based speculative pre-computation (SSP) optimization, improved loop optimization reports.[9][10] |
| Intel Fortran Compiler 8.1 | September, 2004 | AMD64 architecture (for Linux).[11][12] |
| Intel Fortran Compiler 8.0 | December 15, 2003[13] | Precompiled headers, code-coverage tools. [1] |
| Intel Fortran Compiler 7.1 | March, 2003 | Partial support for the Intel Pentium 4 with Streaming SIMD Extensions 3 (SSE3). [2] |
| Intel Fortran Compiler 7.0 | November 25, 2002[14] | [3] |
| Intel Fortran Compiler 6.0 | April 24, 2002[15] | [4] |
[edit] Criticism
Intel and third parties have published benchmark results to substantiate performance leadership claims over other major compilers on Intel and non-Intel processors. Nevertheless, the Intel compilers have been criticized for producing code that works suboptimally on non-Intel microprocessors. See criticism of Intel C++ compiler.
[edit] See also
- Intel C++ Compiler
- Intel Software Network (support and discussion)
[edit] References
- ^ Intel C++ Composer XE 2011 for Linux Installation Guide and Release Notes
- ^ Profile-guided Optimizations Overview
- ^ http://www.ncsa.uiuc.edu/UserInfo/Resources/Software/Intel/Compilers/8.1/ug/lin1063.htm
- ^ Intel C++ Compiler 10.1 for Linux*
- ^ http://software.intel.com/en-us/articles/intel-fortran-composer-xe-2011-release-notes/
- ^ http://software.intel.com/en-us/articles/intel-fortran-composer-xe-2011-release-notes/
- ^ New Intel Products Simplify and Speed Software Development for Multi-Core Processors
- ^ New Intel Software Tools Unlock Potential of Multi-Core Platforms
- ^ http://www.intel.com/cd/software/products/asmo-na/eng/compilers/clin/219333.htm
- ^ http://www.intel.com/cd/software/products/asmo-na/eng/compilers/cwin/219335.htm
- ^ Intel C++ Compiler 8.1 for Linux Release Notes
- ^ Intel C++ Compiler 8.1 for Windows* Release Notes
- ^ Slashdot | Intel C/C++ Compiler 8.0 Released
- ^ Slashdot | New Intel Compiler Released
- ^ Slashdot | Intel Releases V6.0 Compiler Suite