csrunner [OPTIONS] <jdf>
CSRunner (Cycle Scavenging Runner) is designed for running parameter sweep applications at a low priority without being in the way of regular grid users or local users. It uses SSH and DRMAA to perform job submissions. It first submits launchers (pilot jobs) to the execution sites, and the launchers pull jobs from the CSRunner to execute them. For the details of the CSRunner please see this paper.
-h, --help: show this help message and exit
-mMAX_NODES, --max_nodes=MAX_NODES: when set to any value higher than 0, it is the maximum number of nodes the job will claim. [default=unlimited]
-sSTATE, --state=STATE: indicates the name of a state .dat file that includes unfinished commands from a previous run. [default=None]
-vVERBOSITY, --verbosity=VERBOSITY: sets the verbosity level of printed runner output. 0 is silent mode, 1 shows only standard output, 2 also shows errors, 3 also shows warnings. 4 shows only errors and warnings. [default=2]
-lLOGLEVEL, --loglevel=LOGLEVEL: sets the verbosity level of logged runner output. 0 is silent mode, 1 shows only standard output, 2 also shows errors, 3 also shows warnings. 4 shows only errors and warnings. [default=0]
-d, --debug: sets debug mode
-iINTERVAL, --interval=INTERVAL: the interval of state saves in seconds [default=150]
-t, --stats: sets whether runner statistics should be dumped at the end
-rRDIR, --remote_directory=RDIR: the remote directory to transfer the inputs and executables to run the job. A suffix is appended to this directory name which is the KOALA job number plus job try count. [default=cs_output]
In this example we run a simple parameter sweep which echos some integers specified by the range with the following job description:
<job name="echo_job">
<!--exclude>fs0.das3.cs.vu.nl</exclude-->
<exclude>fs2.das3.science.uva.nl </exclude>
<exclude>fs4.das3.science.uva.nl</exclude>
<exclude>fs3.das3.tudelft.nl</exclude>
<exclude>fs1.das3.liacs.nl</exclude>
<task executable="/bin/echo">
<parameter flag=" ">
<loop>
<start>1</start>
<end>3</end>
<step>1</step>
</loop>
</parameter>
</task>
</job>
The output for this run is here.
Here is another example that shows how to run the same executable with different input files:
<job name="cat_job">
<exclude>fs0.das3.cs.vu.nl</exclude>
<exclude>fs2.das3.science.uva.nl </exclude>
<exclude>fs4.das3.science.uva.nl</exclude>
<!--exclude>fs3.das3.tudelft.nl</exclude-->
<exclude>fs1.das3.liacs.nl</exclude>
<task executable="/bin/cat">
<parameter flag=" " type="inputfile">
<loop prefix="input_" suffix=".dat">
<start>1</start>
<end>2</end>
<step>1</step>
</loop>
</parameter>
</task>
</job>
When we submit this JDF with CSRunner, it runs two instances of the Unix cat command with input files "input_1.dat" and "input_2.dat". Here is the output of this run.