User guide » History » Version 13
- Table of contents
Larsoft common batch and workflow tools are contained in ups product
larbatch (this redmine), which is built and distributed as part of
larsoft. Larbatch tools are built on top of Fermilab
jobsub_client batch submission tools. For general information about jobsub_client and the Fermilab batch system, refer to articles on the jobsub wiki and the fife wiki.
No other part of larsoft is dependent on
larbatch is not setup as a dependent of the
larsoft umbrella ups product. Rather,
larbatch is intended to be a dependent of experiment-specific ups products (see this article for instructions on configuring
larbatch for a specific experiment.
After setting up ups product
larbatch, several executable scripts and python modules are available on the execution path and python path. Here is a list of the more important ones.
An executable python script that is the the main entry point for user interation. More information can be found below.
A python module, imported by
project.py, that implements some of the workflow functionality. End users would not normally interact directly with this module. However, a significant aspect of
project_utilities.pyis that is supplies hooks for providing experiment-specific implementations of some functionality, as described in an accompanying article on this wiki.
The main batch script.
Condor_lar.shis a general purpose script that manages a single invocation of an art framework program (
Condor_lar.shsets up the run-time environment, fetches input data, interacts with sam, and copies output data. It is not intended that end users will directly invoke
condor_lar.sh. However, one can get a general idea of the features and capabilities of
condor_lar.shby viewing the built-in documentation by typing "
condor_lar.sh -h, or reading the file header.
Batch script for starting a sam project.
Batch script for stopping a sam project.
Project.py is used in conjunction with a xml format project definition file. The concept of a project, as understood by
project.py, and as defined by the project definition file, is a multistage processing chain involving a specified number of batch workers at each stage.
The general structure of the project file is that it contains global options, a single project block (enclosed in "
<project name=project-name>...</project>"), and one or more processing stage blocks (enclosed in "
<stage name=stage-name>...</stage>" inside the project block.
In a typical invocation of
project.py, one specified the project file (via option
--xml), tha stage name (via option --stage), and one or more action options. Here are some use cases for invoking
Print built-in help (lists all available command line options).
Print build-in xml help (lists all available constructs that can be included in project definition file).