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.
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:
- Intel Compiler: Optimization and Programming Guide
- Intel MKL: Developer Guide
- Intel MPI: Release Notes for Linux
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
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