Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Intel Compilers

The native, and recommended, compilers on Galileo100 are the Intel ones, since the architecture is based on Intel processors and therefore using the Intel compilers may result in a significant improvement in performance and stability of your code. On the cluster is installed the new suite Intel OneAPI. Initialize the environment with the module command:

> module load intel/oneapi-2021–binary
> module list
   Currently Loaded Modulefiles:
  intel/oneapi-2021–binary

The suite contains the new Intel oneAPI nextgen compilers (icx, icpx, ifx) and the classic compilers (icc, icpc, ifort, ...):


ClassiconeAPINotes
C compilersiccicx

icx is the Intel nextgen compiler based on Clang/LLVM technology  plus Intel proprietary optimizations and code generation,

and it enables OpenMP TARGET offload to Intel GPU targets (irrelevant on Galileo100) 

C++ compilersicpcicpx
Fortran compilersifortifx


  • icx/icc: C compilers (oneAPI/classic)
  • icpx/icpc: C++ compilers (oneAPI/classic)
  • ifx/ifort: Fortran compilers (oneAPI/classic)

ICX is Intel nextgen compiler based on Clang /LLVM technology plus Intel proprietary optimizations and code generation.

  • You may use ICC for performance on CPU targets.
  • ICX enables OpenMP TARGET offload to Intel GPU targets.

NOTE:

  • the use of the new Intel® oneAPI C/C++ Compilers (icx, icpx)   is equivalent with respect to the classic C/C++ Compilers (icc, icpc)
  • the use of Intel® Fortran Compiler Classic (ifort) is recommended against the Intel® oneAPI Fortran Compiler (Beta) (ifx)

The documentation can be obtained with the man command after loading the relevant module:

> man ifort
> man icx

Some miscellaneous flags are described in the following:

-extend_source    Extend over the 77 column F77's limit 
-free / -fixed    Free/Fixed form for Fortran
-ip               Enables additional interprocedural optimization for single-file compilation
-ipo              Enables interprocedural optimization between files - whole program optimisation

NOTE for the migration from Galileo to Galileo100: In principle, binaries generated on Galileo should work, but we strongly recommend you to reinstall all your software applications since on Galileo100 there is a different Operating System (Centos 8.3).

PORTLAND Group (PGI)

Initialize the environment with the module command:

> module load profile/advanced
> module load pgi

The name of the PGI compilers are:

  • pgf77: Fortran77 compiler
  • pgf90: Fortran90 compiler
  • pgf95: Fortran95 compiler
  • pghpf: High Performance Fortran compiler
  • pgcc: C compiler
  • pgCC: C++ compiler

The documentation can be obtained with the man command after loading the relevant module:

> man pgf95
> man pgcc

Some miscellaneous flags are described in the following:

-Mextend            To extend over the 77 column F77's limit
-Mfree / -Mfixed    Free/Fixed form for Fortran
-fast               Chooses generally optimal flags for the target platform
-fastsse            Chooses generally optimal flags for a processor that supports SSE instructions

GNU compilers

The gnu compilers are always available but they are not the best optimizing compilers, especially for an IntelOneAPI-based cluster like GALILEO100. The default version is 10.2.0.

For a more recent version of the compiler, initialize the environment with the module command:

> module load gnu

The name of the GNU compilers are:

  • g77: Fortran77 compiler
  • gfortran: Fortran95 compiler
  • gcc: C compiler
  • g++: C++ compiler

The documentation can be obtained with the man command:

> man gfortan
> man gcc

Some miscellaneous flags are described in the following:

-ffixed-line-length-132       To extend over the 77 column F77's limit
-ffree-form / -ffixed-form    Free/Fixed form for Fortran


...