이제 LAMMPS의 소스코드를 다운 받는다.
git clone https://github.com/lammps/lammps.git
:~/Downloads/lammps$ mkdir build
:~/Downloads/lammps$ cd build
:~/Downloads/lammps/build$
source /opt/intel/oneapi/setvars.sh
$ which icx
/opt/intel/oneapi/compiler/2025.1/bin/icx
$ which icpx
/opt/intel/oneapi/compiler/2025.1/bin/icpx
$ which ifx
/opt/intel/oneapi/compiler/2025.1/bin/ifx
(GCC 사용시 적합)
cmake ../cmake \
-G Ninja \
-D BUILD_MPI=yes \
-D BUILD_OMP=yes \
-DCMAKE_C_COMPILER=icx \
-DCMAKE_CXX_COMPILER=icpx \
-DCMAKE_Fortran_COMPILER=ifx \
-D CMAKE_C_FLAGS="-O3 -march=native -fp-model fast=2 -fno-exceptions -ffast-math -funroll-loops -fstrict-aliasing" \
-D CMAKE_CXX_FLAGS="-O3 -march=native -fp-model fast=2 -fno-exceptions -ffast-math -funroll-loops -fstrict-aliasing" \
-D CMAKE_Fortran_FLAGS="-O3 -march=native -fp-model fast=2 -fno-exceptions -ffast-math -funroll-loops -fstrict-aliasing" \
-D LAMMPS_MEMALIGN=64 \
-D PKG_INTEL=yes \
-D PKG_OPENMP=yes \
-D PKG_GRANULAR=yes \
-D PKG_RIGID=yes \
-D PKG_MOLECULE=yes \
-D PKG_PYTHON=yes \
-D PKG_VTK=yes \
-D PKG_EXTRA-FIX=yes \
-D VTK_DIR=/usr/local/lib/cmake/vtk-9.4 \
-D Python_EXECUTABLE=/usr/bin/python3 \
-D INTEL_ARCH=cpu \
-D INTEL_LRT_MODE=threads \
-D BUILD_SHARED_LIBS=yes \
-D LAMMPS_SIZES=bigbig \
-D CMAKE_INSTALL_PREFIX=$HOME/LAMMPS \
-D CMAKE_INSTALL_RPATH=$HOME/LAMMPS/lib
Alternative Optimization Options (Cascade Lake 이후 CPU에 적합)
cmake ../cmake \
-G Ninja \
-D BUILD_MPI=yes \
-D BUILD_OMP=yes \
-DCMAKE_C_COMPILER=icx \
-DCMAKE_CXX_COMPILER=icpx \
-DCMAKE_Fortran_COMPILER=ifx \
-DCMAKE_C_FLAGS="-O3 -xCORE-AVX512 -fp-model=precise -fno-exceptions -funroll-loops -fstrict-aliasing -qopt-report=max -qopt-report-phase=vec,loop -flto" \
-DCMAKE_CXX_FLAGS="-O3 -xCORE-AVX512 -fp-model=precise -fno-exceptions -funroll-loops -fstrict-aliasing -qopt-report=max -qopt-report-phase=vec,loop -flto" \
-DCMAKE_Fortran_FLAGS="-O3 -xCORE-AVX512 -fp-model=precise -funroll-loops -fstrict-aliasing -qopt-report=max -qopt-report-phase=vec,loop -flto" \
-D LAMMPS_MEMALIGN=64 \
-D PKG_INTEL=yes \
-D PKG_OPENMP=yes \
-D PKG_GRANULAR=yes \
-D PKG_RIGID=yes \
-D PKG_MOLECULE=yes \
-D PKG_PYTHON=yes \
-D PKG_VTK=yes \
-D PKG_EXTRA-FIX=yes \
-D VTK_DIR=/usr/local/lib/cmake/vtk-9.5 \
-D Python_EXECUTABLE=/usr/bin/python3 \
-D INTEL_ARCH=cpu \
-D INTEL_LRT_MODE=threads \
-D BUILD_SHARED_LIBS=yes \
-D LAMMPS_SIZES=bigbig \
-D CMAKE_INSTALL_PREFIX=$HOME/LAMMPS \
-D CMAKE_INSTALL_RPATH=$HOME/LAMMPS/lib
Haswell (옜날 2017년 이전 Scalable 하지 않은 CPU는)
cmake ../cmake \
-G Ninja \
-D BUILD_MPI=yes \
-D BUILD_OMP=yes \
-DCMAKE_C_COMPILER=icx \
-DCMAKE_CXX_COMPILER=icpx \
-DCMAKE_Fortran_COMPILER=ifx \
-DCMAKE_C_FLAGS="-O3 -xCORE-AVX2 -fp-model precise -fno-exceptions -funroll-loops -fstrict-aliasing -qopt-report=max -qopt-report-phase=vec,loop -flto" \
-DCMAKE_CXX_FLAGS="-O3 -xCORE-AVX2 -fp-model precise -fno-exceptions -funroll-loops -fstrict-aliasing -qopt-report=max -qopt-report-phase=vec,loop -flto" \
-DCMAKE_Fortran_FLAGS="-O3 -xCORE-AVX2 -fp-model precise -funroll-loops -fstrict-aliasing -qopt-report=max -qopt-report-phase=vec,loop -flto" \
-D LAMMPS_MEMALIGN=64 \
-D PKG_INTEL=yes \
-D PKG_OPENMP=yes \
-D PKG_GRANULAR=yes \
-D PKG_RIGID=yes \
-D PKG_MOLECULE=yes \
-D PKG_PYTHON=yes \
-D PKG_VTK=yes \
-D PKG_EXTRA-FIX=yes \
-D VTK_DIR=/usr/local/lib/cmake/vtk-9.4 \
-D Python_EXECUTABLE=/usr/bin/python3 \
-D INTEL_ARCH=cpu \
-D INTEL_LRT_MODE=threads \
-D BUILD_SHARED_LIBS=yes \
-D LAMMPS_SIZES=bigbig \
-D CMAKE_INSTALL_PREFIX=$HOME/LAMMPS \
-D CMAKE_INSTALL_RPATH=$HOME/LAMMPS/lib
- Cluster
cmake ../cmake \
-G Ninja \
-D BUILD_MPI=yes \
-D BUILD_OMP=yes \
-DCMAKE_C_COMPILER=icx \
-DCMAKE_CXX_COMPILER=icpx \
-DCMAKE_Fortran_COMPILER=ifx \
-DCMAKE_C_FLAGS_RELEASE="-O3 -xsapphirerapids -qopt-zmm-usage=high -fp-model=precise -fstrict-aliasing -fno-exceptions -funroll-loops" \
-DCMAKE_CXX_FLAGS_RELEASE="-O3 -xsapphirerapids -qopt-zmm-usage=high -fp-model=precise -fstrict-aliasing -fno-exceptions -funroll-loops" \
-DCMAKE_Fortran_FLAGS_RELEASE="-O3 -xsapphirerapids -qopt-zmm-usage=high -mprefer-vector-width=512 -fp-model=precise -fstrict-aliasing -funroll-loops" \
-D LAMMPS_MEMALIGN=64 \
-D PKG_INTEL=yes \
-D PKG_OPENMP=yes \
-D PKG_GRANULAR=yes \
-D PKG_RIGID=yes \
-D PKG_MOLECULE=yes \
-D PKG_PYTHON=yes \
-D PKG_VTK=yes \
-D PKG_EXTRA-FIX=yes \
-D VTK_DIR=/opt/apps/lib/cmake/vtk-9.5 \
-D Python_EXECUTABLE=/usr/bin/python3 \
-D INTEL_ARCH=cpu \
-D INTEL_LRT_MODE=threads \
-D BUILD_SHARED_LIBS=yes \
-D LAMMPS_SIZES=bigbig \
-D CMAKE_INSTALL_PREFIX=/opt/apps/LAMMPS \
-D CMAKE_INSTALL_RPATH=/opt/apps/LAMMPS/lib
ninja -j 10
sudo ninja install
파이썬 설치
sudo apt install python3.12-venv
python3 -m venv ~/my_lammps_venv
source ~/my_lammps_venv/bin/activate
ninja install-python
- Cluster의 경우
sudo apt install python3.12-venv
ans compute -b --ask-become-pass -m apt -a 'name=python3.12-venv state=present update_cache=yes'
sudo python3 -m venv /opt/apps/venv/lammps
sudo chmod -R a+rX /opt/apps/venv/lammps
source /opt/apps/venv/lammps/bin/activate
파이썬 가상환경에서 설치해야 할 것
pip install mpi4py
패스 잡아주기 (bashrc)
export PATH="$HOME/LAMMPS/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/LAMMPS/lib:$LD_LIBRARY_PATH"
- 클러스터에서는 모듈파일로
/opt/apps/modulefiles/lammps/22Jul2025_intel
#%Module1.0#####################################################################
##
## LAMMPS stable_22Jul2025_update2, Intel oneAPI build
##
proc ModulesHelp { } {
puts stderr "Loads LAMMPS (stable_22Jul2025_update2) built with Intel oneAPI."
}
module-whatis "LAMMPS stable_22Jul2025_update2 (Intel oneAPI build)"
# 설치 위치
setenv LAMMPS_DIR /opt/apps/LAMMPS
# 실행 파일 경로 추가
prepend-path PATH /opt/apps/LAMMPS/bin
# RPATH 덕분에 없어도 되지만, 혹시 모를 경우를 위해 선택적으로 추가 가능
# prepend-path LD_LIBRARY_PATH /opt/apps/LAMMPS/lib'LAMMPS' 카테고리의 다른 글
| MPI+OMP in AOCC (0) | 2025.04.14 |
|---|---|
| IntelOneAPI command line options for NUMA (0) | 2025.04.03 |
| AOCC, AOCL Cmake (optional) (0) | 2025.03.03 |
| IntelOneAPI 환경에서 실행 (0) | 2025.02.27 |
| Domain decomposition VTK convert (0) | 2025.02.24 |