Installation of LAMMPS-30May13 - 1Jul13 on OS X 10.

8 (Mountain Lion) chibaf 5 July 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-30May13, 31May13, 4Jun13, 5Jun13, 6Jun13, 7Jun13, 13Jun13, 17Jun13, 26Jun13, 27Jun13 and 1Jul13. old versions are obtained from below: http://lammps.sandia.gov/tars/ Remark: lammps-29Jun13 and lammps-30Jun13 weren't employed because of a compile error. Remark: a package user-atc wasn't employed for lammps-30May13 in this document because of a compile error. Remark: a package phonon was added on lammps-11Mar13. Remark: a 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: a package user-molfile was added on lammps-14Jun12. But this document doesn't describe installation of the package. Remark: a 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) download KIM API from https://openkim.org/kim_api#download #We employed version 1.1.1 or later. Extract the file and On Terminal $ export KIM_DIR=”the path to openkim” # ending with “/” # example: KIM_DIR = /Users/foo/openkim-api-v1.1.1/ $ cd $KIM_DIM $ make examples $ make (9) installing Voro++ (a software library for carrying out threedimensional computations of the Voronoi tessellation) 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: modification of Makefile.lammps:

// added on 28 september 2011 // added on 28 september 2011

# which file will be copied to Makefile.lammps EXTRAMAKE = Makefile.lammps.gfortran $ 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++ # create an empty file

(B) 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 =

(C) generating makefile at src directory $ make yes-all Installing package asphere Installing package body Installing package class2 Installing package colloid Installing package dipole Installing package fld Installing package gpu Installing package granular Installing package kim Installing package kspace updating package GPU Installing package manybody updating package GPU Installing package mc Installing package meam Installing package molecule updating package GPU Installing package opt Installing package peri Installing package poems Installing package reax Installing package replica Installing package rigid Installing package shock Installing package srd Installing package voronoi Installing package xtc Installing package user-atc Installing package user-awpmd Installing package user-cg-cmm updating package GPU updating src/pair_lj_sdk_coul_long_gpu.cpp updating src/pair_lj_sdk_coul_long_gpu.h updating src/pair_lj_sdk_gpu.cpp updating src/pair_lj_sdk_gpu.h Installing package user-colvars Installing package user-cuda Installing package user-eff Installing package user-misc updating package GPU updating src/pair_lj_sf_dipole_sf_gpu.cpp updating src/pair_lj_sf_dipole_sf_gpu.h Installing package user-omp Installing package user-molfile Installing package user-phonon Installing package user-reaxc Installing 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 $ make no-user-atc # deleting atc package for lammps-30May13 Uninstalling package user-atc (D)at src build executable binary: lmp_openmpi $ export KIM_DIR = ”the path to openkim directory” # example: KIM_DIR = /Users/foo/openkim-api-v1.1.1 $ make openmpi (E) 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-1Jul13 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: