Re: parallel sander

From: Sanjeev B.S. <>
Date: Wed 20 Jun 2001 21:39:23 +0400 (RET)

I also got same problem, but somehow did not pursue on that platform on
(some wierd computer) which I tested (it had other problems that could not
be resolved).
The following are some of the feedback that I got at that time.
Thanks again to all those who tried helping me.
MPICH uses a few extra flags to pass information to the application.
p4pg tells where the p4 procgroup file (automatically generated by mpirun)
is. Normally AMBER ignores the p4pg flag (see mdfil.f).

I would suggest you check your mdfil.f to make sure it skips p4pg.
Amber-6.0 should skip it, do you have a "test" version of AMBER6 or did
you change the source code in any way?

Can you check to see that you are doing a parallel/MPI
compile and link (make)?
Look in your MACHINE file for
setenv MACHINEFLAGS "stuff"

You should find some -Dxxxxxx preprocessor keysords.
If you do not see -DMPI, you are not getting a parallel compile
with MPI calls and libraries and thus you will only run
on one processor. Also, you will not be
getting the code to process the "-p4pg" flag which only
comes from mpich as far as I can tell.

If you are compiling with -DMPI, then I can help you further but will
need more information. Let me know....

I have had a similiar message on a Linux Cluster - on mt system it
was because I did not set the MPI_HOME path directory in the
Machine.g77mpich file.

See the mail below - Hope it helps

Chris Brown
> We are using MPICH 1.2.1 (P4 server with comm=shared) which works
> fine with all nodes running the test programs without a problem (eg
> pi3 etc with the /share/machine.linux files setup).

> > mpirun -np 10 /usr/local/amber6/exe/sander etc. etc.
> unknown flag:
> usage: sander [-O] -i mdin -o mdout -p prmtop -c inpcrd -r
> [-ref refc -x mdcrd -v mdvel -e mden -idip inpdip
> -rdip rstdip -mdip mddip -inf mdinfo -radii radii]

OK, this looks like you are using a fairly recent version of AMBER
(6.0?). The -p4pg flag is something that is put out by mpirun and passed
to sander; sander doesn't recognize this when it parses its command line
unless told to ignore it (mdfil.f). This is done if the C preprocessor
keyword "MPI" has been passed in at compile time... Given you are seeing
this, likely sander was not compiled for mpi properly...

Take a look at the $AMBERHOME/src/MACHINE file. You should see the
MACHINEFLAGS set to something like:

Also you will have to update the CPP and LOADLIB variables to properly
point to where your mpich version is:

setenv CPP "/lib/cpp -traditional

setenv LOADLIB "-lm
-L/usr/local/src/mpich/mpich-1.1.2/build/LINUX/ch_p4/lib/ -lmpi"

Dr Chris L. Brown
Look at mdfil.f, and make sure that the code that skips the -p4pg flag
is being compiled. If necessary, add that flag to your MACHINE file.

Various versions of mpirun silently generate extra flags, and sander
needs to know to ignore these. This is done in mdfil.f, and you may
need to modify that for your particular MPI implementation.

...hope this helps...dac

Hi Ambers,

When I run parallelled sander with the command :
mpirun -np 2 sander -O -i in -o ..

It turns out that
>>unknown flag: -p4pg
>> usage: sander [-O] -i mdin -o mdout -p prmtop -c inpcrd -r restrt
>> [-ref refc -x mdcrd -v mdvel -e mden -idip inpdip -rdip
>>rstdip -mdip mddip -inf mdinfo -radii radii]

I donot understand what is -p4pg .

Could you give me some hints ?

Received on Wed Jun 20 2001 - 10:39:23 PDT
Custom Search