== Workflow interpreter and processor
flow.rb is a utility for running job workflows in
DRMAA-compliant DRM systems. Workflows are specified in
flowfiles that allow expression of
* concurrent and sequential execution of sub-flows
* multiple runs of sub-flows with varying parameter sets
* actual jobs are defined in terms of DRMAA attributes
in addition any subflow or sets of subflows can be run
as used with make(1) by specifying it as target.
=== Job defaults
To minimize the extent of attributes necessarily
specified in flowfiles, flow.rb provides defaults for
jobs' command path, stdout/stdin path, current working
directory and job name.
=== Workflow verification
The -verify option can be used to print dependencies and
job attributes for diagnosis purposes. To ensure each
workflow job can be run, a number of verifications is
performed before the first job gets submitted.
=== Job streaming
Large workflows are automatically run in job streaming mode
upon DRM saturation and a job maximum can be set in .flowrc.rb
to place an upper limit of jobs be kept concurrently in the
DRM for each workflow.
=== Pre-submission plug-in
Enforcement of site-specific policies can easily be
achieved through pre-submission procedures that allow
any job attribute to be modified freely.