AMBER Archive (2007)

Subject: Re: AMBER: amber9 compile problem

From: Robert Duke (rduke_at_email.unc.edu)
Date: Wed Jun 13 2007 - 13:07:37 CDT


Hi guys -
Sorry, I have not been following this thread, so am not up to speed. Are you all sure that the mpich was built the same way as pmemd, in terms of the fortran name conventions? This is the most common problem. You also have to be sure that the c modules use a name convention that is consistent if you force the name mangling to be different than the default with compiler switches (otherwise pmemd configure should get it right). All the other non-mpi system junk is problems with nostandard system setup, 32 vs 64 bits, all that junk, which can drive anyone crazy (very hard to remotely debug). When I am having problems with name mangling I tend to do a 'nm' command on the mpi library just to make sure I understand the name mangling that was used; then I have to read the fortran compiler manual to be sure what it wants. Really, I have only had excessive grief with all this stuff with the pathscale compiler on opterons - primarily because different installations will set up different default name mangling options for that compiler, so you never know what you are going to need. The stuff at the end (omp_) looks to me like missing threads library stuff, best guess. May need an appended system library to support mpi properly. What does 'mpif77 -link_info' tell you about what libraries to include in the linkage?
Regards - Bob
  ----- Original Message -----
  From: Henk Meij
  To: amber_at_scripps.edu
  Sent: Tuesday, June 12, 2007 2:30 PM
  Subject: Re: AMBER: amber9 compile problem

  Ross, thanks for all your help. i made links for libvapi and libmosal in lib64 pointing to the /usr/local/topspin/lib64 copies. we have binaries. way confusing, but we're there.

  pmemd however still fails. same environment. do you have any clues on were all these undefined reference are hiding?

  -Henk

[root_at_swallowtail src]# ldd /share/apps/amber/9_ifort/exe/sander.MPI
        libmpichf90_i.so => /usr/local/topspin/mpi/mpich/lib64/libmpichf90_i.so (0x0000002a95576000)
        libmpich_i.so => /usr/local/topspin/mpi/mpich/lib64/libmpich_i.so (0x0000002a956d4000)
        libmpichfsup_i.so => /usr/local/topspin/mpi/mpich/lib64/libmpichfsup_i.so (0x0000002a978f3000)
        libmpich.so => /usr/local/topspin/mpi/mpich/lib64/libmpich.so (0x0000002a979f6000)
        libvapi.so => /usr/local/topspin/lib64/libvapi.so (0x0000002a99c17000)
        libmosal.so => /usr/local/topspin/lib64/libmosal.so (0x0000002a99d37000)
        libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000003684400000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003684000000)
        libvml.so => /share/apps/intel/cmkl/9.1/lib/em64t/libvml.so (0x0000002a99e47000)
        libmkl_lapack.so => /share/apps/intel/cmkl/9.1/lib/em64t/libmkl_lapack.so (0x0000002a99fdc000)
        libmkl.so => /share/apps/intel/cmkl/9.1/lib/em64t/libmkl.so (0x0000002a9a74a000)
        libguide.so => /share/apps/intel/cmkl/9.1/lib/em64t/libguide.so (0x0000002a9a8ca000)
        libm.so.6 => /lib64/tls/libm.so.6 (0x00000034d3600000)
        libc.so.6 => /lib64/tls/libc.so.6 (0x0000003683b00000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003687b00000)
        libg2c.so.0 => /usr/lib64/libg2c.so.0 (0x0000002a9aa2d000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003683900000)

[root_at_swallowtail pmemd]# /share/apps/amber/9_ifort/exe/sander.MPI --help
Can't read MPIRUN_HOST

[root_at_swallowtail pmemd]# ./configure linux_em64t ifort mpich

Intel ifort compiler found; version information:
Version 9.1
configure assumes Intel MKL is installed in /share/apps/intel/cmkl/9.1
File config_data/fft.pubfft being used...
File config_data/linux_em64t.ifort being used...
File config_data/interconnect.mpich being used...
configure assumes mpich files are in /usr/local/topspin/mpi/mpich.
PMEMD Configurate successfully completed.

[root_at_swallowtail pmemd]# make install > /tmp/log 2>&1

first error:
IPO link: can not find -lmpich
ifort: error: problem during multi-file optimization compilation (code 1)

changed config.h
#MPI_LIBDIR = $(MPI_HOME)/lib
MPI_LIBDIR = $(MPI_HOME)/lib64

