INFSO-RI-508833 Enabling Grids for E-sciencE www.eu-egee.org Job Description Language (JDL) Giuseppe La Rocca INFN First gLite tutorial on GILDA Catania,

Slides:



Advertisements
Similar presentations
EGEE is a project funded by the European Union under contract IST EGEE Tutorial Turin, January Hands on Job Services.
Advertisements

EGEE is a project funded by the European Union under contract IST EGEE Tutorial Turin - ITALY 18 – 19 January 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
Job Submission The European DataGrid Project Team
Riccardo Bruno, INFN.CT Sevilla, 10-14/09/2007 GENIUS Exercises.
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.
1 Architecture of the gLite WMS Esther Montes Prado CIEMAT 10th EELA Tutorial Madrid,
IST E-infrastructure shared between Europe and Latin America Architecture of the gLite WMS Alexandre Duarte CERN Fifth EELA.
E-infrastructure shared between Europe and Latin America Architecture of the WMS Manuel Rubio del Solar CETA-CIEMAT EELA Tutorial, Mérida,
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Job Submission Fokke Dijkstra RuG/SARA Grid.
Querétaro (Mexico), E2GRIS – Job Description Language JDL 1.
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 Luciano Díaz ICN-UNAM Based on Domenico.
The EPIKH Project (Exchange Programme to advance e-Infrastructure Know-How) WMPROXY API Python & C++ Diego Scardaci
Grid Initiatives for e-Science virtual communities in Europe and Latin America The Job Description Language JDL 1.
INFSO-RI Enabling Grids for E-sciencE The Workload Management System: an overview Giuseppe La Rocca INFN – Catania ICTP/INFM-Democritos.
The gLite API – PART I Giuseppe LA ROCCA INFN Catania ACGRID-II School 2-14 November 2009 Kuala Lumpur - Malaysia.
INFSO-RI Enabling Grids for E-sciencE GILDA Praticals GILDA Tutors INFN Catania ICTP/INFM-Democritos Workshop on Porting Scientific.
Computational grids and grids projects DSS,
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
Workflow Template Generation Haw to. Steps Make proper set of WF examples on Portal Save it to a local directory Decompress it Make a Template Directory.
1 Esther Montes Prado CIEMAT 10th EELA Tutorial Madrid, Hands-on on WMS (Review and Summary)
- Distributed Analysis (07may02 - USA Grid SW BNL) Distributed Processing Craig E. Tull HCG/NERSC/LBNL (US) ATLAS Grid Software.
Group 1 : Grid Computing Laboratory of Information Technology Supervisors: Alexander Ujhinsky Nikolay Kutovskiy.
EGEE-III INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks gLite job submission Fokke Dijkstra Donald.
EGEE-III INFSO-RI Enabling Grids for E-sciencE Feb. 06, Introduction to High Performance and Grid Computing Faculty of Sciences,
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Job Submission Fokke Dijkstra RuG/SARA Grid.
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 Αthanasia Asiki Computing Systems Laboratory, National Technical.
INFSO-RI Enabling Grids for E-sciencE Claudio Cherubino, INFN Catania Grid Tutorial for users Merida, April 2006 Special jobs.
INFSO-RI Enabling Grids for E-sciencE Αthanasia Asiki Computing Systems Laboratory, National Technical.
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.
FP6−2004−Infrastructures−6-SSA E-infrastructure shared between Europe and Latin America Moisés Hernández Duarte UNAM FES Cuautitlán.
EGEE-II INFSO-RI Enabling Grids for E-sciencE Command Line Grid Programming Spiros Spirou Greek Application Support Team NCSR “Demokritos”
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.
Enabling Grids for E-sciencE EGEE-II INFSO-RI Porting an application to the EGEE Grid & Data management for Application Rachel Chen.
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.
Istituto Nazionale di Astrofisica Information Technology Unit INAF-SI Job with data management Giuliano Taffoni.
Job Management Beijing, 13-15/11/2013. Overview Beijing, /11/2013 DIRAC Tutorial2  DIRAC JDL  DIRAC Commands  Tutorial Exercises  What do you.
GRID commands lines Original presentation from David Bouvet CC/IN2P3/CNRS.
FESR Consorzio COMETA - Progetto PI2S2 Jobs with Input/Output data Fabio Scibilia, INFN - Catania, Italy Tutorial per utenti e.
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.
Architecture of the gLite WMS
Workload Management System on gLite middleware
Special jobs with the gLite WMS
EGEE tutorial, Job Description Language - more control over your Job Assaf Gottlieb Tel-Aviv University EGEE is a project.
Job Description Language
gLite Job Management Mario Reale GARR
5. Job Submission Grid Computing.
Job Management with DATA
The gLite Workload Management System
gLite Job Management Christos Theodosiou
Job Description Language
GENIUS Grid portal Hands on
Job Description Language (JDL)
Presentation transcript:

