CHARMM c42b2 csa.doc



File: csa -=- Node: Top
Up: (chmdoc/cas.doc) -=- Next: Syntax


          Distributed CSA (Conformational Space Annealing) Command

1. The distributed CSA commands will be based on the recent
MSCALE commands in CHARMM.  The MSCALE commands allow diverse components
of a single hamiltonian to be calculated on additional processors.

2. The CSA module will distribute a repetitive workload of many processors.
It will consist of a series of commands, some on the the master and
some on the slaves.  Slaves can be setup as CHARMM scripts, or run
as other separate utility programs.

* Menu:

* Syntax::      Suggested syntax
* Example::     Sample CHARMM slave script
* Notes::       Additional notes



File: csa -=- Node: Syntax
Up: Top -=- Previous: Top -=- Next: Example


[Suggested syntax]

--------ON THE MASTER--------

MASTer -                          ! Use this processor as a master
        [ NSUBsystems integer ] -  ! How many slaves to generate  
(typ. 50)
        [ PROGram filename ]   -   ! What program to run the slaves  
with (typ. CHARMM)
        [ NPROC integer ] -        ! How many processors each slave  
will use (def. 1)
        atom-selection -           ! ?? Which atoms will participate  
(def. all)
        [ INPUt filename ] -       ! Input script for each slave
        [ OUTPut filename ]        ! Output file from each slave

CSA  -          ! The Conformational Space Annealing command
        [  ] -   ! Details to be worked out and implemented
        [  ] -
        [  ]

ETRAjectory   ! Compute the frame by frame energy of a trajectory file.

SYSDisplay   !  Display the info about the whole setup

--------ON THE SLAVES--------

RECEive -                 ! Receive data and coordinates from the Master
         [ IFDOne word ] - ! Where to go if exit condition is received
         [ repeat(flags) ]

TRANsmit -                ! Send back energies to the Master
         [ COORdinates ] - ! Send back coordinates too
         [ FORCes ] -      ! Send back forces too
         [ DATA ]          ! ??  Send back other data




File: csa -=- Node: Example
Up: Top -=- Previous: Syntax -=- Next: Notes



Sample CHARMM Slave Script

...
(setup PSF and stuff)
...
LABEL LOOP
RECEIVE  IFDONE NEXT  flag1 flag2
IF @flag1 .eq. 1 THEN MINI SD 50  ...
MINI ABNR 200 ...
if @flag2 .eq. 1 THEN print energy unit 22
TRANSMIT COORDINATES
GOTO LOOP

LABEL NEXT
...
...



File: csa -=- Node: Notes
Up: Top -=- Previous: Example -=- Next: Top


Additional Notes

Slaves should send a semaphore when ready to receive.
Communication should be non-blocking in general.  The master should
not assume that all slaves will take the same amount of time.

Details for the high level FORTRAN CALLS for master-slave
communication need to be worked out (a job for Milan).

Suggestion for development:
Develop the ETRAJ command first.  This will have all of the basic
communication calls, and can be used as a base by the CSA developers.
The ETRAJ command may proves useful as a stand alone tool...

Check syntax above for possible conflicts with other developments


NIH Helix/Biowulf Systems
charmm.org Homepage

CHARMM Documentation / Rick_Venable@nih.gov