Installing LIGGGHTS with intel MPI

Submitted by tjleps on Fri, 02/28/2020 - 01:39

I'm trying to install LIGGGHTS using intel compilers. I get an error that a simple MPI program cannot be compiled while using $make auto. After manually entering the include and lib paths in Makefile.user, I still get the same error. I tried compiling with $make mpi and just replacing mpic++ with mpiicpc in Makefile.mpi, which worked. While this workaround works, it would be nice to figure out what's going on with make auto. Does anybody have any ideas as to what's going on? I'm not a Makefile or shell script guru, though I'm trying to learn, so I have a bit of a hard time following everything going on in make auto.

Also worth noting, on our University cluster, where there are modules for multiple versions of Intel Parallel Studio, compilation in make auto works for 2014 but has the same linking error for 2018 as I get in 2020 on our workstation.

Thanks for any help.

tjleps | Tue, 03/17/2020 - 01:40

I still haven't been able to get LIGGGHTS to compile using intel compilers on our workstation.

To give a few more details, it's a centos8 machine with the latest intel parallel studio compilers installed (2020.0.166). I've modified Makefile.user as follows (commented lines deleted for clarity):

# MPI specific variables
MPICXX_USR=mpiicpc
MPI_INC_USR=/opt/intel/compilers_and_libraries_2020.0.166/linux/mpi/intel64/include
MPI_LIB_USR=/opt/intel/compilers_and_libraries_2020.0.166/linux/mpi/intel64/lib
MPI_CCFLAGS_USR=-DMPICH_IGNORE_CXX_SEEK -funroll-loops -fstrict-aliasing -Wall -Wno-unused-result

And the output I get is:


[dustiest@mfg-67 src]$ make auto
Creating list of contact models completed.
make[1]: Entering directory '/home/dustiest/LIGGGHTS-PUBLIC/src/Obj_auto'
Warning: MPICXX compiler is icpc but mpiicpc. Thus, setting the MPICH cxx compiler to mpiicpc.
Makefile:499: *** 'Could not compile and link a simple MPI example. Test was done with MPI_LIB=/opt/intel/compilers_and_libraries_2020.0.166/linux/mpi/intel64/lib'. Stop.
make[1]: Leaving directory '/home/dustiest/LIGGGHTS-PUBLIC/src/Obj_auto'
make: *** [Makefile:114: auto] Error 2

Meanwhile, Makefile.mpi does work with the following settings (once again commented lines removed for clarity):


CC = mpiicpc
CCFLAGS = -Ofast -funroll-loops -fstrict-aliasing -Wall -Wno-unused-result -fPIC
SHFLAGS = -fPIC
DEPFLAGS = -M
LINK = mpiicpc
LINKFLAGS = -Ofast -fPIC
LIB = -lstdc++
SIZE = size
ARCHIVE = ar
ARFLAGS = -rcsv
SHLIBFLAGS = -shared
VTK_INC = -I/usr/local/include/vtk-8.2/
VTK_PATH = -L/usr/local/lib64/
VTK_LIB = -lvtkCommonCore-8.2 -lvtkIOCore-8.2 -lvtkIOXML-8.2 -lvtkIOLegacy-8.2 -lvtkCommonDataModel-8.2 -lvtkIOParallel-8.2 -lvtkParallelCore-8.2 -lvtkParallelMPI-8.2 -lvtkIOImage-8.2 -lvtkCommonExecutionModel-8.2 -lvtkFiltersCore-8.2 -lvtkIOParallelXML-8.2

Any ideas as to what may fix this problem for make auto? I'm trying to avoid using the mpi makefile as the solution, as I will hopefully be graduating soon, and I'd rather have the most robust solution for future lab use.