Using the Grid/Job requirements

From BiGGrid Wiki
Jump to navigation Jump to search
  • Problem: you want to specify conditions or constraints on the machines which execute your job.
  • Solution: use the Requirements attribute in your JDL description.

If you have jobs which have specific requirements you can mention these in your job description. For example, you want the machines on which your job runs to have special libraries, or special hardware. Such requirements can all be specified.

In this example a job will be executed on a resource which is publishing the Tag nl.vl-e.poc-release-2.1. This indicates that the software stack of the VL-e project is running there. (In this example the software is not useful at all). Now create a file called hostnamereq2.jdl

$ cat hostnamereq2.jdl

Type="Job";
JobType="Normal";

Executable = "/bin/sh";
Arguments = "start_hostname.sh";

StdError = "stderr.log";
StdOutput = "stdout.log";

InputSandbox = "start_hostname.sh";
OutputSandbox = {"stderr.log", "stdout.log"};

Requirements =  (Member("nl.vl-e.poc-release-2",other.GlueHostApplicationSoftwareRunTimeEnvironment));
ShallowRetryCount = 3;

This job will only land on CE's which publish the VL-e poc distribution, as required. Submit this job and verify the correct behaviour. You can have a look here to see the TAGS which can be used for selection.


Reference: More on JDL at: https://edms.cern.ch/file/590869/1/EGEE-JRA1-TEC-590869-JDL-Attributes-v0-9.pdf.