...no errors this far...
/lib/cpp -traditional -P -I/usr/local/topspin/mpi/mpich/include -DPUBFFT -DMPI -DSLOW_NONBLOCKING_MPI -DDIRFRC_EFS -DDIRFRC_COMTRANS -DDIRFRC_NOVEC -DMKL -DFFTLOADBAL_2PROC erfcfun.fpp erfcfun.f90
ifort -c -auto -tpp7 -xW -ip -O3 erfcfun.f90
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/share/apps/intel/cmkl/9.1/lib/em64t -lmkl_em64t -lpthread -L/usr/local/topspin/mpi/mpich/lib64 -lmpich -limf -lsvml -Wl,-rpath=/share/apps/intel/cmkl/9.1/lib/em64t:/share/apps/intel/mpi/3.0.043/lib64:/share/apps/intel/fce/9.1.043/lib:/share/apps/intel/cce/9.1.047/lib:/opt/lava/6.1/linux2.6-glibc2.3-ia32e/lib:/opt/lava/6.1/linux2.6-glibc2.3-ia32e/lib:/share/
 apps/openmpi-1.2/lib
parallel_dat.o(.text+0x40): In function `parallel_dat_mod_mp_mexit_':
: undefined reference to `mpi_group_free_'
parallel_dat.o(.text+0x53): In function `parallel_dat_mod_mp_mexit_':
: undefined reference to `mpi_finalize_'
parallel_dat.o(.text+0xad): In function `parallel_dat_mod_mp_mexit_':
: undefined reference to `mpi_abort_'
mdin_ctrl_dat.o(.text+0x842a): In function `mdin_ctrl_dat_mod_mp_bcast_mdin_ctrl_dat_':
: undefined reference to `mpi_bcast_'
mdin_ctrl_dat.o(.text+0x8451): In function `mdin_ctrl_dat_mod_mp_bcast_mdin_ctrl_dat_':
: undefined reference to `mpi_bcast_'

-these undefined references continue for awhile, then-

/share/apps/intel/cmkl/9.1/lib/em64t/libmkl_em64t.a(vml_threading_service.o)(.text+0x2b): In function `mkl_vml_service_threader_s_min':
: undefined reference to `omp_in_parallel'
/share/apps/intel/cmkl/9.1/lib/em64t/libmkl_em64t.a(vml_threading_service.o)(.text+0x167): In function `CalculateLogicConsts':
: undefined reference to `omp_get_num_procs'

- and lots of those -

btw,

[root_at_swallowtail pmemd]# mpif90 -link_info
ln -s /usr/local/topspin/mpi/mpich//include/mpif.h mpif.h
ifort -I/usr/local/topspin/mpi/mpich//include -L/usr/local/topspin/mpi/mpich//lib -lmpichf90_i -lmpich_i -lmpichfsup_i -L /usr/local/topspin/lib64 -L /usr/local/topspin/mpi//mpich/lib64 -lmpich -lvapi -lmosal -Bdynamic -lpthread -ldl
rm mpif.h

so i now made a link in
/usr/local/topspin/mpi/mpich
pointing lib/ to lib64/
did not help

    Hi Henk,

    For some reason it looks like your mpi libraries are distributed in two directories, /usr/local/topspin/mpi/mpich/lib64 and
    /usr/local/topspin/lib64/. The mpif90_i script should have taken care of this though. For some reason here though it isn't picking up the second search path. In your config.h file can you try specifying -L/usr/local/topspin/lib64/ before the -lvapi or alternatively try creating a link to libvapi.a and libvapi.so in /usr/local/topspin/mpi/mpich/lib64. Same for any other libraries in /usr/local/topspin/lib64/ that it can't find. I know this is a bit of a hack but hopefully it will work and get you a compiled executable.

    All the best
    Ross
    /\
    \/
    |\oss Walker

    | HPC Consultant and Staff Scientist |
    | San Diego Supercomputer Center |
    | Tel: +1 858 822 0854 | EMail:- ross_at_rosswalker.co.uk |
    | http://www.rosswalker.co.uk | PGP Key available on request |

    Note: Electronic Mail is not secure, has no guarantee of delivery, may not be read every day, and should not be used for urgent or sensitive issues.

--------------------------------------------------------------------------
      From: owner-amber_at_scripps.edu [mailto:owner-amber_at_scripps.edu] On Behalf Of Henk Meij
      Sent: Tuesday, June 12, 2007 07:13
      To: amber_at_scripps.edu
      Subject: Re: AMBER: amber9 compile problem

Ross, with link in place
-Henk

[root_at_swallowtail src]# make clean
[root_at_swallowtail src]# ./configure -mpich ifort_x86_64

