The Flow.tcl File
The default name for a job description file is Flow.tcl. The first job description file you will write will define the same jobs that you registered interactively in the previous tutorial.
You should have a file called Flow.tcl in the simple_test directory. It will hold a Flow Description for the flow having four jobs that was built interactively before. Recall that this tutorial is using the cp command to emulate more complicated programs that process input to generate output.
% cat Flow.tcl
J vw cp bb cc
J vw cp cc dd1
J vw cp cc dd2
J vw cp aa bb
The sequence of the commands is deliberately in the "wrong" order from how you might enter them if you planned to run the programs yourself. You do not need to enter them in their dependency order.
The token 'J'
in this file is the name of a Tcl procedure, one of
those that comprise the Flow Description Language. J
means to
register a job into the flow. The job to register is the one whose command has been
passed as an argument, (the command is what follows on the line). The command is
what was typed in interactively in the earlier tutorial. The command calls the
wrapper program "vw" to establish that runtime tracing will be used. It passes the
wrapper the shell command that runs the job.
In this case we want our flow to contain 4 jobs. The jobs are in an arbitrary order, since FlowTracer has the ability to determine or discover the correct order.
The flow description can be this simple because it need not be concerned with issues like environment setup, job scheduling, job control, capturing of stdout and stderr, license checking, error checking, detection of parallelism, since all these services are automatically provided by FlowTracer. This means that a flow description file is typically several times smaller than an equivalent Makefile or shell script.