Job Description Language (JDL)

Slides:



Advertisements
Similar presentations
FP62004Infrastructures6-SSA E-infrastructure shared between Europe and Latin America Special Jobs Claudio Cherubino INFN Catania.
Advertisements

EGEE is a project funded by the European Union under contract IST EGEE Tutorial Turin, January Hands on Job Services.
INFSO-RI Enabling Grids for E-sciencE Workload Management System and Job Description Language.
FESR Consorzio COMETA - Progetto PI2S2 The gLite Workload Management System Annamaria Muoio INFN Catania Italy
E-infrastructure shared between Europe and Latin America 12th EELA Tutorial for Users and System Administrators Architecture of the gLite.
INFSO-RI Enabling Grids for E-sciencE EGEE Middleware The Resource Broker EGEE project members.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Job Submission Fokke Dijkstra RuG/SARA Grid.
Special Jobs Claudio Cherubino INFN - Catania. 2 MPI jobs on gLite DAG Job Collection Parametric jobs Outline.
EGEE-II INFSO-RI Enabling Grids for E-sciencE International Summer School on Grid Computing 2006 gLite Information System and Workload.
FP6−2004−Infrastructures−6-SSA E-infrastructure shared between Europe and Latin America Special Jobs Matias Zabaljauregui UNLP.
The EPIKH Project (Exchange Programme to advance e-Infrastructure Know-How) WMPROXY API Python & C++ Diego Scardaci
The gLite API – PART I Giuseppe LA ROCCA INFN Catania ACGRID-II School 2-14 November 2009 Kuala Lumpur - Malaysia.
Enabling Grids for E-sciencE Workload Management System on gLite middleware Matthieu Reichstadt CNRS/IN2P3 ACGRID School, Hanoi (Vietnam)
INFSO-RI Enabling Grids for E-sciencE Workload Management System Mike Mineter
1 Esther Montes Prado CIEMAT 10th EELA Tutorial Madrid, Hands-on on WMS (Review and Summary)
EGEE-III INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks gLite job submission Fokke Dijkstra Donald.
INFSO-RI Enabling Grids for E-sciencE The gLite Workload Management System Elisabetta Molinari (INFN-Milan) on behalf of the JRA1.
SEE-GRID-SCI The SEE-GRID-SCI initiative is co-funded by the European Commission under the FP7 Research Infrastructures contract no.
EGEE-III INFSO-RI Enabling Grids for E-sciencE Feb. 06, Introduction to High Performance and Grid Computing Faculty of Sciences,
EGEE is a project funded by the European Union under contract IST Job Description Language - more control over your Job Assaf Gottlieb University.
Architecture of the gLite WMS (Workload Management System) Hands-on Paola Celio Universita’ Roma TRE INFN Roma TRE Sevilla Septembre 2007.
EGEE is a project funded by the European Union under contract IST EGEE Tutorial Turin, January Job Services Emidio.
Job Management DIRAC Project. Overview  DIRAC JDL  DIRAC Commands  Tutorial Exercises  What do you have learned? KEK 10/2012DIRAC Tutorial.
INFSO-RI Enabling Grids for E-sciencE Workflow Management in Giuseppe La Rocca INFN – Catania ICTP/INFM-Democritos Workshop on Porting.
FP7-INFRA Enabling Grids for E-sciencE EGEE Induction Grid training for users, Institute of Physics Belgrade, Serbia Sep. 19, 2008.
INFSO-RI Enabling Grids for E-sciencE Claudio Cherubino, INFN Catania Grid Tutorial for users Merida, April 2006 Special jobs.
High-Performance Computing Lab Overview: Job Submission in EDG & Globus November 2002 Wei Xing.
INFSO-RI Enabling Grids for E-sciencE Job Workflows with gLite Emidio Giorgio INFN NA4 Generic Applications Meeting 10 January 2006.
EGEE-II INFSO-RI Enabling Grids for E-sciencE Workload management in gLite 3.x - MPI P. Nenkova, IPP-BAS, Sofia, Bulgaria Some of.
INFSO-RI Enabling Grids for E-sciencE Job Submission Tutorial (material from INFN Catania)
Workload Management System Jason Shih WLCG T2 Asia Workshop Dec 2, 2006: TIFR.
INFSO-RI Enabling Grids for E-sciencE Job Description Language (JDL) Giuseppe La Rocca INFN First gLite tutorial on GILDA Catania,
INFSO-RI Enabling Grids for E-sciencE GILDA Praticals Giuseppe La Rocca INFN – Catania gLite Tutorial at the EGEE User Forum CERN.
EGEE is a project funded by the European Union under contract IST Job Description Language – How to control your Job Nadav Grossaug IsraGrid.
E-infrastructure shared between Europe and Latin America FP6−2004−Infrastructures−6-SSA Special Jobs Valeria Ardizzone INFN - Catania.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks WMS tricks & tips – further scripting Giuseppe.
EGEE-II INFSO-RI Enabling Grids for E-sciencE Practical using WMProxy advanced job submission.
EGEE 3 rd conference - Athens – 20/04/2005 CREAM JDL vs JSDL Massimo Sgaravatto INFN - Padova.
Biomed tutorial 1 Enabling Grids for E-sciencE INFSO-RI EGEE is a project funded by the European Union under contract IST JDL Flavia.
FESR Consorzio COMETA - Progetto PI2S2 Job Description Language (JDL) Marcello Iacono Manno PRIMO TUTORIAL.
Istituto Nazionale di Astrofisica Information Technology Unit INAF-SI Job with data management Giuliano Taffoni.
Advanced gLite job management Paschalis Korosoglou, AUTH/GRNET EPIKH Application Porting School 2011 Beijing, China Paschalis Korosoglou,
The EPIKH Project (Exchange Programme to advance e-Infrastructure Know-How) Advanced Job Riccardo Rotondo
Introduction to Computing Element HsiKai Wang Academia Sinica Grid Computing Center, Taiwan.
Introduction to Job Description Language (JDL) Alessandro Costa INAF Catania Corso di Calcolo Parallelo Grid Computing Catania - ITALY September.
Enabling Grids for E-sciencE Work Load Management & Simple Job Submission Practical Shu-Ting Liao APROC, ASGC EGEE Tutorial.
FESR Trinacria Grid Virtual Laboratory Practical using WMProxy advanced job submission Emidio Giorgio INFN Catania.
Practical using C++ WMProxy API advanced job submission
Architecture of the gLite WMS
Workload Management System on gLite middleware
Special jobs with the gLite WMS
gLite Advanced Job Management
The gLite Workload Management System
Corso di Calcolo Parallelo Grid Computing
EGEE tutorial, Job Description Language - more control over your Job Assaf Gottlieb Tel-Aviv University EGEE is a project.
Alexandre Duarte CERN Fifth EELA Tutorial Santiago, 06/09-07/09,2006
Workload Management System
Job Description Language
gLite Job Management Mario Reale GARR
5. Job Submission Grid Computing.
Special Jobs: MPI Alessandro Costa INAF Catania
gLite Advanced Job Management
gLite Job Management Amina KHEDIMI CERIST
The gLite Workload Management System
Workload Management System (WMS) & Job Description Language (JDL)
gLite Job Management Christos Theodosiou
Job Description Language
GENIUS Grid portal Hands on
Hands on Session: DAG Job Submission
Job Submission M. Jouvin (LAL-Orsay)
Presentation transcript:

