RE: AMBER: question about parallel simulation

From: Ross Walker <ross.rosswalker.co.uk>
Date: Wed, 1 Dec 2004 17:00:33 -0800

Hi Qiang,
 
You need to look for parameters beginning bc_ these tell the mpi code how
much broadcast.
 
So for this:
 
< rad(1000),wel(1000),radhb(1000),welhb(1000)
---
>       rad(100),wel(100),radhb(200),welhb(200)
at the top of box.h you see that bc_boxr=613 in the original code. This
means 613 reals in the boxr common block. So you need to change this to
bc_boxr=4013.
 
 
Next:
<    parameter (maxigr=500)
---
>    parameter (maxigr=200)
maxigr is defined in two files - nmrred.f and restal.f - I suggest that you
ensure you have changed both.
 
< parameter (extraboxdim=50.d0)
---
> parameter (extraboxdim=30.d0)
This one should be harmless.
 
< _REAL_ rk(40000),req(40000),tk(7000),teq(7000),pk(10000), &
<       pn(1200),phase(1200),cn1(40000),cn2(40000),solty(1000), &
<       gamc(1000),gams(1000),fmn(1000), &
<       asol(40000),bsol(40000),hbcut(40000)
---
> _REAL_ rk(5000),req(5000),tk(900),teq(900),pk(1200), &
>       pn(1200),phase(1200),cn1(1830),cn2(1830),solty(60), &
>       gamc(1200),gams(1200),fmn(1200), &
>       asol(200),bsol(200),hbcut(200)
This lot is in parms.h and is broadcast as a set of reals - length defined
by BC_PARMR in parms.h - you will need to recalculate the size of this based
on the number of reals in the common block after your changes.
 
<          nphb > 40000 .or. natyp > 500 .or. nttyp > 40000) then
---
>          nphb > 200 .or. natyp > 60 .or. nttyp > 1830) then
This should be harmless.
 
< common/p14/ cn114(40000),cn214(40000)
< common/ub/rkub(40000),rub(40000)
---
> common/p14/ cn114(1830),cn214(1830)
> common/ub/rkub(900),rub(900)
Again, from parms.h - this is going to require more work on your part as
these two common blocks are not set up for use in parallel since (CHARMM)
support is not implemented in parallel. You will need to broadcast these
common blocks by modifying parallel.f. Similarly you will need to define a
bc_ parameter for the two common blocks. You may also need to check other
parts of the code where the variables defined in these two common blocks are
used to check that they are dealt with in parallel correctly.
 
<    parameter (maxpr = 10000000)
---
>    parameter (maxpr = 5000)
This is defined in both r6ave.f and r6drv.f make sure you change it in both
places.
 
I hope this helps.
All the best
Ross
/\
\/
|\oss Walker
| Department of Molecular Biology TPC15 |
| The Scripps Research Institute |
| Tel:- +1 858 784 8889 | EMail:- ross.rosswalker.co.uk |
|  <http://www.rosswalker.co.uk/> http://www.rosswalker.co.uk/ | PGP Key
available on request |
 
-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber.scripps.edu
To unsubscribe, send "unsubscribe amber" to majordomo.scripps.edu
Received on Thu Dec 02 2004 - 01:53:00 PST
Custom Search