AMBERHOME is set to /share/apps/amber/9_ifort
Setting up Amber configuration file for architecture: ifort_x86_64
Using parallel communications library: mpich
MPI_HOME is set to /usr/local/topspin/mpi/mpich
MKL_HOME is set to /share/apps/intel/cmkl/9.1
Using MKL libraries from /share/apps/intel/cmkl/9.1/lib/em64t

The configuration file, config.h, was successfully created.

[root_at_swallowtail src]# which mpif90
/usr/local/topspin/mpi/mpich/bin/mpif90
[root_at_swallowtail src]# which ifort
/share/apps/intel/fce/9.1.043/bin/ifort

[root_at_swallowtail src]# make parallel

first error when compiling sander.MPI
IPO link: can not find -lmpif90_i
ifort: error: problem during multi-file optimization compilation (code 1)

so i changed config.h
#LOADLIB= -L/usr/local/topspin/mpi/mpich/lib -lmpichf90_i ...
LOADLIB= -L/usr/local/topspin/mpi/mpich/lib64 -lmpichf90_i ...

reran, and now have error
IPO link: can not find -lvapi
ifort: error: problem during multi-file optimization compilation (code 1)

[root_at_swallowtail src]# file /usr/local/topspin/lib64/libvapi.*
/usr/local/topspin/lib64/libvapi.a: current ar archive
/usr/local/topspin/lib64/libvapi.so: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped

    Hi Henk,

        Can you create a symbolic link that points /usr/local/topspin/mpi/mpich/bin/mpif90 to /usr/local/topspin/mpi/mpich/bin/mpif90.i

        And then try running configure again and then make clean / make parallel.

        Configure calls mpif90 as part of the configuration to find out where all the libraries are and below it didn't manage to run it because your mpif90 is actually called mpif90.i

        Then get back to me with the next problem and we can work from there.

        All the best
        Ross
        /\
        \/
        |\oss Walker

        | HPC Consultant and Staff Scientist |
        | San Diego Supercomputer Center |
        | Tel: +1 858 822 0854 | EMail:- ross_at_rosswalker.co.uk |
        | http://www.rosswalker.co.uk | PGP Key available on request |

        Note: Electronic Mail is not secure, has no guarantee of delivery, may not be read every day, and should not be used for urgent or sensitive issues.

----------------------------------------------------------------------
          From: owner-amber_at_scripps.edu [mailto:owner-amber_at_scripps.edu] On Behalf Of Henk Meij
          Sent: Monday, June 11, 2007 12:04
          To: amber_at_scripps.edu
          Subject: Re: AMBER: amber9 compile problem

          Ross, here it is.
          -Henk

 1001 cd /share/apps/amber/
 1002 mkdir 9_ifort
 1003 cd 9_ifort/
 1004 tar zxf /share/apps/src/amber9.tgz
 1005 mv amber9/* .
 1006 rmdir amber9/
 1007 sh < /share/apps/src/amber9_bugfix.cmd
 1008 cd src
 1009 export PATH=/usr/local/topspin/mpi/mpich/bin:$PATH
 1010 export MPI_HOME=/usr/local/topspin/mpi/mpich
 1011 export AMBERHOME=/share/apps/amber/9_ifort
 1012 export MKL_HOME=/share/apps/intel/cmkl/9.1

[root_at_swallowtail]# which mpif90.i
/usr/local/topspin/mpi/mpich/bin/mpif90.i
[root_at_swallowtail]# which ifort
/share/apps/intel/fce/9.1.043/bin/ifort

[root_at_swallowtail]# ./configure -mpich ifort_x86_64

AMBERHOME is set to /share/apps/amber/9_ifort
Setting up Amber configuration file for architecture: ifort_x86_64
Using parallel communications library: mpich
MPI_HOME is set to /usr/local/topspin/mpi/mpich
./configure: line 300: /usr/local/topspin/mpi/mpich/bin/mpif90: No such file or directory
MKL_HOME is set to /share/apps/intel/cmkl/9.1
Using MKL libraries from /share/apps/intel/cmkl/9.1/lib/em64t

"make parallel" yields an error when compiling
"ifort -FR -o sander.MPI evb_vars.o ..."

evb_init.o(.text+0x69e): In function `evb_init_':
: undefined reference to `mpi_bcast_'
-lots of these-

i've seen dac's fix for this but adding -fsecond-underscore does not fix the problem.
meaning i have to have clean source code for topspin and compile with -fno-secoond-underscore?

-Henk
    

-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber_at_scripps.edu
To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu