Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The lsf callback application is called once when the lsf task starts and once when it finishes. When started, it updates the run table with the information about the start time. Additionally, it checkes the callback table to determine if the higher layers wish to be notified when the job has started. If so, it calls the callback command to notify the higher levels. When called for a task that has finished. The callback system checks the lsf output, parses some of the information, like the return code, and stores that information in the run, job, and output tables. Additionally, it checks for any callback information for the higher layers.

Workflow

The Workflow system is a rule based script execution system. Each script is considered a stage in the workflow. The workflow moves from one stage to the next by evaluating rules set forth for each stage. The rules and stages for the workflow are stored in a database on mysql-node03. The workflow consists of a static library and a single executable. The library is used by other systems that wish to use the workflow for initial submission and controlling various settings of the workflow runs. The executable is run after each stage of the workflow finishes execution in the batch submission system described above. It computes which new stages need to be executed based on the rules described for the finished stage.

Database

The database is stored on mysql-node03 and the database name is rd_workflow. The database contains the following tables

Code Block

+-----------------------+
| Tables_in_rd_workflow |
+-----------------------+
| batchOpts             |
| batchOptsOverride     |
| conditions            |
| run                   |
| runArgs               |
| runScripts            |
| runScriptsOverride    |
| runSettings           |
| settings              |
| workflowScripts       |
| workflows             |
+-----------------------+

Each table performs a unique function as follows

  • settings – This table contains name/value pairs of settings for the workflow system.
  • workflows – This table contains a list of workflows registered.
  • workflowScripts – This table contains a list of all the scripts (aka stages) for a particular registered workflow.
  • conditions – This table lists all the conditions for a particular stage and what next stage to execute if condition evaluates to true.
  • batchOpts – This table contains a name/value pair of batch options to pas to the batch submission system for a particular stage.
  • run – This table contains the information for an actual execution of a workflow.
  • runScripts – This table contains which stage(s) are currently executing for a particular run.
  • runScriptsOverride – This table contains a few override settings of default stage settings such as which batch queue to execute.
  • runSettings – This table contains name/value pairs of settings to override for a particular run.
  • runArgs – This table contains the arguments to pass to the stages for a particular run.
  • batchOptsOverride – This table contains name/value pairs of batch options to override for a particular stage in a particular run.

Library

The static library for the workflow system contains a set of functions that allows C++ programs to create new workflow runs and for specifying settings for these runs. The source code and the available functions can be viewed in CVS and is also compiled and available at ~glastrm/grits-cpp/src. The library makes use of the Qt libraries and uses qmake as its build system. The Qt library currently used is version 4 and it's installed in ~glastrm/externals which is a set of symlinks using AFS @sys variable to the appropriate platform installation in nfs.

Executable

The workflow system has a single executable called workflowCallback. It is executed by the batch submission system when each stage starts executing and stops executing. When called for the start of the execution of a stage, it simply updates the mysql tables to indicate the start time. When executed to indicate the stop of execution of a stage, additionally it also checks the condition table to determine which, if any, other stages need to be executed. If new stages for execution are found they are submitted to the batch submission system and the cycle is repeated until a particular run has no more stages to execute.