back to Table of Contents

15. Batch jobs

If several independent EGAD jobs need to be run, possibly on several hosts, the batch option may be used:
EGAD.exe batch list_of_inputfiles

The list_of_inputfiles file is simply a list of inputfiles (end the file w/ newline). For example:
my_favorite_mutant.input
/blah/path/repack_core.input
core_design.input

This is equivalent to running a script:
EGAD.exe my_favorite_mutant.input
EGAD.exe /blah/path/repack_core.input
EGAD.exe core_design.input


EGAD will make a inputfile.working copy of the inputfile, launch a slave job to run it, then delete the working inputfile copy. The success and failure of each job is recorded in list_of_inputfiles.log. After all the jobs are completed (assayed by the presence of the output pdb file for each job), the master will exit.

The batch mode makes parallelization very simple. If one wishes to use multiple cpus to process an inputfile list, all that has to be done is to launch independent batch jobs with the same list of inputfiles file. Each of these masters will check whether a particular inputfile is being worked on (by the existence if a .working file), or is completed (by the existence of the appropriate .pdb file) and work on it. For example
EGAD.exe batch list_of_inputfiles &
EGAD.exe batch list_of_inputfiles &
launches two independent master processes. Each master will read list_of_inputfiles, and launch the first inputfile that is not being worked on by another process or has already been completed. This can be done with any number of independent master processes, as long as all can access the same directory.

The source code dealing with batch jobs is in batch_jobs.cpp.

back to Table of Contents