compilation with intel mpi

Asked by h6bx3 on 2018-08-17

Hello users,
                     Although compiling for serial version of the code with ifort does not give this problem for me, with the intel mpi the example h2o.fdf crashes, note that I was able to compile with intel mpi and ifort with clean exit and it does result in the executable.

My arch.make file contains the following. version of siesta used here is 4.0.2.

"
SIESTA_ARCH=intel-mpi
FC=mpiifort
FFLAGS=-g -m64 -fPIC -O2 -xHost -prec-div -prec-sqrt -fp-model source -qopt-prefetch
LDFLAGS= -static-intel -static-libgcc
RANLIB=ranlib
#
NETCDF_LIBS=
NETCDF_INTERFACE=
FPPFLAGS_CDF=
#
MPI_INTERFACE=libmpi_f90.a
MKL_INCLUDE=-I$(MKLROOT)/include/
MPI_LIBS=-L$(I_MPI_ROOT)/intel64/lib -lmpi
MPI_INCLUDE=-I$(I_MPI_ROOT)/intel64/include
INCFLAGS=$(MPI_INCLUDE) $(MKL_INCLUDE)
#
FPPFLAGS_MPI=-DMPI -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DSIESTA__NO_MRRR

LIBS=$(MKLROOT)/lib/intel64/libmkl_blas95_ilp64.a $(MKLROOT)/lib/intel64/libmkl_lapack95_ilp64.a $(MKLROOT)/lib/intel64/libmkl_scalapack_ilp64.a -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_ilp64.a $(MKLROOT)/lib/intel64/libmkl_sequential.a $(MKLROOT)/lib/intel64/libmkl_core.a ${MKLROOT}/lib/intel64/libmkl_blacs_intelmpi_ilp64.a $(NETCDF_LIBS) $(MPI_LIBS) -mkl=parallel -lm -qopenmp

#
SYS=nag
FPPFLAGS= $(FPPFLAGS_CDF) $(FPPFLAGS_MPI)
#
.F.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $<
.f.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS) $<
.F90.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $<
.f90.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS) $<
"

Here is the last few lines including the error info,
"siesta: Automatic unit cell vectors (Ang):
siesta: 7.286412 0.000000 0.000000
siesta: 0.000000 5.746952 0.000000
siesta: 0.000000 0.000000 5.621012

siesta:12700 terminated with signal 11 at PC=be656b SP=7fffd5740560. Backtrace:
siesta-4.0.2/Obj/siesta[0xbe656b]
siesta-4.0.2/Obj/siesta[0xa82c6a]
"

I have searched through this lists, and fine tuned few compiler flags. May be am I missing something here, Had anyone experienced such issue?.

I would appreciate any help here
Sathya Perumal

Question information

Language:
English Edit question
Status:
Solved
For:
Siesta Edit question
Assignee:
No assignee Edit question
Solved by:
Nick Papior
Solved:
2018-08-21
Last query:
2018-08-21
Last reply:
2018-08-18
Best Nick Papior (nickpapior) said : #1

Could you try and add this to the arch.make

 # The atom.f code is very vulnerable. Particularly the Intel compiler
# will make an erroneous compilation of atom.f with high optimization
# levels.
atom.o: atom.F
        $(FC) -c $(FFLAGS_DEBUG) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $<
state_analysis.o: state_analysis.F
        $(FC) -c $(FFLAGS_DEBUG) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $<

h6bx3 (inv-thnk) said : #2

That fixed the issue, and this is how my final arch.make file looks like. Thanks.

"
SIESTA_ARCH=intel-mpi
FC=mpiifort
FFLAGS=-g -xHost -O3 -prec-div -prec-sqrt -fp-model precise -qopt-prefetch -fPIC -m64

DUMMY_FOX=--enable-dummy
FFLAGS_DEBUG=-g -O2 -debug full -traceback -C
LDFLAGS= -static-intel -static-libgcc
RANLIB=ranlib
FC_SERIAL=ifort
#
NETCDF_LIBS=
NETCDF_INTERFACE=
FPPFLAGS_CDF=
#
MPI_INTERFACE=libmpi_f90.a
MKL_INCLUDE=-I$(MKLROOT)/include/ # Note . for no-op
MPI_LIBS=-L$(I_MPI_ROOT)/intel64/lib -lmpi
MKL_LIBS=$(MKLROOT)/lib/intel64
MPI_INCLUDE=-I$(I_MPI_ROOT)/intel64/include
INCFLAGS=$(MPI_INCLUDE) $(MKL_INCLUDE)

FPPFLAGS_MPI=-DMPI -DMPI_TIMING -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DSIESTA__NO_MRRR
#
NETCDF_LIBS=
NETCDF_INTERFACE=
#
LIBS=-mkl=cluster $(MPI_LIBS) -qopenmp -lpthread -lstdc++ -ldl

SYS=nag
FPPFLAGS= $(FPPFLAGS_CDF) $(FPPFLAGS_MPI)
#
atom.o: atom.F
 $(FC) -c $(FFLAGS_DEBUG) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $<
state_analysis.o: state_analysis.F
 $(FC) -c $(FFLAGS_DEBUG) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $<
.F.o:
 $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $<
.f.o:
 $(FC) -c $(FFLAGS) $(INCFLAGS) $<
.F90.o:
 $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $<
.f90.o:
 $(FC) -c $(FFLAGS) $(INCFLAGS) $< "