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
[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
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 ... ...
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
CHARMM Documentation / Rick_Venable@nih.gov