AMBER Archive (2008)

Subject: Re: AMBER: PMEND 9 compilation problems

From: Robert Duke (rduke_at_email.unc.edu)
Date: Tue Jul 29 2008 - 12:41:54 CDT


Hi Nick,
Two possible approaches here:
1) Simply don't use MKL (choose no math library in running pmemd configure).
This is okay unless you want to do generalized Born simulations (the MKL
helps for GB, but really does not matter much for anything else in pmemd).

2) Okay, if you really want the MKL for whatever reason, the problem is
effectively differences in the library structure with the latest releases of
the MKL (post-pmemd 9). You might try instead the static config I now ship
with pmemd 10 for the MKL and the opteron (well, I have tested it on em64t).
In the pmemd configure script, there is now the section:
if [ $platform = linux_p3_athlon -o \
$platform = linux_p4 ]; then
cat << EOD >> config.h
MATH_LIBS =
$MKL_HOME/lib/32/libmkl_ia32.a -L$MKL_HOME/lib/32 -lguide -lpthread
EOD
elif [ $platform = linux64_opteron -o \
$platform = linux_em64t ]; then
cat << EOD >> config.h
MATH_LIBS =
$MKL_HOME/lib/em64t/libmkl_em64t.a -L$MKL_HOME/lib/em64t -lguide -lpthread
EOD
elif [ $platform = sgi_altix ]; then
cat << EOD >> config.h
MATH_LIBS =
$MKL_HOME/lib/64/libmkl_ipf.a -L$MKL_HOME/lib/64 -lguide -lpthread -ldl
EOD
else
echo "PMEMD Configuration Internal Error!"
echo "Unexpected platform type while configuring Intel MKL!"
echo "PMEMD Configuration Failed!"
exit 1
fi
fi
fi
So if you look at the section where platform = linux64_opteron, take the
MATH_LIBS = statement, substitute in your value for $MKL_HOME, and plug that
into your config.h in place of the current MATH_LIBS = statement, it will
hopefully work. Tracking changes in the MKL has not been a lot of fun; hope
this works without too much grief.

Best Regards - Bob Duke

----- Original Message -----
From: Nick Holway
To: amber_at_scripps.edu
Sent: Tuesday, July 29, 2008 12:04 PM
Subject: AMBER: PMEND 9 compilation problems

Hi,

I'm trying to compile PMEND 9 on 64 bit Rocks 5.0 (ie Centos 5.1) on the
head node which is a HP BL265c blade with an Opteron 2214 CPU. I'm using the
Intel ifort fortran v10 compiler with MKL 9.1. GCC is 4.1.2.
The error I'm seeing is:
ifort -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/usr/prog/fortran/intel/mkl/9.1//lib/em64t -lmkl_em64t
 -lpthread -limf -lsvml -Wl,-rpath=/usr/prog/jdk/jdk1.5.0_07/jre/lib/i386/server:/usr/prog/sge/gridengine/lib/lx26-amd64:/opt/gridengine/lib/lx26-amd64:/opt/gridengine/lib/lx26-amd64:/usr/prog/fortran/intel/x86_64/lib:/usr/prog/fortran/intel/mkl/9.1/lib/em64t:/usr/prog/eclipse/rac/lib:/usr/prog/openbabel/2.0.2/lib:/usr/prog/tripos/EAInventor_v4.3_Linux/lib
gb_ene.o: In function `gb_ene_mod_mp_calc_born_radii_':
gb_ene.f90:(.text+0x31f): undefined reference to `vdinvsqrt_'
gb_ene.f90:(.text+0x6bf): undefined reference to `vdinv_'
gb_ene.f90:(.text+0x6dc): undefined reference to `vdinv_'
gb_ene.f90:(.text+0xb21): undefined reference to `vdln_'
gb_ene.f90:(.text+0xb3e): undefined reference to `vdln_'
gb_ene.o: In function `gb_ene_mod_mp_gb_ene_':
gb_ene.f90:(.text+0x2758): undefined reference to `vdinvsqrt_'
gb_ene.f90:(.text+0x2b12): undefined reference to `vdinv_'
gb_ene.f90:(.text+0x2b2f): undefined reference to `vdinv_'
gb_ene.f90:(.text+0x2f8c): undefined reference to `vdln_'
gb_ene.f90:(.text+0x2fa9): undefined reference to `vdln_'
gb_ene.f90:(.text+0x4d5f): undefined reference to `vdinv_'
gb_ene.f90:(.text+0x4fe0): undefined reference to `vdexp_'
gb_ene.f90:(.text+0x539c): undefined reference to `vdinvsqrt_'
gb_ene.f90:(.text+0x53ce): undefined reference to `vdinv_'
gb_ene.f90:(.text+0x5531): undefined reference to `vdexp_'
gb_ene.f90:(.text+0x554b): undefined reference to `vdinvsqrt_'
gb_ene.f90:(.text+0x6229): undefined reference to `vdinvsqrt_'
gb_ene.f90:(.text+0x645d): undefined reference to `vdinv_'
gb_ene.f90:(.text+0x6476): undefined reference to `vdinv_'
gb_ene.f90:(.text+0x66a2): undefined reference to `vdln_'
make[1]: *** [pmemd] Error 1
make[1]: Leaving directory `/tmp/nick/amber9/src/pmemd/src'
make: *** [all] Error 2

This is my config.h:

MATH_DEFINES =
MATH_LIBS =
IFORT_RPATH =
/usr/prog/jdk/jdk1.5.0_07/jre/lib/i386/server:/usr/prog/sge/gridengine/lib/lx26-amd64:/opt/gridengine/lib/lx26-amd64:/opt/gridengine/lib/lx26-amd64:/usr/prog/fortran/intel/x86_64/lib:/usr/prog/fortran/intel/mkl/9.1/lib/em64t:/usr/prog/eclipse/rac/lib:/usr/prog/openbabel/2.0.2/lib:/usr/prog/tripos/EAInventor_v4.3_Linux/lib
MATH_DEFINES = -DMKL
MATH_LIBS
= -L/usr/prog/fortran/intel/mkl/9.1//lib/em64t -lmkl_em64t -lpthread
FFT_DEFINES = -DPUBFFT
FFT_INCLUDE =
FFT_LIBS =
NETCDF_HOME =
NETCDF_DEFINES =
NETCDF_MOD =
NETCDF_LIBS =
MPI_DEFINES =
MPI_INCLUDE =
MPI_LIBDIR =
MPI_LIBS =
DIRFRC_DEFINES = -DDIRFRC_EFS -DDIRFRC_COMTRANS -DDIRFRC_NOVEC
CPP = /lib/cpp
CPPFLAGS = -traditional -P
F90_DEFINES = -DFFTLOADBAL_2PROC

F90 = ifort
MODULE_SUFFIX = mod
F90FLAGS = -c -auto
F90_OPT_DBG = -g -traceback
F90_OPT_LO = -tpp7 -O0
F90_OPT_MED = -tpp7 -O2
F90_OPT_HI = -tpp7 -xW -ip -O3
F90_OPT_DFLT = $(F90_OPT_HI)

CC = gcc
CFLAGS =

LOAD = ifort
LOADFLAGS =
LOADLIBS = -limf -lsvml -Wl,-rpath=$(IFORT_RPATH)

Thanks in advance for any help.
Nick

-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber_at_scripps.edu
To unsubscribe, send "unsubscribe amber" (in the *body* of the email)
      to majordomo_at_scripps.edu