Compiling error with Intel compiler

760 views
Skip to first unread message

Aniruddha Dive

unread,
Dec 15, 2016, 12:27:32 AM12/15/16
to cp2k
Hi I am trying to compile CP2K using intel compilers. Following is my Linux-x86-64-intel-host.psmp arch file
# Arch file targeting Linux 64-bit using the Intel tool chain
#
CC       = icc
CPP      =
FC       = mpifort -FR
LD       = mpifort
AR       = ar -r

#LIBXC_DIR = /home/adive/INTEL_CP2K/LIBXC/libxc-install
#LIBINT_DIR = /home/adive/INTEL_CP2K/LIBINT/libint-install
#LIBSMM_DIR = /home/h012/fiona/Projects/PRACE/lib/cp2klibs-intel
#LIBGRID_DIR = /home/h012/fiona/Projects/PRACE/lib/cp2klibs-intel

CPPFLAGS =
DFLAGS   = -D__MKL -D__FFTW3 -D__parallel \
           -D__SCALAPACK  -D__MPI_VERSION=3 \
#           -I$(LIBXC_DIR)/include
CFLAGS   = $(DFLAGS)
MKLROOT = /share/apps/intel_composer/compilers_and_libraries_2016.0.109/linux/mkl
FCFLAGS  = $(DFLAGS) -O2 -g -traceback -pc64 -unroll -openmp -heap-arrays 64 -fpp -free \
           -I$(MKLROOT)/include -I$(MKLROOT)/include/fftw
FCFLAGS2  = $(DFLAGS) -O0 -g -traceback -pc64 -unroll -openmp -heap-arrays 64 -fpp -free \
           -I$(MKLROOT)/include -I$(MKLROOT)/include/fftw
LDFLAGS  = $(FCFLAGS) -static-intel
LDFLAGS_C = $(FCFLAGS) -static-intel -nofor-main
LIBS     = $(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a \
           $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \
           $(MKLROOT)/lib/intel64/libmkl_sequential.a \
           $(MKLROOT)/lib/intel64/libmkl_core.a \
           $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \
           $(MKLROOT)/lib/intel64/libmkl_blacs_intelmpi_lp64.a \
           -lpthread -lm -openmp \

I am getting the below error when I try to compile

/home/adive/INTEL_CP2K/cp2k-4.1/src/mpiwrap/message_passing.F(2119): error #6285: There is no matching specific subroutine for this generic subroutine call.   [MPI_BCAST]
      CALL mpi_bcast(msg, msglen, MPI_LOGICAL, source, gid, ierr)
-----------^
/home/adive/INTEL_CP2K/cp2k-4.1/src/mpiwrap/message_passing.F(2680): error #6285: There is no matching specific subroutine for this generic subroutine call.   [MPI_ALLREDUCE]
      CALL mpi_allreduce(msg, res, msglen, MPI_LOGICAL, MPI_LOR, gid, ierr)
-----------^
/home/adive/INTEL_CP2K/cp2k-4.1/src/mpiwrap/message_passing.F(2883): error #6285: There is no matching specific subroutine for this generic subroutine call.   [MPI_FILE_WRITE_AT]
      CALL MPI_FILE_WRITE_AT(fh, offset, msg, LEN(msg), MPI_CHARACTER, MPI_STATUS_IGNORE, ierr)
-----------^

I am using Intel_Compiler 2016, MKL_2016 and openmpi-1.8.6

Kindly let me know what could be the issue.

Regards,
Aniruddha M Dive

elbu...@gmail.com

unread,
Dec 16, 2016, 8:44:40 AM12/16/16
to cp2k
Hello Aniruddha M Dive!

You mentioned you were trying to install CP2K with openmpi-1.8.6, but in your arch file you have selected intel-mpi ($(MKLROOT)/lib/intel64/libmkl_blacs_intelmpi_lp64.a), and you are also using mpiifort instead of mpif90. You might have a conflict here. The intel compiler options seem fine to me, you just need to decide if you want to use Intel-MPI or Open-MPI.

If you want Open-MPI, you could try changing "libmkl_blacs_intelmpi_lp64.a" to "libmkl_blacs_openmpi_lp64.a" and mpiifort for mpif90, and see if it works.

I hope it helps,
Fabio
Reply all
Reply to author
Forward
0 new messages