you are trying to use an MPI function, but PLUMED has been compiled without MPI support (plumed-2.0-beta and gromacs-4.6.1)

2,399 views
Skip to first unread message

cand...@gmail.com

unread,
May 7, 2013, 8:20:33 PM5/7/13
to plumed...@googlegroups.com
Hello,

I am having trouble compiling gromacs 4.6.1 to work with plumed-2.0-beta and MPI. I wonder if there is a compilation switch somewhere to compile PLUMED 2.0 with MPI other than simply having those libaries available at compile-time?

I can compile successfully and run in serial, but with MPI I always get the following error:

+++ Internal PLUMED error
+++ file Communicator.cpp, line 96
+++ message: you are trying to use an MPI function, but PLUMED has been compiled without MPI support

I compile plumed like this:
module purge
module load intel/13.1.1 openmpi/intel/1.6.4
./configure.sh
make

## Note that lapack is not available on this cluster, so before running make I need to edit configurations/linux.icc and replace:
DYNAMIC_LIBS=-lstdc++ -llapack -lblas
with:
DYNAMIC_LIBS=-lstdc++ -mkl

THen I source sourceme.sh and patch gromacs 4.6.1 source with "plumed patch -p"

Then I compile gromacs in parallel like this:

module purge
module load gcc/4.6.1
module load cmake/2.8.6
module load intel/13.1.1
module load openmpi/intel/1.6.4
export FFTW_LOCATION=/project/p/pomes/cneale/GPC/exe/intel/fftw-3.1.2_centos6computeA/exec
cmake ../source__B/ \
      -DCMAKE_PREFIX_PATH=$FFTW_LOCATION \
      -DCMAKE_INSTALL_PREFIX=$(pwd) \
      -DGMX_X11=OFF \
      -DCMAKE_CXX_COMPILER=mpicxx \
      -DCMAKE_C_COMPILER=mpicc \
      -DGMX_MPI=ON \
      -DGMX_PREFER_STATIC_LIBS=ON
make mdrun
make install-mdrun

And that installation goes fine.

But when I try to run, I get the error noted above. I run like this:

module load intel/13.1.1
module load openmpi/intel/1.6.4
mpirun -np 4 /project/p/pomes/cneale/GPC/exe/intel/gromacs-4.6.1_plumed2.0/exec2/bin/mdrun_mpi -deffnm test -dlb yes -npme -1 -cpt 60 -maxh 0.1 -px test.pull.pos.xvg -pf test.pull.force.xvg -xvg none -plumed plumed.dat 

and I get the error message noted above, namely:

+++ Internal PLUMED error
+++ file Communicator.cpp, line 96
+++ message: you are trying to use an MPI function, but PLUMED has been compiled without MPI support


I also tried to compile gromacs with thread-MPI (=without MPI) and again it worked with -mdrun -nt 1 but not with mpirun -nt 2, for which it gave the same error about PLUMED not being compiled with MPI.

Finally, if I use these patched compilations without the -plumed flag to mdrun, then they work just fine.

Thank you for your assistance.

Giovanni Bussi

unread,
May 8, 2013, 2:59:20 AM5/8/13
to plumed...@googlegroups.com
Hi,

PLUMED (both 1.3 and 2.0) are not compatible with thread-MPI, so you have to use normal MPI for gromacs (as you already guessed).

Then you should also compile PLUMED with MPI. Select the proper configuration file (likely linux.mpi.icc).

Regards,

Giovanni



--
You received this message because you are subscribed to the Google Groups "PLUMED users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to plumed-users...@googlegroups.com.
To post to this group, send email to plumed...@googlegroups.com.
Visit this group at http://groups.google.com/group/plumed-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

riccard...@gmail.com

unread,
Oct 28, 2013, 4:48:59 AM10/28/13
to plumed...@googlegroups.com
Hi,

I'm having the same problem that you seemed to be able to solve (plumed not being able to run in parallel, though it was compiled with mpi). Did you have to recompile gromacs with normal MPI, or is there any option of mdrun to set? 

Thanks


On Wednesday, May 8, 2013 8:29:09 PM UTC+2, Chris Neale wrote:
Seems so obvious in retrospect. Thanks for the help Giovanni. I got it compiled in parallel.

Carlo Camilloni

unread,
Oct 28, 2013, 5:01:19 AM10/28/13
to plumed...@googlegroups.com
Hi Riccardo,

you need to 

1) compile plumed with mpi
2) patch gromacs with plumed
3) create a folder where to build gromacs
4) from the folder you can do something like that:

cmake “where gromacs is”  -DGMX_CPU_ACCELERATION=AVX_256  -DCMAKE_INSTALL_PREFIX=“where to install gromacs" -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_C_COMPILER=/usr/bin/gcc -DGMX_MPI=ON -DGMX_FORCE_CXX=ON -i

so the important flag here is :  -DGMX_MPI=ON which will automatically turn ON mpi and turn OFF multithreading.

Best,
Carlo






--
You received this message because you are subscribed to the Google Groups "PLUMED users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to plumed-users...@googlegroups.com.
To post to this group, send email to plumed...@googlegroups.com.

riccard...@gmail.com

unread,
Oct 28, 2013, 7:16:21 AM10/28/13
to plumed...@googlegroups.com
Thanks Carlo!

the option  -DGMX_MPI=ON fixed my problem!

Riccardo
Reply all
Reply to author
Forward
0 new messages