Dear all,
I am compiling LAMMPS 8Feb23 on an old cluster. Here are the details:
OS: Linux "Ubuntu 16.04.4 LTS" 4.13.0-39-generic
Compiler: GNU C++ 5.4.0 20160609 with OpenMP not enabled
C++ standard: C++11
MPI v3.1: Open MPI v4.1.5, package: Open MPI otello@vikos Distribution, ident: 4.1.5, repo rev: v4.1.5, Feb 23, 2023
I have compiled and installed a local copy of OpenMPI 4.1.5 and updated the PATH and LD_LIBRARY_PATH variables accordingly. I can compile and run a simple MPI program:
$ mpirun -version
mpirun (Open MPI) 4.1.5
$ mpirun -np 4 ./mpi_hello_world
Hello world from processor vikos, rank 0 out of 4 processors
Hello world from processor vikos, rank 2 out of 4 processors
Hello world from processor vikos, rank 3 out of 4 processors
Hello world from processor vikos, rank 1 out of 4 processors
I compiled LAMMPS with make, as CMake is too old (3.5.1):
make make yes-ASPHERE yes-CLASS2 yes-EXTRA-DUMP yes-KSPACE yes-MISC yes-MOLECULE yes-SRD yes-RIGID
make -j4 g++_openmpi
These are the compiling options:
mpicxx -std=c++11 -g -O3 -DLAMMPS_GZIP -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -c
The problem is that the binary runs fine on one processor but hangs at random points when using multiple cores. E.g. from examples/ASPHERE/ellipsoid
mpirun -np 1 lmp_8Feb23 -in in.ellipsoid # works fine :)
mpirun -np 2 lmp_8Feb23 -in in.ellipsoid # hangs :(
I know old machines and old OS are not my friends. But I promise, they will be used to make sound science!