ALIs
kommt nochIntel Compilers
This document gives a short overview of the the Intel Compilers on the Linux-based HPC systems at LRZ.
Availability
On all HPC platforms at LRZ, the Intel Fortran and C/C++ Compilers are available as mainline compilers. The packages also include the Intel debugger.
Presently available versions are listed in the following table.
|
Product |
Version |
OpenMP standard support |
|---|---|---|
|
Fortran Compiler |
9.1 |
complete 2.5 support |
|
Fortran Compiler |
10.1 |
complete 2.5 support. 10.1 is default on Altix systems |
|
Fortran Compiler |
11.0, 11.1, 12.0 |
3.0 support. 11.1 is default on x86_64 systems |
|
C/C++ Compiler |
9.1 |
2.5 plus TASKQUEUE |
|
C/C++ Compiler |
10.1 |
2.5 plus TASKQUEUE. 10.1 is default on Altix systems |
|
C/C++ Compiler |
11.0, 11.1, 12.0 |
3.0 support. 11.1 is default on x86_64 systems. Note that 12.0 also supports the Cilk+ tasking concept |
Functionality
The Intel Fortran Compiler provides a full implementation of the Fortran 95 standard (plus some Fortran 2003 features as well as vendor-specific extensions) for 32 and 64 bit x86 (Pentium-class and above) as well as ia64 (Itanium) processors. The Intel C/C++ Compiler provides an ANSI compatible implementation of the C and C++ languages.
Furthermore, the OpenMP 2.5 shared memory parallelization directives is supported in all languages. Note especially that while the Fortran OpenMP WORKSHARE directive is accepted, workshared items are only processed in serialized mode. Intel is working to improve this in a future release of the compiler.
For use of new OpenMP 3.0 features, in particular tasking, the 11.1 or higher compilers should be used..
Usage
Environment Settings
The modules package provides default versions of the compilers automatically. Issuing
module list
should indicate "fortran" and "ccomp" among the loaded modules. Otherwise, issue module load fortran to get access to e.g., the Fortran compiler.
Note that non-default releases can be selected by issuing the command
module switch fortran fortran/[9.1|10.1|11.1|12.0] module switch ccomp ccomp/[9.1|10.1|11.1|12.0]
For details on compiler optimization etc. please either consult the vendor documentation; some information on important compiler switches is also available on the Linux Cluster development page. Furthermore, also look into the troubleshooting document if bad things happen you cannot explain (of course you can also contact LRZ support, see below).
Calling the compilers
The compiler call for Fortran 77/90/95 is ifort, where either a suitable switch for the language standard to be supported must be provided, or the file extension indicates this (e.g., .f for Fortran 77, .f90 for Fortran 90 free source).
The C compiler is called via icc, and the C++ compiler must be called via icpc.
The Intel Debugger
After loading the environment module
module load intel_idb
the debugger can be executed on an executable myprog.exe via
idb [-gui] ./myprog.exe
Please consult the HTML files in the $IDB_DOC directory for further information. For 11.1 and higher compilers, the GUI is started by default (without the -gui switch).
Feedback
If you find any problems with the compilers, please first check out the troubleshooting document; if this does not provide a solution please contact LRZ support.
Documentation
Locally available Handbooks
The Intel Compiler documentation is available via the Linux Cluster documentation page.
Documentation on the Web (Intel)
-
Intel Fortran Compiler product page
-
Linux Fortran and Linux C Compilers by Intel; see also the general Support page.
-
Software Forums for the Intel Development products. Click the links appropriate for the language and platform you are working with.
Fortran 2003 and 2008 features supported
The most up-to-date release of the 10.1 Fortran compiler supports the following features from the Fortran standard:
-
Allocatable derived type components, dummy arguments and function results
-
MOVE_ALLOC intrinsic
-
access to computing environment: GET_COMMAND, GET_COMMAND_ARGUMENT, COMMAND_ARGUMENT_COUNT, GET_ENVIRONMENT_VARIABLE intrinsics. The ISO_FORTRAN_ENV intrinsic module is also available.
-
PROTECTED attribute and statement
-
INTENT attribute for pointers
-
VOLATILE attribute and statement
-
IMPORT statement, which allows access to host-defined entities within an interface block
-
FLUSH statement
-
on a USE clause, user-defined operators can be renamed
-
[] form for array constructors
-
VALUE attribute for dummy arguments
-
support for C interoperability (including the intrinsic module ISO_C_BINDING).
-
asynchronous I/O for unformatted data
-
STREAM I/O
-
automatic re-allocation of allocatable entities on the left hand side of an (intrinsic) assignment. This needs the compiler switch -assume realloc_lhs
Version 11.0 of the compiler additionally supports
-
Function and subroutine pointers, also as type components
-
ABSTRACT interfaces
-
PASS and NOPASS (but only with TYPE, not with CLASS)
-
Allocatable scalars (but not yet with respect to length parameters for CHARACTER)
-
Type extension
-
IEEE intrinsic modules
Version 11.1 of the compiler additionally supports
-
Refined encapsulation features (set accessibility on type component level)
-
improved PASS/NOPASS support
-
Polymorphism via CLASS declaration, type inquiry functions and the SELECT TYPE construct
-
Typed allocation (but no polymorphic sourced allocation yet)
-
ABSTRACT types, with partial support for types without components
-
Non-generic type-bound procedures (excluding finalizers), including the DEFERRED and NON_OVERRIDABLE attributes
-
Deferred-length CHARACTER entities
-
NAMELIST I/O on internal files, relaxed NAMELIST restrictions
Version 12.0 of the compiler additionally supports
- Generic type-bound procedures, including support for generics with the same name as a derived type
- Finalizers
- Pointer bounds specification and bounds remapping
- Coarrays
- DO CONCURRENT
- G0[.d] edit descriptor, unlimited format item counts
- empty CONTAINS section
- NEWUNIT keyword in OPEN
- MOLD keyword in ALLOCATE
- Many of the intrinsic procedures defined in the Fortran 2008 standard
Further minor items can be sampled from the Release Notes, which are linked in the documentation section.
Please also consult this document (from the Intel web site) which describes non-default switches required for Fortran 2003 conformance.