Vous êtes sur la page 1sur 7

Installation of LAMMPS-14Aug13 - 16Aug13 on OS X 10.

8 (Mountain Lion) chibaf 7 August 2013


LAMMPS Molecular Dynamics Simulator http://lammps.sandia.gov/ Copyright (2003) Sandia Corporation.

LAMMPS is a software for molecular (and particles) dynamics. It can be installed on Mac OS X with several steps. On multi-core Mac, lammps is installed with fftw 3.x and OpenMPI. This document corresponds to lammps-14Aug13, 15Aug13 and 16Aug13. old versions are obtained from below: http://lammps.sandia.gov/tars/ Remark: the package gpu and colvars were not employed for lammps14Aug13 and 15Aug13 because of compile errors. Remark: the package phonon was added on lammps-11Mar13. Remark: the package voronoi was added on lammps-25Jan13. Remark: LAMMPS-19Jan13 24Jan13 got a compile error of msm_omp.cpp with gcc (i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)). then we employed gcc-4.8 from http://hpc.sf.net/. Remark: the package user-molfile was added on lammps-14Jun12. But this document doesn't describe installation of the package. Remark: the package USER-COLVARS was added on lammps-27May12. Remark: built without CUDA package. Remark: OS X 10.6 or later is necessary for GPU/OpenCL package. See Recent LAMMPS News for recent lammps updates. (1) OS X 10.8.x (mountain lion) is employed with MacBook Core2Duo (late 2009). (2) if you employ xcode 4.4 or later, you need to install command line tools for it. (3) downloading gcc-mlion.tar.gz from http://hpc.sf.net :

gcc-

mlion.tar.gz (4.8 / updated 2013) for os x 10.8.x


instruction: (A) $ gunzip gcc-mlion.tar.gz (B) $ sudo tar -xf gcc-mlion.tar -C / (4) downloading gfortran from http://hpc.sf.net :

gfortran-

mlion.tar.gz for os x 10.8.x


instruction: (A) $ gunzip gfortran-mlion.tar.gz (B) $ sudo tar -xf gfortrn-mlion.tar -C / (5) you can also obtain gfortran from: Tools - R for Mac OS X developer's page - GNU Fortan for Xcode (6) installation of OpenMPI 1.6.x downloading OpenMPI from http://www.open-mpi.org/software/ompi/v1.6/ extracting tar file (double clicking tar.gz file) and: $ ./configure $ make all

$ make check $ sudo make install # when it passes all check. (7) installation of FFTW we employ FFTW version 3.x # 29 February 2012 http://www.fftw.org/download.html extracting tar file (double clicking tar.gz file) and: $ ./configure $ make all $ make check $ sudo make install (8) installing OpenKIM (Open Knowledge base Interatomic Model) --- Option: if you don't employ OpenKIM, skip this step. download KIM API from https://openkim.org/kim_api#download #We employed version 1.2.1 or later. Extract the file at your home directory and On Terminal $ cp Makefile.KIM_Config.example Makefile.KIM_Config modifyng Makefile.KIM_Config as follows:
# # Release: This file is part of the openkim-api-v1.2.1 package. # # # this make file builds/cleans everything # #KIM_DIR = $(HOME)/openkim-api-vX.X.X KIM_DIR=$(HOME)/openkim-api-v1.2.1 #KIM_MODEL_DRIVERS_DIR = #KIM_MODELS_DIR = #KIM_TESTS_DIR = KIM_COMPILERSUITE = GCC KIM_SYSTEMLINKER = darwin KIM_SYSTEMARCH = 64bit KIM_LINK = dynamic-load

