LAMMPS (Large-scale Atomic/Molecular Massively Parallel Simulator) 설치문서 모아시스 이상윤 페이지 1 / 13
목차 1. overview... 3 2. 소스코드다운로드... 3 3. 설치환경... 4 4. 사전설치... 5 4.1. voro++ 설치... 5 5. 라이브러리패키지설치... 6 5.1. voronoi 설치... 6 5.2. poems 설치... 6 5.3. meam 설치... 6 5.4. awpmd 설치... 7 5.5. atc 설치... 7 5.6. linalg 설치... 8 5.7. reax 설치... 8 6. LAMMPS 설치... 9 6.1. package 선택및설치... 9 6.2. 실행파일복사... 10 7. LAMMPS 실행예제... 10 7.1. 환경설정... 10 7.2. 작업실행 ( 인터랙티브 )... 10 7.3. 작업실행 ( 배치작업제출 )... 13 페이지 2 / 13
1. overview LAMMPS는고체, 액체, 기체상태입자들의앙상블을모델링하는분자동역학코드이다. LAMMPS는다양한경계조건과 force field를이용해 atomic, polymeric, biological, metallic, coarse-grained 시스템등을모델링할수있다. LAMMPS는단일프로세서를이용해 serial 모드에서실행할수있고 C++ 코드컴파일과 MPI 라이브러리가가능한병렬시스템에서병렬실행도가능하다. 이전버전은 F77과 F90으로최근버전은 C++ 로작성되어있다. 2. 소스코드다운로드 LAMMPS 홈페이지 (http://lammps.sandia.gov/index.html) 로부터다운로드받은파일을적당한위치 ($HOME/build) 에올린후다음과같은명령으로압축묶음파일을푼다. $ tar xvf lammps-stable.tar.gz 압축과 tar 묶음이풀리면서두개의파일 (LICENSE, README) 과다음과같은서브디렉터리를 포함하는 lammps 디렉터리 (lammps-11aug17) 가생성된다. bench doc examples lib LICENSE potentials python README src tools benchmark problems Documentation simple test problems library source files the GNU General Public License (GPL) embedded atom method (EAM) potential files python lammps source files text file source files pre- and post-processing tools 이하설치과정에서사용하는설치위치는설치하는사용자개인홈의 build($home/build) 디렉터리를가정한다. 이문서에나오는 /home01/sunlsy 경로는테스트계정 $HOME 이다. 페이지 3 / 13
3. 설치환경 이하내용은 LAMMPS 2017년 8월 11일자버전을 Tachyon 2차 (Linux) 시스템에 64비트 MPI 병렬버전으로 standard 외부패키지를선택해설치하는과정을기준으로한다. 설치과정에서사용되는 GNU 명령들은 install, diff, sed, tar 등이다. Tachyon 2차시스템에서는 module 명령을이용해사용하고자하는컴파일러, MPI 라이브러리를설정해준다. 수치라이브러리는 MKL 사용을기본으로문서를작성하였다. [ 설치환경 ] - 컴파일러 : intel-2015 - MPI : mvapich2-2.1 [ 환경설정예제 ] $ module load compiler/intel-2015 mpi/mvapich2-2.1 LAMMPS 2017 년 3 월 31 일자버전에추가된 MSCG 패키지는 MPI 병렬버전미지원및 serial 로빌드한경우에만사용가능하기때문에본문서에서는설치제외로작성한다. - 참고 : http://lammps.sandia.gov/doc/fix_mscg.html 페이지 4 / 13
4. 사전설치 4.1. voro++ 설치 VORONOI 패키지설치를위해필요한 voro++ 를우선설치한다. 소스코드를홈페이지 (http://math.lbl.gov/voro++) 에서다운로드받아준비한다. - 설치문서를작성한 2017년4월 voro++ 최신버전은 2013년10월17일버전인 0.4.6 이다. $ tar xvf voro++-0.4.6.tar.gz $ cd voro++-0.4.6 $ mkdir -p ~/build/library $ vi config.mk - - - 수정사항은아래참조 - - - $ make $ make install [config.mk 수정 ] CXX=icpc CFLAGS=-Wall -ansi -pedantic -O3 E_INC=-I../../src E_LIB=-L../../src PREFIX=/home01/sunlsy/build/library INSTALL=install IFLAGS_EXEC=-m 0755 IFLAGS=-m 0644 페이지 5 / 13
5. 라이브러리패키지설치 우선위 "2. 소스코드다운로드 " 항목에서압축해제한 lammps 폴더로이동해서라이브러리 패키지설치를진행한다. 5.1. voronoi 설치 "4. 사전설치 " 항목에서진행한 voro++ 설치디렉터리를지정해준다. $ cd lib/voronoi $ ln -s /home01/sunlsy/build/library/include/voro++ includelink $ ln -s /home01/sunlsy/build/library/lib liblink ** includelink 링크시 voro++ 설치디렉터리 /include/voro++ 임에주의 5.2. poems 설치 $ cd lib/poems $ make -f Makefile.icc 5.3. meam 설치 $ cd lib/meam $ vi Makefile.lammps.ifort - - - 수정사항은아래참조 - - - $ make -f Makefile.ifort [Makefile.lammps.ifort 수정 ] meam_sysinc = meam_syslib = meam_syspath = 페이지 6 / 13
5.4. awpmd 설치 $ cd lib/awpmd $ vi Makefile.lammps.installed - - - 수정사항은아래참조 - - - $ make -f Makefile.mpicc [Makefile.lammps.installed 수정 ] user-awpmd_sysinc = user-awpmd_syslib = user-awpmd_syspath = 5.5. atc 설치 $ cd lib/atc $ vi Makefile.lammps.installed - - - 수정사항은아래참조 - - - $ make -f Makefile.mpic++ [Makefile.lammps.installed 수정 ] user-atc_sysinc = user-atc_syslib = user-atc_syspath = 페이지 7 / 13
5.6. linalg 설치 $ cd lib/linalg $ cp -p Makefile.gfortran Makefile.ifort $ vi Makefile.ifort - - - 수정사항은아래참조 - - - $ make -f Makefile.ifort [Makefile.ifort 수정 ] FC = ifort FFLAGS = -O3 -fpic FFLAGS0 = -O0 -fpic 5.7. reax 설치 $ cd lib/reax $ make -f Makefile.ifort 페이지 8 / 13
6. LAMMPS 설치 6.1. package 선택및설치 lammps 설치디렉터리 (lammps-11aug17) 아래 src 로이동 실행 $ cd src $ make package-status $ make yes-standard $ 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 - - - Makefile.mpi 수정 - - - $ make mpi 설명 package 선택확인 standard package 선택 standard package 중 gpu package 선택제외 standard package 중 python package 선택제외 standard package 중 kim package 선택제외 standard package 중 KOKKOS 선택제외 standard package 중 MSCG 선택제외 package 선택확인 [MAKE/Makefile.mpi 수정 ] CCFLAGS = -O3 -fno-alias -restrict -ip -unroll0 -shared-intel LINKFLAGS = -O -L/applic/compilers/intel/2015/mkl/lib/intel64 LIB = -lstdc++ -lpthread -lmkl_sequential -lmkl_intel_lp64 -lmkl_core MPI_INC = -I/applic/compilers/intel/2015/mpi/mvapich2/2.1/include -DMPICH_SKIP_MPICXX - DOMPI_SKIP_MPICXX=1 MPI_LIB = -L/applic/compilers/intel/2015/mpi/mvapich2/2.1/lib FFT_INC = -DFFT_MKL -I/applic/compilers/intel/2015/mkl/include/fftw FFT_LIB = /applic/compilers/intel/2015/mkl/lib/intel64/libfftw2xc_double_intel.a 페이지 9 / 13
6.2. 실행파일복사 설치가완료되면사용에편의를위해 bin 경로를만들어실행파일인 lmp_mpi 를 bin 경로에복 사한다. ( 선택사항 ) $ ls -l lmp_mpi $ cd.. $ mkdir bin $ cd bin $ cp../src/lmp_mpi. 7. LAMMPS 실행예제 위과정을거쳐설치된 lammps 는타키온 2 환경에서다음과같이실행가능하다. ( 실행예제로 examples/meam 아래의데이터를이용하였다.) 7.1. 환경설정 [ 환경설정예 ] $ module load compiler/intel-2015 mpi/mvapich2-2.1 $ export PATH=/home01/sunlsy/build/lammps-11Aug17/bin:$PATH $ which lmp_mpi /home01/sunlsy/build/lammps-11aug17/bin/lmp_mpi 7.2. 작업실행 ( 인터랙티브 ) [mscg 수행예 ] [sunlsy@tachyon3198 meam]$ mpirun -n 8./lmp_mpi -in in.meamc LAMMPS (11 Aug 2017) Reading data file... orthogonal box = (-6-6 -6) to (5.97232 5.97232 5.97232) 2 by 2 by 2 MPI processor grid reading atoms... 128 atoms Reading potential file library.meam with DATE: 2012-06-29 Reading potential file SiC.meam with DATE: 2007-06-11 Neighbor list info... update every 1 steps, delay 10 steps, check yes max neighbors/atom: 2000, page size: 100000 master list distance cutoff = 4.3 ghost atom cutoff = 4.3 페이지 10 / 13
binsize = 2.15, bins = 6 6 6 2 neighbor lists, perpetual/occasional/extra = 2 0 0 (1) pair meam/c, perpetual attributes: full, newton on pair build: full/bin/atomonly stencil: full/bin/3d bin: standard (2) pair meam/c, perpetual, half/full from (1) attributes: half, newton on pair build: halffull/newton stencil: none bin: none Setting up Verlet run... Unit style : metal Current step : 0 Time step : 0.001 Per MPI rank memory allocation (min/avg/max) = 7.989 8.07 8.614 Mbytes Step Temp E_pair E_mol TotEng Press 0 0-636.38121 0-636.38121-76571.819 10 1807.8862-666.21959 0-636.54126-150571.49 20 1932.4467-668.2581 0-636.53498-120223.52 30 1951.3652-668.58139 0-636.54771-100508.4 40 2172.5974-672.22715 0-636.5617-110753.34 50 2056.9149-670.33108 0-636.56468-105418.07 60 1947.9564-668.52788 0-636.55015-111413.04 70 1994.7712-669.28849 0-636.54225-109645.76 80 2126.0903-671.43755 0-636.53557-97475.832 90 2065.7549-670.4349 0-636.52338-95858.836 100 2051.4553-670.20799 0-636.53122-107068.89 Loop time of 0.027401 on 8 procs for 100 steps with 128 atoms Performance: 315.317 ns/day, 0.076 hours/ns, 3649.498 timesteps/s 100.3% CPU use with 8 MPI tasks x no OpenMP threads MPI task timing breakdown: Section min time avg time max time %varavg %total --------------------------------------------------------------- Pair 0.021043 0.022225 0.023843 0.7 81.11 Neigh 0.0003531 0.00038525 0.00042272 0.0 1.41 페이지 11 / 13
Comm 0.0026581 0.0042472 0.0054636 1.6 15.50 Output 0.00024939 0.00028518 0.00048161 0.0 1.04 Modify 6.2704e-05 7.3582e-05 8.3208e-05 0.0 0.27 Other 0.0001848 0.67 Nlocal: 16 ave 20 max 14 min Histogram: 3 0 0 2 0 2 0 0 0 1 Nghost: 213.125 ave 224 max 205 min Histogram: 1 2 1 1 0 1 0 0 0 2 Neighs: 190.75 ave 226 max 154 min Histogram: 1 1 0 2 1 0 0 1 0 2 FullNghs: 381.5 ave 481 max 307 min Histogram: 2 0 1 1 1 1 0 1 0 1 Total # of neighbors = 3052 Ave neighs/atom = 23.8438 Neighbor list builds = 10 Dangerous builds = 10 Total wall time: 0:00:00 페이지 12 / 13
7.3. 작업실행 ( 배치작업제출 ) [ 작업제출스크립트예제 : mpi_lammps.sh] #!/bin/bash #$ -V #$ -cwd #$ -N lammps_test #$ -pe mpi_fu 8 #$ -q normal #$ -R yes #$ -l h_rt=01:00:00 source /etc/profile.d/module.sh module purge module load compiler/intel-2015 mpi/mvapich2-2.1 export PATH=/home01/sunlsy/build/lammps-11Aug17/bin:$PATH mpirun -np $NSLOTS -machinefile $TMPDIR/machines lmp_mpi -in in.meamc exit 0 [SGE 작업제출 ] $ qsub mpi_lammps.sh 페이지 13 / 13