Intel oneAPI Compilers

Intel oneAPI on SeaWulf

This KB Article References: High Performance Computing
This Information is Intended for: Instructors, Researchers, Staff, Students
Created: 01/10/2017
Last Updated: 03/06/2025

Introduction to Intel oneAPI on SeaWulf2 and SeaWulf3

Intel oneAPI is seamlessly integrated into SeaWulf2 and SeaWulf3 as a module, making it easily accessible to users who require its powerful toolkit. With oneAPI, you can develop across diverse computing architectures, simplifying complex tasks and enhancing the versatility and performance of SeaWulf's supercomputing capabilities.

This unified programming model streamlines development, allowing researchers, staff, and students to optimize their workflows across multiple platforms and environments with efficiency.

Recommended Intel Stack

To streamline your setup, we recommend using the Intel Stack module. This provides a single module that loads the latest versions of Intel compilers, Intel MKL, and Intel MPI, ensuring you have access to the cutting-edge tools needed for high-performance computing tasks. To load the Intel Stack, simply run the following command:

module load intel-stack

Current Version: Intel oneAPI 2024.2

Modules: intel/oneAPI/2024.2, tbb/latest, compiler-rt/latest, compiler/latest, mkl/latest, mpi/latest

Warning: Intel oneAPI 2024.2 is not supported on the login nodes due to compatibility issues with CentOS 7's outdated GLIBC version. Please use oneAPI 2022.2 instead on the login nodes.

Important Notes for Users

  • Module Loading: If you prefer to manually load components such as MKL and Intel MPI, ensure they are included in your SLURM job script to ensure smooth integration. See example below for guidance.
  • Verifying Paths: After loading the modules, confirm the path configuration with the
    which
    command to ensure correct setup.

Intel oneAPI Compilers

Recent releases of Intel's oneAPI toolkit introduce a transition to a new LLVM-based compiler suite. This change includes updated compiler names for better integration and performance:

  • C Compiler: icx
  • C++ Compiler: icpx
  • Fortran Compiler: ifx

Example usage: 

icx myprogram.c -o myprogram # Compile a C program with the Intel oneAPI C compiler
icpx myprogram.cpp -o myprogram # Compile a C++ program with the Intel oneAPI C++ compiler
ifx myprogram.f90 -o myprogram # Compile a Fortran program with the Intel oneAPI Fortran compiler

Classic Intel Compilers

If you need to use the traditional Intel compilers for compatibility reasons, previous oneAPI versions (before 2023) still include both classic and LLVM-based compilers. Although deprecated warnings may appear, the classic compilers remain available:

Note: The classic Intel compilers (icc, icpc, ifort) are deprecated and may receive limited support in future versions. We recommend transitioning to the new LLVM-based compilers (icx, icpx, ifx) for improved performance and compatibility.

  • Classic C Compiler: icc
  • Classic C++ Compiler: icpc
  • Classic Fortran Compiler: ifort

Example usage:

icc myprogram.c -o myprogram # Compile with the classic Intel C compiler
icpc myprogram.cpp -o myprogram # Compile with the classic Intel C++ compiler
ifort myprogram.f90 -o myprogram # Compile with the classic Intel Fortran compiler

Intel MPI Wrappers

Intel MPI offers specific wrappers that are optimized for different compilers, simplifying the integration process:

Note: Make sure to select the correct MPI wrapper corresponding to the compiler you are using (Intel or GCC). Using the wrong wrapper could lead to compilation errors or incompatible MPI implementations.

  • For Intel Compilers:
    • mpiicx: Intel C compiler (icx)
    • mpiicpx: Intel C++ compiler (icpx)
    • mpiifx: Intel Fortran compiler (ifx)
  • For Classic Intel and GCC Compilers:
    • mpiicc: Classic Intel C compiler (icc)
    • mpiicpc: Classic Intel C++ compiler (icpc)
    • mpiifort: Classic Intel Fortran compiler (ifort)
    • mpicc, mpicxx, mpifort: GCC compilers (gcc, g++, gfortran)

By using the appropriate MPI wrapper corresponding to your compiler, you ensure smooth compilation and compatibility with MPI libraries and optimizations.

Important Version Information

When updating software, there may be significant changes to how you write and compile your code, which could impact the output of your programs. For more details on the revisions and deprecated features, refer to:

For further guidance, visit the Intel Developer Zone.