Job Description Language (JDL) Valeria Ardizzone INFN EGEE User Tutorial Johannesburg, 28-29 March 2008

The JDL language The Job Description Language (JDL) describes jobs for execution on Grid. The JDL adopted within the gLite middleware is based upon Condor’s CLASSified Advertisement language (ClassAd). A ClassAd is a record-like structure composed of a finite number of attributes separated by semi-colon (;) A ClassAd is highly flexible and can be used to represent arbitrary services The JDL file is processed by the “Match-making process” to select the best resource that satisfy the job’s requirements

The JDL language The JDL file lines have the format : Attribute = expression; 2 categories of attributes: Job Attributes define the job itself Resources indicate the job constraints in terms of: Computing Resource Data and Storage resources Comments are indicated by # or // The JDL is sensitive to blank characters and tabs. No blank characters or tabs should follow the semicolon at the end of a line.

JDL : basic attributes In a JDL, some attributes are mandatory while others are optional. An “essential” JDL is the following: Type -> is a string representing the type of the request described by the JDL JobType -> is a string representing the type of the job described by the JDL Executable -> is a string representing the executable/command name Arguments -> is a string containing all the job command line arguments StdInput -> is a string representing the standard input of the job. StdOutput and -> is a string representing the standard output and error of the job. StdError InputSandbox -> is a string or a list of strings identifying the list of files on the UI local file system or on an accessible gridFTP server OutputSandbox -> is a string or a list of strings identifying the list of files generated by the job on the WN at runtime, which the user wants to retrieve Requirements -> it represents job requirements on resources. Rank -> is a ClassAd Floating-Point expression that states how to rank CEs that have already met the Requirements expression. RetryCount -> is an integer representing the maximum number of deep job re-submissions to be done in case of failure

JobType JobType = < string > “Normal” a simple job “Interactive” a job whose standard streams are forwarded to the submitting client “MPICH” a MPI parallel job “Partitionable” a job composed by a set of independent steps / iterations for parallel execution “Checkpointable” a job able to save its state in order to be suspended and resumed from the same point “Parametric” a job with parametric attributes in its JDL to submit many similar instances with a single command (only parameterized attributes vary)

Example: Job Normal $> cat hostname.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”}; RetryCount = 7; $> cat start_hostname.sh #!/bin/sh sleep 5 hostname –f

JDL : Requirements Requirements (mandatory) Job requirements on Grid resources (CE,SE,…) Evaluation performed by the Match Maker Specified using attributes published by the Information Service If not specified, the default value is: Requirements = other.GlueCEStateStatus == "Production“; Examples: Requirements = other.GlueCEUniqueID == “adc006.cern.ch:2119/jobmanager-pbs-infinite” Requirements = Member(“ALICE-3.07.01”, other.GlueHostApplicationSoftwareRunTimeEnviron ment); Requirements = other.GlueCEInfoTotalCPUs > 2 && other.GlueCEPolicyMaxRunningJobs < 2;

