[lammps-users] mpi build

Lammps Users,

I am having problems building an MPI version of Lammps on my 20 node
computer cluster. I also want to use the reax forcefield. I want to
run lammps over our infiniband network so I am using the
Makefile.openmpi make file. The only change to the make file that I
have made is that I have specified to full path for mpic++ in the
compiler/linker settings section. The installation seems to run fine
but crashes at the end with this error:

make[1]: mpic++: Command not found
make[1]: *** [../lmp_openmpi] Error 127
make[1]: Leaving directory `/opt/lammps/src/Obj_openmpi'
make: *** [openmpi] Error 2

I was surprised to get this error after the installation seemingly had
gone fine up until that point. Any suggestions on what might be the
problem here? Thanks in advance!

Jacob Harvey

Lammps Users,

I am having problems building an MPI version of Lammps on my 20 node
computer cluster. I also want to use the reax forcefield. I want to
run lammps over our infiniband network so I am using the
Makefile.openmpi make file. The only change to the make file that I
have made is that I have specified to full path for mpic++ in the
compiler/linker settings section. The installation seems to run fine
but crashes at the end with this error:

make[1]: mpic++: Command not found
make[1]: *** [../lmp_openmpi] Error 127
make[1]: Leaving directory `/opt/lammps/src/Obj_openmpi'
make: *** [openmpi] Error 2

I was surprised to get this error after the installation seemingly had
gone fine up until that point. Any suggestions on what might be the
problem here? Thanks in advance!

the problems is that you need to specify the linker in the same way. try:

LINK=$(CC)

in your makefile.

cheers,
   axel.

Lammps Users,

Axel thanks for your suggestion. That was an easy fix. However, now I
am running into a different error. This is what I did. First I went to
$LAMMPS/lib/reax and ran "make -f Makefile.ifort". Everything seemed
to run fine with this. Then I go to $LAMMPS/src and run "make
yes-reax", after which all I get is:

Installing package reax

I'm not sure if that is the right output. Finall I run "make openmpi".
Everything seems to run fine until I get the error:

reax_reac.F:(.text+0x6d1): undefined reference to `_gfortran_st_write_done'
reax_reac.F:(.text+0x6e0): undefined reference to `_gfortran_stop_string'
collect2: ld returned 1 exit status
make[1]: *** [../lmp_openmpi] Error 1
make[1]: Leaving directory `/opt/lammps/src/Obj_openmpi'
make: *** [openmpi] Error 2

Above that are similar undefined reference errors. I'm confused about
these errors cause I used Ifort to compile the reax package so why is
it mentioning gfortran here? Thanks again for your help.

Jacob

Lammps Users,

Axel thanks for your suggestion. That was an easy fix. However, now I
am running into a different error. This is what I did. First I went to
$LAMMPS/lib/reax and ran "make -f Makefile.ifort". Everything seemed
to run fine with this. Then I go to $LAMMPS/src and run "make
yes-reax", after which all I get is:

Installing package reax

I'm not sure if that is the right output. Finall I run "make openmpi".
Everything seems to run fine until I get the error:

reax_reac.F:(.text+0x6d1): undefined reference to `_gfortran_st_write_done'
reax_reac.F:(.text+0x6e0): undefined reference to `_gfortran_stop_string'
collect2: ld returned 1 exit status
make[1]: *** [../lmp_openmpi] Error 1
make[1]: Leaving directory `/opt/lammps/src/Obj_openmpi'
make: *** [openmpi] Error 2

Above that are similar undefined reference errors. I'm confused about
these errors cause I used Ifort to compile the reax package so why is
it mentioning gfortran here? Thanks again for your help.

i would first make certain that you delete all object
files (*.o) and libraries (*.a) in lib/reax/ and then try again.

axel.

In src/MAKE/Makefile.openmpi, there is a section where
you specify the various Fortran lib files needed to link C++
with a Fortran lib (reax). If you don't get those settings
right, then you get errors like this. Which lib files to use
depends on what compiler you used to build the REAX lib.

This is explained in doc/Section_start.html.

Steve