Intel Compiler

Version Module File Name System A System B/C System G Cloud System Note
2025.3 intel/2025.3 + + + + Installed in April 2025. Intel compiler + MKL + TBB
2025.0 intel/2025.0 + + + + Installed in April 2025. Intel compiler + MKL + TBB
2023.4 intel/2024.0 + + + + Installed in April 2024. Intel compiler + MKL + TBB
2023.2 (default) intel/2023.2 + + + + Installed in April 2024. Intel compiler + MKL + TBB
2023.2-rt intel/2023.1-rt + + + + Installed in April 2024. Run-time library
2023.1 intel/2023.1 + + + + Installed in August 2023. Intel compiler + MKL + TBB
2023.1-rt intel/2023.1-rt + + + + Installed in August 2023. Run-time library
2022.3 intel/2022.3 + + + + Installed in November 2022. Intel compiler + MKL + TBB
2022.3-rt intel/2022.3-rt + + + + Installed in November 2022. Run-time library

+ : Available for all users

- : Not available

On the system A, B, C, and Cloud, the Intel compiler is set by default when you log into the system. The Intel compiler is not available on the system G.

$ module list
Currently Loaded Modulefiles:
x) slurm x) SysB/2022 x) intel/2023.2(default) x) intelmpi/2023.2(default) x) PrgEnvIntel/2023(default)  

The compiler version is set to the default version listed in the table above. If you want to switch the Intel compiler versions, you must switch per PrgEnvIntel. Execute the module command as follows.

$ module switch PrgEnvIntel/2023 PrgEnvIntel/2025

If you want to configure the environment settings automatically at login, write the necessary module commands in the login shell startup file. Please refer to Setup of the login node for details. Please refer to Modules for details on the module command.

Language Command Operands
C icx icx [Option] File name
C++ icpx icpx [Option] File name
Fortran ifx ifx [Option] File name

Option Purpose
-o FILENAME Specifies the name of the object file.
-mcmodel=medium Memory will be available in excess of 2 Gbytes.
※Not available for SYCL.
-shared-intel Dynamically link all Intel-provided libraries.
-fpic Generates position-independent code.
-fiopenmp
(-qopenmp)
Compile with OpenMP directive enabled.
-qmkl Link the MKL library.
-O0/-O1/-O2/-O3 Specifies the level of optimization (default is -O2).
-fast Optimizes the program to maximize the execution speed. -fast option gives the following options.
-ipo, -O3, -static, -fp-model fast=2
-flto
(-ipo)
Optimize processing between procedures across multiple files.
-qopt-report Displays information about the performed optimization.
-qopt-report-phase Specify the items to be output in the optimization report.
-xHost Generates code for the highest instruction set available on the processor on the host where it is compiled.
-xCORE-AVX512
-xSAPPHIRERAPIDS
Generates optimized code corresponding to the specified instruction set for Intel processors.
-fsycl Enables a program to be compiled as a SYCL* program.
-shared-intel Dynamically link all Intel-provided libraries.
-static-intel Statically link to Intel-provided libraries.It is available to reduce the load of dynamic library search at program startup by statically linking.

$ icx test.c      # For C
$ icpx test.cpp   # For C++
$ ifx test.f90   # For Fortran
$ tssrun ./a.out  # Execution

OpenMP is an open standard for parallelizing programs. You can have the compiler perform parallelization only by writing instructions starting with #pragma omp in the source code and compile with the given options.

To compile source code with written instructions to OpenMP, use the -fiopenmp option.

$ icx -fiopenmp test.c

When executing a compiled program, if you specify the number of parallels for t and c with the --rsc option, the program will be executed with the number of parallels.

$ tssrun --rsc p=1:t=8:c=8 ./a.out # Execute with the number of parallels specified as 8.

The Intel compiler outputs messages in the following format when program error occurs or there is information to be notified.

  • Intel oneAPI DPC++/C++ Compiler
    File Name:Line number : XXX : YYY : Message text
    Contents of the corresponding line of source code
    ^
  • Fortran Compiler

    File Name(Line number): XXX #YYY: Message text
    Contents of the corresponding line of source code
    --------------^
    • XXX : Message Type(error/warning)
    • YYY : Message Serial Number
    • Pointer(^) :The exact location where the error was found in the corresponding line of source code.

Output Example

  • Intel oneAPI DPC++/C++ Compiler Classic
    main.c:8:3: error: use of undeclared identifier 'nt'
    nt nthreads;
    ^
  • Fortran Compiler
    sample.f90(26): error #5560: Subscript #2 of the array C has value 20 which is greater than the upper bound of 2
    print *, c(1,1),",", c(1,20)
    -----------------------^
    compilation aborted for sample.f90 (code 1)

The Intel MPI library is available. Please refer to Intel MPI Library on how to compile, link, and execute MPI programs.

When using the Intel compiler, the following numerical libraries are available. Please refer to the each page for details on how to use each library.

Library System A System B/C System G Cloud
MKL Library + + - +

+ : Available for all users AU : Available for academic users only
- : Not available

  • Unlike icc, icx cannot compile C++ programs. To compile C++ programs, use icpx.
  • The option (-parallel) for automatic parallelization has been discontinued. Please implement parallel processing using OpenMP*.