On Terminal $ export KIM_DIR=the path to openkim # ending with / # example: KIM_DIR=/Users/user_name/openkim-api-v1.2.1/ $ cd $KIM_DIM $ make examples $ make (9) installing Voro++ (a software library for carrying out threedimensional computations of the Voronoi tessellation) --- Option: if you don't employ Voro++, skip this step. download Vooro++ from http://math.lbl.gov/voro++/download/. #We employed Version 0.4.5 or later. Extract the file and on Terminal moving to the directory: voro++-0.4.5/ $ make $ sudo make install # files will be installed under /usr/local/. (10) Downloading Lammps the latest version is obtained from below:

http://lammps.sandia.gov/download.html#tar old versions are obtained from below: http://lammps.sandia.gov/tars/ (11) building LAMMPS Remark: in Makefile, tab is used for spacing. (A) build libraries: awpmd, atc, meam, poem, reax, gpu, colvars. at awpmd: $ make -f Makefile.openmpi at atc: modification of Matrix.cpp: #include "DenseMatrix.h" #include "Solver.h" #include "SparseMatrix.h" #include "DiagonalMatrix.h" $ make -f Makefile.g++ at meam: $ make -f Makefile.gfortran at poems: $ make -f Makefile.g++ at reax: $ make -f Makefile.gfortran at gpu # for OpenCL modification of Makefile.lammps.standard: gpu_SYSINC = gpu_SYSLIB = -framework OpenCL # use apple opencl framework gpu_SYSPATH = $ make -f Makefile.mac_opencl at colvars $ touch Makfile.lammps.empty $ make -f Makefile.g++ (B) at src/USER-COLVARS modification of Makefile.lammps
# # # # # # # # # # # # # # # # # This file contains the hooks to build and link LAMMPS with the OpenKIM library so that a LAMMPS input script can use a KIM potential, via the pair_style kim command. You should first download KIM from www.openkim.org. Then build its library API in KIM_API, with the models (potentials) you want to use. You should then have the files: openkim-api-vX.X.X/KIM_API/libkim.a openkim-api-vX.X.X/KIM_API/libkim.so When you build LAMMPS with the KIM package installed, it will use the 3 settings in this file. They should be set as follows. kim_SYSINC = a path to the KIM_API directory that contains *.h files kim_SYSLIB = compiler flag to use the KIM library kim_SYSPATH = a path to the KIM library

# create an empty file

# -----------------------------------------------------------

# Settings that the LAMMPS build will import when this package is installed kim_SYSINC = -I/Users/foo/openkim-api-v1.2.1/KIM_API kim_SYSLIB = -lkim kim_SYSPATH = -L/Users/foo/openkim-api-v1.2.1/KIM_API

(C) at src/MAKE: modification of Makefile.openmpi:


# --------------------------------------------------------------------# compiler/linker settings # specify flags and libraries needed for your compiler CC = CCFLAGS = SHFLAGS = DEPFLAGS = mpic++ -O2 \ -funroll-loops -fstrict-aliasing -Wall -W -Wno-uninitialized \ -fopenmp # enable OpenMP -fPIC -M

LINK = mpic++ LINKFLAGS = -O -lgfortran -lgomp -framework vecLib # gfortran, OpenMP, apple lapack LIB = -lstdc++ SIZE = size ARCHIVE = ar ARFLAGS = -rcsv SHLIBFLAGS = -shared # # # # --------------------------------------------------------------------LAMMPS-specific settings specify settings for LAMMPS features you will use if you change any -D setting, do full re-compile after "make clean"

# LAMMPS ifdef settings, OPTIONAL # see possible settings in doc/Section_start.html#2_2 (step 4) LMP_INC = # # # # # # -DLAMMPS_GZIP

MPI library, REQUIRED see discussion in doc/Section_start.html#2_2 (step 5) can point to dummy MPI library in src/STUBS as in Makefile.serial INC = path for mpi.h, MPI compiler settings PATH = path for MPI library LIB = name of MPI library

MPI_INC = MPI_PATH = MPI_LIB = # # # # # # FFT library, OPTIONAL see discussion in doc/Section_start.html#2_2 (step 6) can be left blank to use provided KISS FFT library INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings PATH = path for FFT library LIB = name of FFT library -DFFT_FFTW3 -lfftw3 # employ fftw 3

