KISTI 슈퍼컴퓨팅 블로그

누리온 lammps-12Dec18 설치 소개 본문

SW 설치 문서 창고/누리온(NURION)

누리온 lammps-12Dec18 설치 소개

슈퍼컴퓨팅인프라센터 2019. 6. 5. 15:35

KISTI 슈퍼컴퓨터센터의 장비에 lammps-12Dec18 source 버전으로 설치 하는 방법에 대하여 소개 한다.

 

1. 설치 환경

  구분

내용 

 대상 시스템

누리온

 OS Version

리눅스 / CentOS 7.3

 CPU

Intel(R) Xeon(R) Gold 6126

 컴파일러

Intel 2018.3 Version

 MPI

IntelMPI 2018.3 Version

 

 기타

Intel MKL Math Library

 

2. 설치 전 환경 설정

KISTI 시스템은 PATH, LD_LIBRARY_PATH 등을 쉽게 하기 위하여 OpenSource 인 Environment Modules(http://modules.sourceforge.net)이 구성되어 있고, 이하 설치 소개 에서는 module load를 이용한 환경 설정 방법을 이용한다.

[ 환경 설정 ]

 $ module load intel/18.0.3 impi/18.0.3


3. 설치 과정

 설치 과정 소개는 tar를 이용한 압축 해제 방법과 설정 방법 등 진행 절차를 위주로 설명하고소스 파일 다운로드 등은 생략한다. (다운로드URL : https://lammps.sandia.gov/tars/)

설치 경로는 $/lammps/12DEC18을 사용하였다이 위치는 사용자에게 맞는 위치로 변경하여야 한다. 
 

 (1) VORO++ 설치 (다운로드 : http://math.lbl.gov/voro++/download/)

VORONOI 패키지 설치를 위한 voro++를 우선 설치한다

  설치과정

 

$ tar xvf voro++-0.4.6.tar.gz

$ cd voro++-0.4.6

$ mkdir -p ${HOME}/build/library

$ vi config.mk

----- 수정 사항은 아래의 내용 참고 -----

$ make

$ make install

 

 

[config.mk 수정 사항]

 

CXX=mpiicpc

CFLAGS= -Wall -ansi -pedantic -O3 -fPIC

E_INC= -I../../src

E_LIB= -L../../src

PREFIX= ${HOME}/build/library

INSTALL= install

IFLAGS_EXEC= -m 0755

IFLAGS= -m 0644

 

 (2) LATTE 설치 (다운로드 https://github.com/lanl/LATTE/releases)

LATTTE 패키지 설치를 위한 Latte 라이브러리를 우선 설치한다.

다운로드 받은 파일을 적당한 위치($HOME/build)에 올린 후 다음과 같은 명령으로 압축 묶음 파일을 푼다.

  설치과정

 

$ cd $/build

$ tar xzvf LATTE-1.2.1.tar.gz

$ cd LATTE-1.2.1

$ vi makefile.CHOICES

----- 수정 사항은 아래의 내용 참고 -----

$ make

 

 

[makefile.CHOICES 수정 사항]

 

#

# CPU Fortran options

#

 

#For GNU compiler:

#FC = mpif90

#FC = gfortran

#FCL = $(FC)

#FFLAGS = -O3 -fopenmp -cpp

#FFLAGS = -fast -Mpreprocess -mp

#LINKFLAG = -fopenmp

 

#For intel compiler:

FC = ifort

FCL = $(FC)

FFLAGS = -O3 -fpp -qopenmp

LINKFLAG = -qopenmp

LIB = -mkl=parallel

 

#GNU BLAS/LAPACK libraries:

#LIB = -llapack -lblas

 

#Intel MKL BLAS/LAPACK libraries:

LIB = -Wl,--no-as-needed -L$/lib/intel64 \

-lmkl_lapack95_lp64 -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core \

-lmkl_gnu_thread -lmkl_core -ldl -lpthread -lm

 

#

# GPU options

#

 

#GPU_CUDA_LIB = -L/opt/cudatoolkit-5.5/lib64 -lcublas -lcudart

 

#GPU_ARCH = sm_20 

 

 (3) 라이브러리 패키지 설치

LAMMPS 홈페이지(http://lammps.sandia.gov/index.html)로부터 다운로드 받은 파일을 적당한 위치($HOME/build)에 올린 후 다음과 같은 명령으로 압축 묶음 파일을 푼다.

 

$ tar xvf lammps-12Dec18.tar.gz

 

 (3-1) voronoi 설치

(1)에서 설치한 voro++ 설치 디렉토리를 지정해 준다.

lammps 압축 해제후 lammps-12Dec18 폴더로 이동하여 아래의 작업을 진행한다.

  설치과정

 

$ cd lammps-12Dec18

$ cd lib/voronoi

$ ln -s ${HOME}/build/library/include/voro++ includelink

$ ln -s ${HOME}/build/library/lib liblink

$ cd ../../

 

 
 (3-2) poems 설치

  설치과정

 

$ cd lib/poems

vi Makefile.mpi

----- 수정 사항은 아래의 내용 참고 -----

$ make -f Makefile.mpi

$ cd ../../

 

 

[Makefile.mpi 수정 사항]

 

CC =            mpiicpc

CCFLAGS =       -O3 -g -fPIC -Wall #-Wno-deprecated

ARCHIVE =       ar

ARCHFLAG =      -rc

DEPFLAGS =      -M

LINK =          mpiicpc

 
 
 (3-3) meam 설치

  설치과정

 

$ cd lib/meam

$ vi Makefile.mpi

----- 수정 사항은 아래의 내용 참고 -----

$ make -f Makefile.mpi

$ cd ../../

 

 

[Makefile.mpi 수정 사항]

 

F90 =           mpiifort

CC  =           mpiicc

F90FLAGS =      -O3 -fPIC

#F90FLAGS =      -O 

ARCHIVE =       ar

ARCHFLAG =      -rc

LINK =          mpiicpc

 

 (3-4) awpmd 설치

  설치과정

 

$ cd lib/awpmd

$ vi Makefile.lammps.linalg

----- 수정 사항은 아래의 내용 참고 -----

vi Makefile.mpi

----- 수정 사항은 아래의 내용 참고 -----

$ make -f Makefile.mpi

$ cd ../../

 

 

[Makefile.lammps.installed 수정 사항]

 

user-atc_SYSINC =

user-atc_SYSLIB = -llinalg

user-atc_SYSPATH = -L../../lib/linalg$(LIBOBJDIR)

 
 

[Makefile.mpi 수정 사항]

 

CC =        mpiicpc

 
 

 (3-5) atc 설치

  설치과정

 

$ cd lib/atc

$ vi Makefile.lammps.linalg

----- 수정 사항은 아래의 내용 참고 -----

vi Makefile.mpi

----- 수정 사항은 아래의 내용 참고 -----

$ make -f Makefile.mpi

 

$ cd ../../

 

 

[Makefile.lammps.linalg 수정 사항]

 

user-atc_SYSINC =

user-atc_SYSLIB = -llinalg

user-atc_SYSPATH = -L../../lib/linalg$(LIBOBJDIR)

 

[Makefile.mpi 수정 사항]

 

CC =            mpiicpc

 
 

 (3-6) linalg 설치

 

  설치과정

 

$ cd lib/linalg

$ vi Makefile.mpi

----- 수정 사항은 아래의 내용 참고 -----

make -f Makefile.mpi

$ cd ../../

 

 

[Makefile.mpi 수정 사항]

 

FC = mpiifort

FFLAGS = -O3 -fPIC

FFLAGS0 = -O0 -fPIC

 

 (3-7) reax 설치

 

  설치과정

 

$ cd lib/reax

make -f Makefile.ifort

$ cd ../../

 

 

 (3-8) latte 설치

 

  설치과정

 

$ cd lib/latte

$ ln -s ${HOME}/build/LATTE-1.2.1/src includelink

$ ln -s ${HOME}/build/LATTE-1.2.1 liblink

$ ln -s ${HOME}/build/LATTE-1.2.1/src/latte_c_bind.o filelink.o

$ vi Makefile.lammps.mpi

----- 수정 사항은 아래의 내용 참고 ----- 

$ cd ../../

 

 

[Makefile.lammps.mpi 수정 사항]

 

latte_SYSINC =

latte_SYSLIB = ../../lib/latte/filelink.o -llatte -llinalg -lifport

latte_SYSPATH = -L../../lib/linalg -qopenmp

 
 (3-9) message 설치

 

  설치과정

 

cd lib/message/cslib/src

vi Makefile

----- 수정 사항은 아래의 내용 참고 ----- 

$ make lib_parallel zmq=no

$ cp libcsmpi.a libmessage.a

 

 

[Makefile 수정 사항]

 

ifeq ($(MPI),YES)

  CC = mpiicpc

else

  CCFLAGS += -I./STUBS_MPI

  LIB = libcsnompi.a

  SHLIB = libcsnompi.so

endif

 
 
 (4) LAMMPS 설치

lammps 설치 디렉토리($/build/lammps-12Dec18) 아래 src 폴더로 이동한다.

 

 - package 선택 및 설치

사용하는 사용자의 연구내용에 맞추어 필요한 package를 선택하여 설치한다여기서는 기본적으로 많이 사용되는 package를 위주로 설치하였다.

 

  설치과정

 

$ cd src

$ make package-status

$ make yes-standard

$ make yes-message

$ make no-GPU

$ make no-PYTHON

$ make no-kim

$ make no-KOKKOS

$ make no-MSCG

$ make yes-USER-ATC

$ make yes-USER-AWPMD

$ make yes-USER-MEAMC

$ make yes-USER-OMP

$ make yes-USER-REAXC

$ make package-status

$ vi MAKE/Makefile.mpi

-수정 사항은 아래 내용 참고 --

$ vi Makefile.package.settings

-- 수정 사항은 아래 내용 참고 --

 

$ make mpi

 

 package 선택 확인

 standard package 선택

 

 standard package 중 gpu package 제외

 standard package 중 PYTHON package 제외

 standard package 중 kim package 제외

 standard package 중 KOKKOS package 제외

 standard package 중 MSCG package 제외

 

 

 

 

 

 package 선택 확인

 

 

 

 

 

 

[MAKE/Makefile.mpi 수정 사항]

 

CC = mpiicpc

OPTFLAGS = -xCOMMON-AVX512 -O3 -fp-model fast=2 -no-prec-div -qoverride-limits

CCFLAGS = -qopenmp -qno-offload -fno-alias -ansi-alias -restrict \

-DLMP_INTEL_USELRT -DLMP_USE_MKL_RNG $(OPTFLAGS)

CCFLAGS += -I/apps/compiler/intel/18.0.3/mkl/include -lmkl_rt

SHFLAGS = -fPIC

DEPFLAGS = -M

 

LINK = mpiicpc

LINKFLAGS = -qopenmp $(OPTFLAGS)

LIB =

SIZE = size

 

ARCHIVE = ar

ARFLAGS = -rc

SHLIBFLAGS = -shared

 

FFT_INC = -DFFT_MKL -DFFT_SINGLE

FFT_PATH =

FFT_LIB = -L$/lib/intel64/ -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core

 

 

[Makefile.package.settings 수정 사항]

 

include ../../lib/awpmd/Makefile.lammps

include ../../lib/atc/Makefile.lammps

include ../../lib/message/Makefile.lammps.nozmq

include ../../lib/voronoi/Makefile.lammps

include ../../lib/reax/Makefile.lammps

include ../../lib/poems/Makefile.lammps

include ../../lib/meam/Makefile.lammps

include ../../lib/latte/Makefile.lammps.mpi

include ../../lib/compress/Makefile.lammps

 
4. 실행 파일 복사

 설치가 완료되면 사용에 편의를 위해 bin 경로를 만들어 실행 파일인 lmp_mpi를 bin 경로에 복사한다.(선택사항)

 

$ ls -l lmp_mpi

$ cd ${HOME}/build/lammps-12Dec18/

$ mkdir bin

$ cp ${HOME}/build/lammps-12Dec18/src/lmp_mpi .

 

 

5. 누리온에서 LAMMPS 사용을 위한 PBS 작업 스크립트 예제

 위의 과정을 거처 설치된 lammps는 누리온 환경에서 다음과 같이 실행이 가능하다.

누리온에서 작업을 제출하기 위해서는 PBS 작업 스크립트를 사용하여야 한다.

 

 

실행 예제로는 examples/meam 아래의 데이터를 이용하였다.

 

  작업스크립트 예제(lammps_test-run.sh)

 

#!/bin/sh

#PBS -V

#PBS -N lammps_job_test

#PBS -q normal

#PBS -l select=2:ncpus=60:mpiprocs=60:ompthreads=1

#PBS -l walltime=04:00:00

#PBS -A lammps

 

cd $PBS_O_WORKDIR

 

module purge

module load intel/18.0.3 impi/18.0.3

export PATH=${HOME}/build/lammps-12Dec18/bin:$PATH

 

mpirun lmp_mpi -in in.meamc

 

exit 0

 

 

 

0 Comments
댓글쓰기 폼