Intel oneAPI Compiler and Library Modules

Intel oneAPI is seamlessly integrated into SeaWulf2 and SeaWulf3 as a module, ensuring convenient accessibility to its extensive toolkit. oneAPI presents a unified programming model that simplifies development across varied computing architectures. This integration enhances the versatility and performance capabilities of the supercomputers, catering to diverse computational needs efficiently.

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

Recommended Intel Stack

Our recommended Intel Stack simplifies the setup process by providing a single module that loads the latest versions of Intel compilers, Intel MKL, and Intel MPI into your environment. This ensures that you have access to cutting-edge tools for high-performance computing tasks. To utilize this module, simply enter 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

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

 

Important Notes for Users:

  • Module Loading: If you prefer to load your oneAPI stack manually, ensure to include specific components like MKL and Intel MPI at runtime in your SLURM job script. This ensures seamless integration (See example).
  • Verifying Paths: After loading modules, use the which command to confirm correct path configurations. 

 

Intel oneAPI Compilers

In recent releases of Intel's oneAPI toolkit, significant changes have been made to the compiler suite, reflecting a transition from their traditional compilers to a new LLVM-based version. As part of this transition, the naming convention for Intel compilers within the oneAPI toolkit has evolved. Here are the updated compiler names as of the latest oneAPI release (Intel oneAPI 2024.2):

  • 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

 

Using Classic Compilers

For users who need the traditional "classic" Intel compilers for compatibility reasons, oneAPI versions prior to 2023 (such as intel/oneAPI/2022.2) include both classic and LLVM-based compilers. You may encounter warnings about deprecation with the classic compilers, but they are still available:

  • 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 provides specific wrappers tailored for different compilers, facilitating integration with both Intel and GCC compilers:

For Intel Compilers:

mpiicx - if using the Intel C compiler (icx)
mpiicpx - if using the Intel C++ compiler (icpx)
mpiifx - if using the Intel Fortran compiler (ifx)

For Classic Intel and GCC Compilers:

mpiicc - with classic Intel C compiler (icc)
mpiicpc - with classic Intel C++ compiler (icpc)
mpiifort - with classic Intel Fortran compiler (ifort)
mpicc, mpicxx, mpifort - with GNU compilers (gcc, g++, gfortran)

Using the appropriate MPI wrapper corresponding to your compiler choice simplifies the compilation process and ensures compatibility with MPI libraries and optimizations specific to each compiler suite.

 

For comprehensive guidance on utilizing Intel MPI and maximizing performance with Intel's compilers and libraries, refer to the documentation available at: Intel MPI Library Documentation.

 

Important Version Information

When this software is updated, revisions can significantly change how you should write your code and potentially alter the output of your programs. The following links provide detailed information on update revisions and deprecated features:

For additional information, please visit the Intel Developer Zone.

 

Additionally, there can also be more subtle changes that are not listed in the public documentation. A particularly important variable for many high-performance computing applications is floating point precision. This article illustrates how switching between versions can affect floating-point calculations and program output: Change in Floating Point Rounding Between Versions 11 and 12.

 

For More Information Contact


IACS Support System

Still Need Help? The best way to report your issue or make a request is by submitting a ticket.

Request Access or Report an Issue