AMBER Archive (2004)

Subject: RE: AMBER: question about parallel simulation

From: Ross Walker (ross_at_rosswalker.co.uk)
Date: Wed Dec 01 2004 - 19:00:33 CST


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_at_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_at_scripps.edu To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu