※ 아래는 일부 패키지 설치 예시이며 필요하지 않은 패키지는 생략하고 설치 진행하여도 무방합니다. 다만, make 단계에서 package 세팅 시 해당 패키지를 제외하고 make를 진행해야 오류가 발생하지 않습니다.
※ plumed 를 제외한 예시 패키지는 모두 ${MY_LAMMPS_DIR}/lib 에서 설치 진행합니다. MY_LAMMPS_DIR 은 lammps 를 압축 해제한 디렉터리 입니다.
※ package에 따라 추가적인 설치 과정이나 make 파일 수정이 필요할 수 있습니다.
1. lammps 압축 해제 및 디렉터리 설정
$ tar -xzf stable_2Aug2023_update4.tar.gz
$ cd lammps-stable_2Aug2023_update4
# 현재 경로를 MY_LAMMPS_DIR 로 설정
$ export MY_LAMMPS_DIR=$PWD
2. 옵션 패키지 설치 과정 예시
voro++ 설치
$ wget https://math.lbl.gov/voro++/download/dir/voro++-0.4.6.tar.gz
$ tar -xzf voro++-0.4.6.tar.gz
$ cd voro++-0.4.6
$ mkdir -p ${MY_LAMMPS_DIR}/build/library
$ cp config.mk bak_config.mk
$ vi config.mk
-수정 내용-
CXX=mpiicpc
PREFIX=${MY_LAMMPS_DIR}/build/library
$ make > make.log 2>&1
$ make install
# 디렉터리 변경
$ cd $MY_LAMMPS_DIR/lib/voronoi
$ ln -s ${MY_LAMMPS_DIR}/build/library/include/voro++ includelink
$ ln -s ${MY_LAMMPS_DIR}/build/library/lib liblink
poems 설치
$ cd ../poems
(절대 경로 : cd ${MY_LAMMPS_DIR}/lib/poems)
$ cp Makefile.mpi bak_Makefile.mpi
$ vi Makefile.mpi
-수정 내용-
CC = mpiicpc -std=c++11
LINK = mpiicpc -std=c++11
$ make -f Makefile.mpi > make.log 2>&1
awpmd 설치
$ cd ../awpmd
(절대 경로 : cd ${MY_LAMMPS_DIR}/lib/awpmd)
$ cp Makefile.lammps.linalg bak_Makefile.lammps.linalg
$ vi Makefile.lammps.linalg
-수정 내용-
(수정이 필요하지 않은 경우 저장하지 않고 vim 종료)
awpmd_SYSLIB = -llinalg
$ cp Makefile.mpi bak_Makefile.mpi
$ vi Makefile.mpi
- 수정 내용-
CC = mpiicpc -std=c++11
$ make -f Makefile.mpi > make.log 2>&1
atc 설치
$ cd ../atc
(절대 경로 : cd ${MY_LAMMPS_DIR}/lib/atc)
$ cp Makefile.lammps.linalg bak_Makefile.lammps.linalg
$ vi Makefile.lammps.linalg
-수정 내용-
(수정이 필요하지 않은 경우 저장하지 않고 vim 종료)
atc_SYSLIB = -llinalg
$ cp Makefile.mpi bak_Makefile.mpi
$ vi Makefile.mpi
-수정 내용-
CC = mpiicpc -std=c++11
$ make -f Makefile.mpi > make.log 2>&1
linalg 설치
$ cd ../linalg
(절대 경로 : cd ${MY_LAMMPS_DIR}/lib/linalg)
$ cp Makefile.mpi bak_Makefile.mpi
$ vi Makefile.mpi
-수정 내용-
CC = mpiicpc -std=c++11
$ make -f Makefile.mpi > make.log 2>&1
plumed 설치
$ cd ../plumed
(절대 경로 : cd ${MY_LAMMPS_DIR}/lib/plumed)
$ cp Install.py bak_Install.py
$ vi Install.py
- 수정 내용-
123번째 라인 cmd 로 시작되는 부분
--enable-static-patch CXX=mpiicpc
$ cd ../../src
(절대 경로 : cd ${MY_LAMMPS_DIR}/src)
$ make lib-plumed args="-b" > plumed.make.log 2>&1
(다른 패키지보다 설치에 약간의 시간이 더 소요될 수 있음)
3. lammps package 설치 및 설정
(cd $MY_LAMMPS_DIR/src 경로에서 make 단계 진행)
$ make yes-most
$ make yes-voronoi
$ make yes-poems
$ make yes-awpmd
$ make yes-atc
$ make yes-plumed
$ make yes-intel
$ make yes-mpiio
$ make yes-ml-snap
$ make package-status > package.list 2>&1
(package.list에서 설정된 패키지 확인 가능)
$ vi Makefile.package.settings
(package.settigs 파일 확인하고 수정사항이 없는 경우 vim 종료)
# Makefile settings generated by libraries used by specific LAMMPS packages
# this file is auto-edited when those packages are included/excluded
include ../../lib/plumed/Makefile.lammps
include ../../lib/atc/Makefile.lammps
include ../../lib/awpmd/Makefile.lammps
include ../../lib/poems/Makefile.lammps
include ../../lib/voronoi/Makefile.lammps
include ../../lib/plugin/Makefile.lammps
4. make 파일 수정 및 make
Makefile.mpi 수정
$ cd MAKE
$ cp Makefile.mpi bak_Makefile.mpi
$ vi Makefile.mpi
-compiler/linker settings 수정 내용-
# 예시 OPTFLAGS 의-xCOMMON-AVX512 는 SKL, KNL 노드 공통 최적화 옵션이며
# -xMIC-AVX512 는 KNL, -xCORE-AVX512는 SKL 노드 최적화 옵션이므로 3가지 옵션 중 택일
CC = mpiicpc
OPTFLAGS = -xCOMMON-AVX512 -O3 -fp-model fast=2 -no-prec-div -qoverride-limits -std=c++11
CCFLAGS = -qopenmp -qno-offload -fno-alias -ansi-alias -restrict \
-DLMP_INTEL_USELRT -DLMP_USE_MKL_RNG $(OPTFLAGS)
CCFLAGS += -I$(MKLROOT)/include -I/apps/common/jpeg/9c/include
SHFLAGS = -fPIC
DEPFLAGS = -M
LINK = mpiicpc
LINKFLAGS = -qopenmp $(OPTFLAGS)
LIB = -ltbb -ltbbmalloc
SIZE = size
ARCHIVE = ar
ARFLAGS = -rc
SHLIBFLAGS = -shared
-FFT library 수정 내용-
FFT_INC = -DFFT_MKL -DFFT_SINGLE -DFFT_MKL_THREADS
FFT_PATH =
FFT_LIB = -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_rt