JDL : Rank Rank (mandatory) Floating-Point expression used to rank CEs that have already met the Requirements expression. can contain attributes that describe the CE in the Information System (IS). evaluation performed by the Resource Broker (RB) during the match-making phase. A higher numeric value equals a better rank. If not specified, the default value is: Rank = -other.GlueCEStateEstimatedResponseTime; E.g.: Rank = other.GlueCEStateFreeCPUs;

Example: sphere.jdl $> cat sphere.jdl #author: giuseppe.larocca@ct.infn.it Type = "Job"; JobType = "Normal"; Executable = "/bin/sh"; MyProxyServer="lxshare0207.cern.ch"; StdOutput = "sphere.out"; StdError = "sphere.err"; InputSandbox = {"start_sphere.sh","sphere1.pov","sphere1.ini"}; OutputSandbox = {"sphere.out","sphere.err","final_sphere.gif"}; RetryCount = 7; Arguments = "start_sphere.sh"; Requirements = Member("POVRAY-3.5",other.GlueHostApplicationSoftwareRunTimeEnvironment);

Example: pds2jpg-ASAR-Demo.jdl $> cat pds2jpg-ASAR-Demo.jdl [ VirtualOrganisation = "gilda"; Executable = "/bin/bash"; Arguments = "pds2jpg_ASAR_install.sh ASA_APG_1PXPDE20020819_093043_000000152008_00394_02452_0000"; StdOutput = "pds2jpg_ASAR.out"; StdError = "pds2jpg_ASAR.err"; OutputSandbox = { "ASA_APG_1PXPDE20020819_093043_000000152008_00394_02452_0000-b1.jpg", "ENVISAT_Product_courtesy_of_European_Space_Agency", "pds2jpg_ASAR.out", "pds2jpg_ASAR.err“ }; RetryCount = 3; JobType = "normal"; Type = "Job"; InputSandbox = {"./pds2jpg_ASAR_install.sh","./beam20.tar.gz"}; rank = (-other.GlueCEStateEstimatedResponseTime); requirements = (other.GlueCEStateStatus=="Production") ]

Parametric Jobs (1/2) Job = “Parametric” results in the submission of sets of identical jobs except for a parameter varying from a job to another each job receives a different jobID so… it is possible to trace it separately from the others but… parametric job handle allows a common treating a special variable (_PARAM_) marks variable items amongst JDL attributes _PARAM_ assumes numerical values or a list of declared values (strings)

Parametric Jobs (1/2) Parameters = < Integer | list of strings > an Integer to indicate the number of steps or a list of strings (each of them is the name of a step) ParameterStart, ParameterStep = < Integer > ParameterStart indicates the initial step ParameterStep indicates the amount of increment between two subsequent values of _PARAM_ NodesCollocation = < Boolean > if true all the job instances are sent to the same CE

a Job a DAG a Collection a a a b c d b c d e node dependency e Request types Type = < string > “Job” a simple job (default) “DAG” a Direct Acyclic Graph of dependent jobs “Collection” a set of independent jobs a Job a DAG a Collection a a a b c d b c d e node dependency e

Collections A job Collection is a set of independent jobs that for some reasons (known to the user) have to be submitted, monitored and controlled as a single request. A B C [ Type = "collection"; InputSandbox = { "input_common1.txt","input_common2.txt" }; nodes = { [ JobType = "Normal"; NodeName = "node1"; Executable = "/bin/sh"; Arguments = "script_node1.sh"; InputSandbox = {"script_node1.sh", root.InputSandbox[0] }; StdOutput = "myoutput1"; StdError = "myerror1"; OutputSandbox = {"myoutput1","myerror1"}; ], [ JobType = "Normal"; . . . ] }; ]

DAG (1/2) A DAG (directed acyclic graph) represents a set of jobs where the input, output, or execution of one or more jobs depends on one or more other jobs. The jobs are nodes (vertices) in the graph and the edges (arcs) identify the dependencies. Type=“dag”; nodes = [ a= [ description = [ JobType=“Normal”; Executable=“e.exe”; InputSandBox={…}; ] ] b=[ file=node.jdl; ] ] A B D C E F

DAG (2/2) max_running_nodes = < intero > dependencies = < lista di liste of stringhe > is a list of lists representing the dependencies between the nodes of the DAG described in the nodes attribute. syntax: { { a, b }, { a, c }, { a, d } , { c, e }, { d, e } } example: dependencies = { { A, {B, C, D} }; // i nodi “B”, “C” e “D” dipendono da “A” { B, F } { {C, D}, E }; { E, F }; }; A B D C E F max_running_nodes = < intero > is an integer greater than zero representing the maximum number of nodes of a DAG that can be submitted by DAGMan at a given time.

References EGEE User Guide https://edms.cern.ch/file/722398//gLite-3- UserGuide.pdf JDL Attributes https://edms.cern.ch/file/555796/1/EGEE-JRA1-TEC- 555796-JDL-Attributes-v0-9.pdf Exercises on GILDA Wiki: