...
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, ...):
Classic | oneAPI | Notes | |
---|---|---|---|
C compilers | icc | icx | 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++ compilers | icpc | icpx | |
Fortran compilers | ifort | ifx |
- 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
...