Re: [AMBER] problem in running AMBER12 in GPU

From: Jason Swails <>
Date: Wed, 4 Sep 2013 10:56:20 -0400

On Wed, Sep 4, 2013 at 10:21 AM, Sanjib Paul <> wrote:

> Hello,
> Thanks for your valuable suggestion. After updating we are able to
> run AMBER12 (sander, pmemd, sander.MPI & pmemd.MPI, pmemd.cuda). But
> unfortunately when we are not able to install pmemd.cuda.MPI successfully.
> Those are few following errors which we are getting at the end of
> installation process.
> ./cuda/cuda.a(gpu.o): In function `MPI::Intracomm::Clone() const':
> gpu.cpp:(.text._ZNK3MPI9Intracomm5CloneEv[MPI::Intracomm::Clone()
> const]+0x27): undefined reference to `MPI::Comm::Comm()'
> ./cuda/cuda.a(gpu.o):gpu.cpp:(.text._ZNK3MPI9Intracomm5SplitEii[MPI::Intracomm::Split(int,
> int) const]+0x24): more undefined references to `MPI::Comm::Comm()' follow
> ./cuda/cuda.a(gpu.o):(.rodata._ZTVN3MPI3WinE[vtable for MPI::Win]+0x48):
> undefined reference to `MPI::Win::Free()'
> ./cuda/cuda.a(gpu.o):(.rodata._ZTVN3MPI8DatatypeE[vtable for
> MPI::Datatype]+0x78): undefined reference to `MPI::Datatype::Free()'
> collect2: ld returned 1 exit status
> make[3]: *** [pmemd.cuda.MPI] Error 1
> make[3]: Leaving directory `/home/test/amber12/src/pmemd/src'
> make[2]: *** [cuda_parallel] Error 2
> make[2]: Leaving directory `/home/test/amber12/src/pmemd'
> make[1]: *** [cuda_parallel] Error 2
> make[1]: Leaving directory `/home/test/amber12/src'
> make: *** [install] Error 2
> We are using cuda version 5.5 with openmpi 1.7.2 built with installed cuda.
> We did not understand what the problem is. Please give some suggestion.

It's likely that your MPI was not built with the appropriate support that
pmemd.cuda.MPI needs (make sure the MPI is built with C++ support, I
think). I've been using mpich2 (now just 'mpich') for some time and I've
never had a problem building pmemd.cuda.MPI before. Note, if you google
the last little bit of your error message:

./cuda/cuda.a(gpu.o):(.rodata._ZTVN3MPI8DatatypeE[vtable for
MPI::Datatype]+0x78): undefined reference to `MPI::Datatype::Free()'

it brings you to this link:

which provides useful things to try.

Try adding -lmpi_cxx to the PMEMD_CU_LIBS line in config.h. If that still
doesn't work, rebuild your MPI with C++ support. If you are unsure what to
do, use the configure_mpich2 script in $AMBERHOME/AmberTools/src to build
your own MPI (see the manual for instructions -- you need to download
mpich2 first to use it). You also need to set up PATH and LD_LIBRARY_PATH
so that "which mpif90" returns the version in $AMBERHOME/bin.


Jason M. Swails
Rutgers University
Postdoctoral Researcher
AMBER mailing list
Received on Wed Sep 04 2013 - 08:00:03 PDT
Custom Search