ALIs

kommt noch

Intel 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)

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.