INFSO-RI Enabling Grids for E-sciencE Job Description Language (JDL) Giuseppe La Rocca INFN First gLite tutorial on GILDA Catania,

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI Outline Job Description Language – Overview Relevant attributes JDL Examples csound.jdl raster.jdl scilab.jdl

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI Job Description Language (1) Job Description Language (JDL) In gLite Job Description Language (JDL) are used to describe jobs for execution on Grid. CLASSified Advertisement language (ClassAd) 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 attribute separated by semi-colon (;) A ClassAd is highly flexible and can be used to represent arbitrary services match-making process The JDL is used in gLite to specify the desired job characteristics and constrains, which are used in by match-making process to select the resources that the job will use.

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI JDL syntax The JDL syntax consists on statements like: Attribute = value; Comments must be preceded by a sharp character # ( # ) or have to follow the C++ syntax WARING: The JDL is sensitive to blank characters and tabs. No blank characters or tabs should follow the semicolon at the end of a line. Job Description Language (2)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI In a JDL, some attributes are mandatory while others are optional. A essential JDL is the following: Executable = “test.sh”; StdOutput = “std.out”; StdError = “std.err”; InputSandbox = {“test.sh”}; OutputSandbox = {“std.out”,”std.err”}; If needed, arguments to the executable can be passed: Arguments = “Hello World!”; Job Description Language (3)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI If the arguments contains quoted strings, the quotes must be escaped with a backslash e.g. Arguments = “\”Hello World!\“ 10”; Special characters such as &, |, >, < are only allowed if specified inside a quoted string or preceded by triple \ (e.g. Arguments = "-f file1\\\&file2";) Job Description Language (4)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI The supported attributes are grouped in two categories: Job Attributes Define the job itself Resources Taken into account by the RB for carrying out the matchmaking algorithm (to choose the “best” resource where to submit the job) Computing Resource Used to build expressions of Requirements and/or Rank attributes by the user Requirements=other.GlueCEUniqueID == “adc006.cern.ch:2119/jobmanager-pbs-infinite” Requirements=Member(“ALICE ”, other.GlueHostApplicationSoftwareRunTimeEnvironment); Job Description Language (5)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI Job Description Language (6) Data and Storage resources Input data to process, SE where to store output data, protocols spoken by application when accessing Ses InputData = {“lfn:cmstestfile”, “guid:135b7b23-4a6a-11d7-87e7-9d101f8c8b70”};

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI JDL: Relevant Attributes (1) JobType JobType (optional) Normal (simple, sequential job), Interactive, MPICH, Checkpointable, Partitionable Or combination of them Checkpointable, Interactive Checkpointable, MPI JobType = “Interactive”; E.g. JobType = “Interactive”; JobType = {“Interactive”,”Checkpointable”}; JobType = {“Interactive”,”Checkpointable”}; “Interactive” + “MPI” not yet permitted

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI Type Type (mandatory, default “Job”) This is a representing the type of the request described by the JDL. Possible values are: Job DAG Reservation Co-allocation Type = “Job”; E.g.: Type = “Job”; JDL: Relevant Attributes (2)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI Executable Executable (mandatory) This is a string representing the executable/command name. The user can specify an executable which is already on the remote CE Executable = {“/opt/EGEODE/GCT/egeode.sh”}; The user can provide a local executable name, which will be staged from the UI to the WN. Executable = {“egeode.sh”}; InputSandbox = {“/home/larocca/egeode/ InputSandbox = {“/home/larocca/egeode/egeode.sh”}; JDL: Relevant Attributes (3)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI Arguments Arguments (optional) This is a string containing all the job command line arguments. E.g.: If your executable sum has to be started as: $ sum N1 N2 –out result.out Executable = “sum”; Executable = “sum”; Arguments = “N1 N2 –out result.out”; Arguments = “N1 N2 –out result.out”; JDL: Relevant Attributes (4)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI Environment Environment (optional) List of environment settings needed by the job to run properly Environment = {“JAVABIN=/usr/local/java”}; E.g. Environment = {“JAVABIN=/usr/local/java”}; InputSandbox InputSandbox (optional) List of files on the UI local disk needed by the job for running The listed files will automatically staged to the remote resource InputSandbox ={“myscript.sh”,”/tmp/cc,sh”}; E.g. InputSandbox ={“myscript.sh”,”/tmp/cc,sh”}; JDL: Relevant Attributes (5)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI OutputSandbox OutputSandbox (optional) List of files, generated by the job, which have to be retrieved OutputSandbox ={ “std.out”,”std.err”, E.g. OutputSandbox ={ “std.out”,”std.err”, “image.png”}; “image.png”}; VirtualOrganisation VirtualOrganisation (optional) This is a string representing the name of the VO the submitting user is currently working for. VirtualOrganisation =“gilda”; E.g. VirtualOrganisation =“gilda”; JDL: Relevant Attributes (6)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI Requirements Requirements (optional) Job requirements on computing resources Specified using attributes of resources published in the Information Service If not specified, default value defined in UI configuration file is considered Requirements = other.GlueCEStateStatus == "Production“; Default. Requirements = other.GlueCEStateStatus == "Production“; JDL: Relevant Attributes (7)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI Rank Rank (optional) Floating-point expression used to ranks CEs that have already met the Requirements expression. The Rank expression can contain attributes that describe the CE in the Information System (IS). The evaluation of the rank expression is performed by the Resource Broker (RB) during the match-making phase. A higher numeric value equals a better rank. If not specified, default value defined in the UI configuration file is considered Rank = - other.GlueCEStateFreeCPUs; Default: Rank = - other.GlueCEStateFreeCPUs; JDL: Relevant Attributes (8)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI InputData InputData (optional) This is a string or a list of strings representing the Logical File Name (LFN) or Grid Unique Identifier (GUID) needed by the job as input. The list is used by the RB to find the CE from which the specified files can be better accessed and schedules the job to run there. InputData = {“lfn:cmstestfile”, “guid:135b7b23-4a6a-11d7-87e7-9d101f8c8b70”}; JDL: Relevant Attributes (9)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI DataAccessProtocol DataAccessProtocol (mandatory if InputData has been specified) The protocol or the list of protocols which the application is able to “speak” with for accessing files listed in InputData on a given SE. gridftpfile rfio Supported protocols in gLite are currently gridftp, file and rfio. DataAccessProtocol = {“file”,“gridftp”,“rfio”}; JDL: Relevant Attributes (10)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI OutputSE OutputSE (optional) This string representing the URI of the Storage Element (SE) where the user wants to store the output data. This attribute is used by the Resource Broker to find a CE being “close” to this SE and schedule the job there. OutputSE = “grid009.ct.infn.it”; JDL: Relevant Attributes (11)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI OutputData OutputData (optional) Not yet implemented in gLite This attribute allows the user to ask for the automatic upload and registration of datasets produced by the job on the Worker Node (WN). This attribute contains the following three attributes: OutputFile StorageElement LogicalFileName JDL: Relevant Attributes (12)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI OutputFile OutputFile (mandatory if OutputData has been specified) This is a string attribute representing the name of the output file, generated by the job on the WN, which has to be automatically uploaded and registered by the WMS. StorageElement StorageElement (optional) This is a string representing the URI of the Storage Element where the output file specified in the OutputFile has to be uploaded by the WMS. LogicalFileName LogicalFileName (optional) This is a string representing the LFN user wants to associate to the output file when registering it to the Catalogue. JDL: Relevant Attributes (13)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI OutputData = { [ OutputFile = “dataset1.out”; LogicalFileName = “lfn:test-result1”; ],[ OutputFile = “dataset2.out”; LogicalFileName = “lfn:test-result2”; StorageElement = “grid009.ct.infn.it”; ],}; JDL: Relevant Attributes (14)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI csound.jdl Type = "Job"; JobType = "Normal"; Executable = "/bin/sh"; MyProxyServer="lxshare0207.cern.ch"; StdOutput = "csound.out"; StdError = "csound.err"; InputSandbox = {"start_csound.sh","csound.orc","csound.sco"}; OutputSandbox = {"csound.aiff","csound.err","csound.out"}; RetryCount = 7; Arguments = "start_csound.sh"; Requirements = Member("CSOUND-4.13", other.GlueHostApplicationSoftwareRunTimeEnvironment);

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI start_csound.sh (1) #!/bin/bash date ls -la if [ ! -s start_csound.sh ]; then echo " -----> missing file: start_csound.sh"; exit 3; fi if [ ! -s csound.orc ]; then echo " -----> missing file: csound.orc"; exit 3; fi if [ ! -s csound.sco ]; then echo " -----> missing file: csound.sco"; exit 3; fi

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI # create environment for Csound # Execute Csound csound -o csound.aiff -A csound.orc csound.sco date echo " - check if all output files are there and not empty " # ls -la if [ ! -s csound.aiff ]; then echo " ===> Missing output file : csound.aiff "; exit 2; fi rm -f *.sco rm -f *.orc start_csound.sh (2)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI raster.jdl Type = "Job"; JobType = "Normal"; Executable = "/bin/sh"; Arguments = "start_raster.sh"; StdOutput = "raster.out"; StdError = "raster.err"; InputSandbox = {"start_raster.sh","Caffeine.pdb","HMVp66.pdb","Viagra.pdb","aspiri ne.pdb","insuline.pdb","penicillin.pdb","phetrna.pdb"}; OutputSandbox = {"raster.err","raster.out","image.png"}; RetryCount = 7; Requirements = Member("RASTER3D",other.GlueHostApplicationSoftwareRunTim eEnvironment);

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI #/bin/bash PROTEIN2RENDERING=phetrna.pdb RASTERTOOLS=balls echo "Start Rendering $PROTEIN2RENDERING.." echo "..using the $RASTERTOOLS package." # Draw smooth $RASTERTOOLS with default color scheme 2, # save description (with header records) in ribbon.r3d. if [ "$RASTERTOOLS" == "balls" ] || [ "$RASTERTOOLS" == "rods" ]; then cat "$PROTEIN2RENDERING" | "$RASTERTOOLS" > ribbon.r3d echo "Creation of ribbon.r3d file..(1st case)" else cat "$PROTEIN2RENDERING" | rods > ribbon.r3d echo "Creation of ribbon.r3d file..(2nd case)" fi start_raster.sh (1)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI grep ``FE'' "$PROTEIN2RENDERING" | balls -h > irons.r3d if [ "$RASTERTOOLS" == "rings3d" ]; then rings3d -bases temp.2 # Combine the three descriptions and render as PNG image file. cat ribbon.r3d irons.r3d temp.2 | render -png > image.png echo "Creation of IMAGE.PNG!" rm temp.2 else echo "Creation of IMAGE.PNG!!" # Combine the two descriptions and render as PNG image file. cat ribbon.r3d irons.r3d | render -png > image.png fi # Remove the temponary files. rm *.pdb rm ribbon.r3d rm irons.r3d start_raster.sh (2)

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI scilab.jdl Type = "Job"; JobType = "Normal"; Executable = "/bin/sh"; Arguments = "start_scilab.sh"; StdOutput = "scilab.out"; StdError = "scilab.err"; InputSandbox={"start_scilab.sh","Lorents.dem","Misc.dem","shel.. dem"}; OutputSandbox = {"scilab.err","scilab.out","image.gif"}; Requirements = Member("SCILAB- 2.6",other.GlueHostApplicationSoftwareRunTimeEnvironment);

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI start_scilab.sh (1) #/bin/bash MACROS2EXECUTE=Lorents.dem echo "Start Executing $MACROS2EXECUTE.." LOCALDIR=`pwd` hostname -f #Setting the right permission for the execution of the file. chmod 777 start_scilab.sh echo Opening a Virtual Frame Buffer for launching the the SciLab application. /usr/X11R6/bin/Xvfb :1&

First gLite tutorial on GILDA, Catania, Enabling Grids for E-sciencE INFSO-RI echo Running SciLab.. echo `/usr/bin/scilab -display :1 -f "$MACROS2EXECUTE"` echo Listing the content of the workdir. ls -l echo Converting file into gif file using ImageMagick. convert sci1.eps image.gif echo Kill the Xvfb. process_id=`ps -ax | grep Xvfb | awk '{print $1}'` for i in $process_id do kill -15 $i done rm -f *.sh; rm -f *.eps; rm -f *.dem; rm -f *.sce start_scilab.sh (2)