FFT_INC = FFT_PATH = FFT_LIB =

(D) generating makefile at src directory $ make yes-all Installing package asphere Installing package body Installing package class2 Installing package colloid

Installing Installing Installing Installing Installing Installing updating Installing updating Installing Installing Installing Installing updating Installing Installing Installing Installing Installing Installing Installing Installing Installing Installing Installing Installing Installing updating updating updating updating updating Installing Installing Installing Installing updating updating updating Installing Installing Installing Installing Installing

package dipole package fld package gpu package granular package kim package kspace package GPU package manybody package GPU package mc package meam package misc package molecule package GPU package opt package peri package poems package reax package replica package rigid package shock package srd package voronoi package xtc package user-atc package user-awpmd package user-cg-cmm package GPU src/pair_lj_sdk_coul_long_gpu.cpp src/pair_lj_sdk_coul_long_gpu.h src/pair_lj_sdk_gpu.cpp src/pair_lj_sdk_gpu.h package user-colvars package user-cuda package user-eff package user-misc package GPU src/pair_lj_sf_dipole_sf_gpu.cpp src/pair_lj_sf_dipole_sf_gpu.h package user-omp package user-molfile package user-phonon package user-reaxc package user-sph

$ make no-user-cuda #deleting CUDA package Uninstalling package user-cuda $ make no-user-molfile #deleting molfile package Uninstalling package user-molfile #deleting colvars package for lammps-14Aug13 and 15Aug13 $ make no-user-colvars Uninstalling package user-colvars #deleting gpu package for lammps-14Aug13 and 15Aug13 $ make no-gpu Uninstalling package gpu

If you didn't employ OpenKIM: $ make no-kim #deleting OpenKIM package Uninstalling package kim If you didn't employ Voro++: $ make no-voronoi #deleting Voro++ package Uninstalling package voronoi (E)at src build executable binary: lmp_openmpi $ export KIM_DIR = the path to openkim directory # example: KIM_DIR = /Users/user_name/openkim-api-v1.1.1 $ make openmpi (F) setting up example suppose that a directory ~/bin exists. $ cp lmp_openmpi ~/bin/ $ export PATH=$PATH:~/bin # use it in .bash_profile (12) execution of Lammps as multi-process command for multi process: $ mpirun -np N lmp_openmpi < in.lammps.script #N is a number of MPI process #see Lammps manual for details. command for multi threads with OpenMP:
$ mpirun -x OMP_NUM_THREADS=M -np N lmp_openmpi -sf omp -in in.lammps # N mpi process and M openmp threads per one mpi process
MacBook2009:~ chibaf$ ps USER PID TT %CPU chibaf 25330 s000 0.0 chibaf 25344 s000 0.0 chibaf 25345 s000 45.7 25345 18.1 chibaf 25346 s000 57.3 25346 20.1 chibaf 25350 s003 0.0 -M STAT S S R S R S S PRI 31T 31T 7T 23T 4T 22T 31T STIME 0:00.01 0:00.01 0:03.29 0:00.05 0:02.11 0:00.06 0:00.01 UTIME 0:00.01 0:00.01 0:14.66 0:08.42 0:16.00 0:09.51 0:00.00 COMMAND -bash mpirun -x OMP_NUM_THREADS=2 -np 2 lmp_openmpi lmp_openmpi -sf omp -in in.lammps lmp_openmpi -sf omp -in in.lammps -bash

lammps-16Aug13 running as two openmp threads x two mpi process on macbook (core2duo) via (Planet airing)[pixiv] (in japanese)

Appendix lammps mailing list: SourceForge.net: LAMMPS: lammps-users My web site: http://math.digi2.jp/ http://math.digi2.jp/math/lammps/ : lammps Scribd - chibaf http://www.scribd.com/chibaf mail:

Vous aimerez peut-être aussi