[lammps-users] Compiling lammps

Hi All,

I have Beowulf cluster and mpi (from 4 different source gnu/intel/pgi/path) installed on it. I have compiled the lammps using the Makefile.linux (which is already provided with the lammps distribution). When I compile lammps, it compiles perfectly and gives me the executable. However, when I use this compiler to run an example file using following command,
mpirun -np 4 ~/bin/lmp_linux -in in.melt

it runs the 4 identical simulations on different nodes. The output on screen shows that “1 by 1 by 1 processor grid” is used (and every output is printed 4 times on the screen). When I use this following command,

BEOWULF_JOB_MAP=1:1:1:1 mpirun ~/bin/lmp_linux -screen none -in in.melt

it gives me the
– [0] MPI Abort by user Aborting program !
.

What could be the error. Please let me know. Below is the attached Makefile used to compile lammps.

SHELL = /bin/sh

---------------------------------------------------------------------

compiler/linker settings

specify flags and libraries needed for your compiler

CC = icc
CCFLAGS = -O
DEPFLAGS = -M
LINK = icc
LINKFLAGS = -O
LIB = -lstdc++
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size

---------------------------------------------------------------------

LAMMPS-specific settings

specify settings for LAMMPS features you will use

LAMMPS ifdef options, see doc/Section_start.html

LMP_INC = -DLAMMPS_GZIP

MPI library, can be src/STUBS dummy lib

INC = path for mpi.h, MPI compiler settings

PATH = path for MPI library

LIB = name of MPI library

MPI_INC = -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB = -lmpich -lpthread

FFT library, can be -DFFT_NONE if not using PPPM from KSPACE package

INC = -DFFT_FFTW, -DFFT_INTEL, -DFFT_NONE, etc, FFT compiler settings

PATH = path for FFT library

LIB = name of FFT library

FFT_INC = -DFFT_FFTW
FFT_PATH =
FFT_LIB = -lfftw

additional system libraries needed by LAMMPS package libraries

these settings are IGNORED if the corresponding LAMMPS package

(e.g. gpu, meam) is NOT included in the LAMMPS build

SYSLIB = names of libraries

SYSPATH = paths of libraries

gpu_SYSLIB = -lcudart
meam_SYSLIB = -lifcore -lsvml -lompstub -limf
reax_SYSLIB = -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB = -lblas -llapack

gpu_SYSPATH = -L/usr/local/cuda/lib64
meam_SYSPATH = -L/opt/intel/fce/10.0.023/lib
reax_SYSPATH = -L/opt/intel/fce/10.0.023/lib
user-atc_SYSPATH =

---------------------------------------------------------------------

build rules and dependencies

no need to edit this section

include Makefile.package

EXTRA_INC = (LMP_INC) (PKG_INC) (MPI_INC) (FFT_INC)
EXTRA_PATH = (PKG_PATH) (MPI_PATH) (FFT_PATH) (PKG_SYSPATH)
EXTRA_LIB = (PKG_LIB) (MPI_LIB) (FFT_LIB) (PKG_SYSLIB)

Link target

(EXE): (OBJ)
(LINK) (LINKFLAGS) (EXTRA_PATH) (OBJ) (EXTRA_LIB) (LIB) -o (EXE) (SIZE) $(EXE)

Library target

lib: (OBJ) (ARCHIVE) (ARFLAGS) (EXE) $(OBJ)

Compilation rules

.o:.cpp
(CC) (CCFLAGS) (EXTRA_INC) -c <

.d:.cpp
(CC) (CCFLAGS) (EXTRA_INC) (DEPFLAGS) < > @

Individual dependencies

DEPENDS = (OBJ:.o=.d) include (DEPENDS)

Regards
Ateeque

Hi All,

I have Beowulf cluster and mpi (from 4 different source gnu/intel/pgi/path)

installed on it. I have compiled the lammps using the Makefile.linux (which
is already provided with the lammps distribution). When I compile lammps, it
compiles perfectly and gives me the executable. However, when I use this
compiler to run an example file using following command,
mpirun -np 4 ~/bin/lmp_linux -in in.melt

it runs the 4 identical simulations on different nodes. The output on screen
shows that "1 by 1 by 1 processor grid" is used (and every output is
printed 4 times on the screen). When I use this following command,

that means, that the lmp_linux binary was actually _not_ launched as
a parallel job, but 4 independent jobs. that would happen, for example,
if the mpirun command that you are using is from a different MPI
package than the one used for compiling LAMMPS.

BEOWULF_JOB_MAP=1:1:1:1 mpirun ~/bin/lmp_linux -screen none -in in.melt

it gives me the
-- [0] MPI Abort by user Aborting program !

no idea. what is the purpose of BEOWULF_JOB_MAP?

What could be the error. Please let me know. Below is the attached Makefile

too many MPI installations?

cheers,
    axel.