Job Description Language
The
Job Description Language (
JDL) is a high-level, user-oriented language based on Condor classified advertisements (classads) for describing jobs and aggregates of jobs such as Direct Acyclic Graphs (DAGs), Collections and Parametrics.
Being the JDL an extensible language the user is allowed to use whatever attribute for the description of a request without incurring in errors from the JDL parser. However, only a certain set of attributes, that we will refer as "supported attributes" from now on, is taken into account by the Workload Management System (WMS) components in order to schedule and submit a job or the jobs of a complex request.
JDL attributes represent request-specific information and specify in some way actions that have to be performed by the WMS to schedule the job or the jobs of a complex request.
Some of the attributes in the JDL are mandatory. If the user does not specify them, the WMS cannot handle the request. For the other attributes the system may find a default value if they are necessary for processing the request.
For more details please refer to the
JDL attributes specification document
.
JDL types
Job
A Job is the simplest JDL that can be submitted to the WMS. It is determined through the
Type attribute, which must be equal to
Job. The value for Type attribute is case insensitive. When not specified in the JDL, the WMS will set it to
Job.
Different kinds of job may be specified through the
JobType attribute: the WMS currently supports the following values:
- Normal: a simple batch job
- Parametric: a job whose JDL contains parametric attributes (e.g. Arguments, StdInput etc.) whose values can be made vary in order to obtain submission of several instances of similar jobs only differing for the value of the parameterized attributes
The value for JobType attribute is case insensitive. When not specified in the JDL, the WMS will set it to
Normal.
Here follow an example of a possible
JDL for a Normal job:
A very simple job:
[
Type = "job";
JobType = "normal";
Executable = "script.sh";
Arguments = "60";
VirtualOrganisation = "cms";
StdOutput = "sim.out";
StdError = "sim.err";
InputSandbox = {"file:///home/fpacini/GUI/sbin/script.sh"};
rank = (other.GlueCEPolicyMaxRunningJobs-other.GlueCEStateRunningJobs);
requirements = other.GlueCEStateStatus == "Production" ;
]
For Parametric Jobs please refer to the
relevant section
DAG
#DAGAnchor A
Direct Acyclic Graph (
DAG) is a set of jobs (sub-nodes) where the input, output, or execution of one or more jobs depends on one or more other jobs. The jobs are graph nodes (vertices), the edges (arcs) identify the dependencies.
Job Collection
Parametric Job
JDL attributes specification
For all the details about the
JDL, please refer to the
JDL attributes specification document
.
--
MassimoSgaravatto - 2010-11-29