본문 바로가기

LAMMPS

LAMMPS IntelOneAPI build (2025.5.14)

이제 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