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

Topic revision: r2 - 2010-11-30 - MassimoSgaravatto
 
This site is powered by the TWiki collaboration platformCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback