6.6. Monitor ROCOTO Run
Click here to view full rocoto documentation on GitHub
6.6.1. Using command line
You can use Rocoto commands with arguments to check the status of your experiment.
Start or continue a run:
rocotorun -d /path/to/workflow/database/file -w /path/to/workflow/xml/file
Check the status of the workflow:
rocotostat -d /path/to/workflow/database/file -w /path/to/workflow/xml/file [-c YYYYMMDDCCmm,[YYYYMMDDCCmm,...]] [-t taskname,[taskname,...]] [-s] [-T]
Note
YYYYMMDDCCmm = YearMonthDayCycleMinute …where mm/Minute is ’00’ for all cycles currently.
Check the status of a job:
rocotocheck -d /path/to/workflow/database/file -w /path/to/workflow/xml/file -c YYYYMMDDCCmm -t taskname
Force a task to run (ignores dependencies - USE CAREFULLY!):
rocotoboot -d /path/to/workflow/database/file -w /path/to/workflow/xml/file -c YYYYMMDDCCmm -t taskname
Rerun task(s):
rocotorewind -d /path/to/workflow/database/file -w /path/to/workflow/xml/file -c YYYYMMDDCCmm -t taskname
(If job is currently queued or running rocoto will kill the job. Run rocotorun afterwards to fire off rewound task.)
Set a task to complete (overwrites current state):
rocotocomplete -d /path/to/workflow/database/file -w /path/to/workflow/xml/file -c YYYYMMDDCCmm -t taskname
(Will not kill queued or running job, only update status.)
Several dates and task names may be specified in the same command by adding more -c and -t options. However, lists are not allowed.
6.6.2. Use ROCOTO viewer
An alternative approach is to use a GUI that was designed to assist with monitoring global workflow experiments that use ROCOTO. It can be found under the workflow
folder in global-workflow.
6.6.2.1. Usage
./rocoto_viewer.py -d /path/to/workflow/database/file -w /path/to/workflow/xml/file
Note
Note 1: Terminal/window must be wide enough to display all experiment information columns, viewer will complain if not.
Note 2: The viewer requires the full path to the database and xml files if you are not in your EXPDIR when you invoke it.
Note 3: Only TERM=xterm
is supported. You may wish to create a shell function to switch automatically if you are in a different terminal:
Bash example:
function rv {
oldterm=${TERM};
export TERM='xterm';
${PATH_TO_VIEWER}/rocoto_viewer.py $@;
export TERM=${oldterm};
}
6.6.2.2. What the viewer shows
The figure above shows a sample output from a Rocoto viewer for a running experiment. Where:
First column: cycle (YYYYMMDDCCmm, YYYY=year, MM=month, DD=day, CC=cycle hour, mm=minute)
Second column: task name (a “<” symbol indicates a group/meta-task, click “x” when meta-task is selected to expand/collapse)
Third column: job ID from scheduler
Fourth column: job state (QUEUED, RUNNING, SUCCEEDED, FAILED, or DEAD)
Fifth column: exit code (0 if all ended well)
Sixth column: number of tries/attempts to run job (0 when not yet run or just rewound, 1 when run once successfully, 2+ for multiple tries up to max try value where job is considered DEAD)
Seventh column: job duration in seconds