LAMMPS의 Source Code를 받아보면, 아래 디렉토리에 preset이 있다.
/mylammps/cmake/presets$ ls
all_off.cmake download.cmake hip.cmake kokkos-openmp.cmake mingw-cross.cmake oneapi.cmake windows-intel-classic.cmake
all_on.cmake gcc.cmake intel.cmake kokkos-serial.cmake most.cmake pedantic.cmake windows-intel-llvm.cmake
basic.cmake gpu-cuda.cmake kokkos-cuda.cmake kokkos-sycl.cmake nolib.cmake pgi.cmake
clang.cmake hip_amd.cmake kokkos-hip.cmake macos-multiarch.cmake nvhpc.cmake windows.cmake
intel.cmake를 cmake preset option으로 부르면 된다. 아래와 같이.
cmake ../cmake \
-D LAMMPS_MACHINE=intelOneAPI \
-C ../cmake/presets/intel.cmake
그런데, LAMMPS의 intel.cmake 프리셋이 Out of date하다.
다음과 같이 바꾸어 준다.
# preset that will enable the classic Intel compilers with support for MPI and OpenMP (on Linux boxes)
set(CMAKE_CXX_COMPILER "icpx" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "icx" CACHE STRING "" FORCE)
set(CMAKE_Fortran_COMPILER "ifx" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(MPI_CXX "icpx" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpiicx" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "icc" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_CXX "icpc" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_Fortran_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libiomp5.so" CACHE PATH "" FORCE)
참조한 곳은
https://docs.lammps.org/Build_basics.html
3.4. Basic build options — LAMMPS documentation
cmake -D CMAKE_INSTALL_PREFIX=path [options ...] ../cmake make # perform make after CMake command make install # perform the installation into prefix During the installation process CMake will by default remove any runtime path settings for loading shared
docs.lammps.org
컴파일전에 컴파일러 환경변수 세팅하고
source /opt/intel/oneapi/setvars.sh
source /opt/intel/oneapi/mpi/latest/env/vars.sh
확인하려면,
which icpx
which icx
which ifx
which icpx
which mpiicx
컴파일
make -j 4
make install
Default 디렉토리에 인스톨 되니까.
/.local/bin$ ls
lmp lmp_lmp_intelOneAPI lmp_test.in log.lammps open_box.stl
$PATH로 인스톨 디렉토리가 지정된지 확인 하고.
Uninstall 하고 싶으면, build 디렉토리에서,
xargs rm < install_manifest.txt
'LAMMPS' 카테고리의 다른 글
컴파일된 LAMMPS의 확인 (0) | 2024.12.24 |
---|---|
Granular Package 설치 (0) | 2024.12.24 |
Intel Package Compile (1) | 2024.12.21 |
VTK library compile w/ intel oneAPI (0) | 2024.12.12 |
INTEL and NVIDIA compile option (using CMAKE) (1) | 2024.12.03 |