AMBER Archive (2008)

Subject: Re: AMBER: PMEND 9 compilation problems

From: Robert Duke (rduke_at_email.unc.edu)
Date: Wed Jul 30 2008 - 09:40:00 CDT


Well, different OS, crossed cpu and compiler, lots of untried and true stuff here that could be biting you. There may be some fundamental 32 vs 64 bit problem somewhere, though that tends to be rare for pmemd. Most likely, the wrong libraries (ie., same name, but different from different location) are getting dynamically linked - a problem I have seen with ifort before. Be sure you are following the ifort install instructions exactly, including environment setup. Ditto for setting up pmemd for the ifort on the opteron. Sometimes (but mostly on itanium) ifort does bad things in certain releases. Is another fortran compiler recommended by HP for this config? They may have hacked the system in ways that make life interesting - I have seen them do that sort of thing before. Okay, next thing to do to debug this is make the following change in your config.h, compile, and run:
change
F90_OPT_DFLT = $(F90_OPT_HI) to
F90_OPT_DFLT = $(F90_OPT_DBG)
- also modify your run environment (here shown for csh or tcsh):
setenv decfort_dump_flag Y
setenv TBK_ENABLE_VERBOSE_STACK_TRACE
You might then send me your config.h, compiler output, and run output. What does your pmemd input look like, by the way? It should not be possible to produce a segfault with any input, but it would be good to know that the input should actually run.
Regards - Bob Duke

  ----- Original Message -----
  From: Nick Holway
  To: amber_at_scripps.edu
  Sent: Wednesday, July 30, 2008 9:50 AM
  Subject: Re: AMBER: PMEND 9 compilation problems

  Hi,

  Thanks for the response.

  Altering the MATH_LIBS line allowed it to compile. However when I try to run pmemd from the command line I get the following message:

  forrtl: severe (174): SIGSEGV, segmentation fault occurred
  Image PC Routine Line Source
  pmemd 000000000045AA08 Unknown Unknown Unknown
  pmemd 000000000042B173 Unknown Unknown Unknown
  pmemd 0000000000451C6B Unknown Unknown Unknown
  pmemd 000000000047884E Unknown Unknown Unknown
  pmemd 000000000049A15B Unknown Unknown Unknown
  pmemd 0000000000406BC2 Unknown Unknown Unknown
  libc.so.6 0000003C46E1D8A4 Unknown Unknown Unknown
  pmemd 0000000000406AE9 Unknown Unknown Unknown
  forrtl: severe (174): SIGSEGV, segmentation fault occurred
  Image PC Routine Line Source
  pmemd 000000000045AA08 Unknown Unknown Unknown
  pmemd 000000000042B173 Unknown Unknown Unknown
  pmemd 0000000000451C6B Unknown Unknown Unknown
  pmemd 0000000000478EFC Unknown Unknown Unknown
  pmemd 0000000000499A53 Unknown Unknown Unknown
  pmemd 0000000000406BC2 Unknown Unknown Unknown
  libc.so.6 0000003C46E1D8A4 Unknown Unknown Unknown
  pmemd 0000000000406AE9 Unknown Unknown Unknown
  forrtl: severe (174): SIGSEGV, segmentation fault occurred
  Image PC Routine Line Source
  pmemd 000000000045AA08 Unknown Unknown Unknown
  pmemd 000000000042B173 Unknown Unknown Unknown
  pmemd 0000000000451C6B Unknown Unknown Unknown
  pmemd 000000000047884E Unknown Unknown Unknown
  pmemd 000000000049A15B Unknown Unknown Unknown
  pmemd 0000000000406BC2 Unknown Unknown Unknown
  libc.so.6 0000003C46E1D8A4 Unknown Unknown Unknown
  pmemd 0000000000406AE9 Unknown Unknown Unknown
  forrtl: severe (174): SIGSEGV, segmentation fault occurred
  Image PC Routine Line Source
  pmemd 000000000045AA08 Unknown Unknown Unknown
  pmemd 000000000042B173 Unknown Unknown Unknown
  pmemd 0000000000451C6B Unknown Unknown Unknown
  pmemd 000000000047884E Unknown Unknown Unknown
  pmemd 000000000049A15B Unknown Unknown Unknown
  pmemd 0000000000406BC2 Unknown Unknown Unknown
  libc.so.6 0000003C46E1D8A4 Unknown Unknown Unknown
  pmemd 0000000000406AE9 Unknown Unknown Unknown
  rank 3 in job 1 blade-1-9.local_50878 caused collective abort of all ranks
    exit status of rank 3: return code 174
  rank 1 in job 1 blade-1-9.local_50878 caused collective abort of all ranks
    exit status of rank 1: return code 174

  I tried downloading the latest version of ifort and MKL and also compiled pmemd without MKL but see the same message.

  Googling the error message brings up this post (http://structbio.vanderbilt.edu/archives/amber-archive/2006/3253.php) which suggests that this kind of error is caused by ifort is this likely to be the case for me too?

  Thanks

  Nick

  2008/7/29 Robert Duke <rduke_at_email.unc.edu>

    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

-----------------------------------------------------------------------
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