Intel oneAPI (no cost) provides Intel MPI, LAPACK, and Scalapack on Linux.
Like LLVM, oneAPI relies on the underlying GCC compiler for libc and libstdc++. Having too old GCC/libc/libstdc++ will fail to build. Ensure your system has GCC 8 or newer to work with Intel oneAPI on Linux.
Install oneAPI Base Toolkit with these options:
Install oneAPI HPC Toolkit with these options:
We recommend making a little shell script named like “~/intel_oneapi.sh”. The contents of this script would be like:
source /opt/intel/oneapi/setvars.sh
export FC=ifx CC=icx CXX=icpx
Intel LLVM “icx”, “icpx”, “ifx” replace the legacy “icc”, “icpc”, “ifx” compilers.
To enable oneAPI in this Terminal:
source ~/intel_oneapi.sh
If there are problems with defaulting to old GCC, specify the GCC toolchain in “~/intel_oneapi.sh” like:
export CXXFLAGS=--gcc-toolchain=/opt/rh/gcc-toolset-11/root/usr/
which can be determined like:
scl enable gcc-toolset-11 "which g++"
git clone https://github.com/gemini3d/external
cmake -S external -B external/build -DCMAKE_INSTALL_PREFIX=~/lib_intel
cmake --build external/build
that installs Gemini3d external libraries under ~/lib_intel. This path is arbitrary but should be distinct between compilers.
NOTE: If CMake is too old, install a new CMake:
cmake -S external/scripts/install_cmake
git clone https://github.com/gemini3d/gemini3d
cmake -S gemini3d -B build/gemini3d -DCMAKE_PREFIX_PATH=~/lib_intel
cmake --build gemini3d/build
ctest --test-dir gemini3d/build