AMBER Archive (2009)

Subject: Re: [AMBER] Not able to compile pmemd with openmpi in Amber9

From: Jason Swails (jason.swails_at_gmail.com)
Date: Wed Nov 25 2009 - 01:06:14 CST


This appears to be an MKL issue. What version of MKL are you using? It
would appear like the MKL libraries you're linking to no longer contain
vd___MATHFUNCTION__ functions/subroutines anymore, so you have to find which
library is missing and link to that one as well. You can try adding
-lmkl_intel_lp64 -lmkl_core and/or -lmkl_sequential to the MATH_LIBS line.
I believe those are the only three libraries that pmemd will need, but this
is for Intel MKL 10 or 11. For older MKL versions, the config file you have
above should work...

I just now tried compiling pmemd9 with the ifort11 compiler and MKL 11. It
failed with the default config.h file (slightly different errors than yours,
but still MKL-related). Adding the three above -lmkl... statements above to
MATH_LIBS fixed the problems.

Again, though, this is dependent on the version of MKL that you're using.

Good luck, and I'd be interested to hear any success/failure (along with
which MKL you have installed :) )

All the best,
Jason

On Wed, Nov 25, 2009 at 1:39 AM, Kito <kitobhai_at_rediffmail.com> wrote:

> Hi Amber Experts/Users,
>
>
>
> I am having difficulties with pmemd installation
>
> My h/w and s/w configuration is
>
> Linux Enterprise, OpenMPI, AMD x86_64, Intel Compiliers
>
>
>
> My config.h file is
>
>
>
> MATH_DEFINES =
>
> MATH_LIBS =
>
> IFORT_RPATH = /opt/gridengine/lib/lx26-amd64:/usr/lib/perl5/5.8.8
>
> MATH_DEFINES = -DMKL
>
> MATH_LIBS = -L$(MKL_HOME)/lib/em64t -lguide -lpthread
>
> FFT_DEFINES = -DPUBFFT
>
> FFT_INCLUDE =
>
> FFT_LIBS =
>
> NETCDF_HOME =
>
> NETCDF_DEFINES =
>
> NETCDF_MOD =
>
> NETCDF_LIBS =
>
> MPI_HOME = /opt/mpi/openmpi/1.3.3/intel/
>
> MPI_DEFINES = -DMPI -DSLOW_NONBLOCKING_MPI
>
> MPI_INCLUDE = -I$(MPI_HOME)/include
>
> MPI_LIBDIR = $(MPI_HOME)/lib
>
> MPI_LIBS = -L$(MPI_LIBDIR)
>
> DIRFRC_DEFINES = -DDIRFRC_EFS -DDIRFRC_COMTRANS -DDIRFRC_NOVEC
>
> CPP = /lib/cpp
>
> CPPFLAGS = -traditional -P
>
> F90_DEFINES = -DFFTLOADBAL_2PROC
>
> F90 = mpif90
>
> MODULE_SUFFIX = mod
>
> F90FLAGS = -c
>
> F90_OPT_DBG = -g -traceback
>
> F90_OPT_LO = -O0
>
> F90_OPT_MED = -O2
>
> F90_OPT_HI = -axWPT -ip -O3
>
> F90_OPT_DFLT = $(F90_OPT_HI)
>
> CC = mpicc
>
> CFLAGS =
>
> LOAD = mpif90
>
> LOADFLAGS =
>
> LOADLIBS = -limf -lsvml -Wl,-rpath=$(IFORT_RPATH)
>
>
>
> The error I get is
>
>
>
> mpif90 -o pmemd gbl_constants.o gbl_datatypes.o state_info.o file_io_dat.o
> parallel_dat.o mdin_ctrl_dat.o mdin_ewald_dat.o prmtop_dat.o inpcrd_dat.o
> dynamics_dat.o img.o parallel.o pme_direct.o pme_recip.o pme_fft.o fft1d.o
> bspline.o pme_force.o pbc.o nb_pairlist.o cit.o dynamics.o bonds.o angles.o
> dihedrals.o runmd.o loadbal.o shake.o runmin.o constraints.o axis_optimize.o
> gb_ene.o veclib.o gb_force.o timers.o pmemd_lib.o runfiles.o file_io.o
> bintraj.o pmemd_clib.o pmemd.o random.o degcnt.o erfcfun.o nmr_calls.o
> nmr_lib.o get_cmdline.o master_setup.o alltasks_setup.o pme_setup.o
> ene_frc_splines.o nextprmtop_section.o
> -L/opt/intel/Compiler/11.1/046/mkl//lib/em64t -lguide -lpthread
> -L/opt/mpi/openmpi/1.3.3/intel//lib -limf -lsvml
> -Wl,-rpath=/opt/gridengine/lib/lx26-amd64:/usr/lib/perl5/5.8.8
>
> gb_ene.o: In function `gb_ene_mod_mp_gb_ene_':
>
> gb_ene.f90:(.text+0x19de): undefined reference to `vdinvsqrt_'
>
> gb_ene.f90:(.text+0x1c93): undefined reference to `vdinv_'
>
> gb_ene.f90:(.text+0x1cac): undefined reference to `vdinv_'
>
> gb_ene.f90:(.text+0x1fde): undefined reference to `vdln_'
>
> gb_ene.f90:(.text+0x1ff7): undefined reference to `vdln_'
>
> gb_ene.f90:(.text+0x3b98): undefined reference to `vdinv_'
>
> gb_ene.f90:(.text+0x3dd9): undefined reference to `vdexp_'
>
> gb_ene.f90:(.text+0x4254): undefined reference to `vdinvsqrt_'
>
> gb_ene.f90:(.text+0x4289): undefined reference to `vdinv_'
>
> gb_ene.f90:(.text+0x43df): undefined reference to `vdexp_'
>
> gb_ene.f90:(.text+0x43fc): undefined reference to `vdinvsqrt_'
>
> gb_ene.f90:(.text+0x5403): undefined reference to `vdinvsqrt_'
>
> gb_ene.f90:(.text+0x55b1): undefined reference to `vdinv_'
>
> gb_ene.f90:(.text+0x55ca): undefined reference to `vdinv_'
>
> gb_ene.f90:(.text+0x57b2): undefined reference to `vdln_'
>
> gb_ene.o: In function `gb_ene_mod_mp_calc_born_radii_':
>
> gb_ene.f90:(.text+0x678a): undefined reference to `vdinvsqrt_'
>
> gb_ene.f90:(.text+0x6a3f): undefined reference to `vdinv_'
>
> gb_ene.f90:(.text+0x6a58): undefined reference to `vdinv_'
>
> gb_ene.f90:(.text+0x6d8a): undefined reference to `vdln_'
>
> gb_ene.f90:(.text+0x6da3): undefined reference to `vdln_'
>
> make[1]: *** [pmemd] Error 1
>
> make[1]: Leaving directory `/opt/apps/amber/9/intel-mkl/src/pmemd/src'
>
> make: *** [all] Error 2
>
>
>
> Please help... I have gone through the archives and got similar problems
> but their said solution's doesnt seems to help.
>
>
>
> Thanks in advance
>
> Kito
> _______________________________________________
> AMBER mailing list
> AMBER_at_ambermd.org
> http://lists.ambermd.org/mailman/listinfo/amber
>

-- 
---------------------------------------
Jason M. Swails
Quantum Theory Project,
University of Florida
Ph.D. Graduate Student
352-392-4032
_______________________________________________
AMBER mailing list
AMBER_at_ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber