Title: 6a.1
1Globus ToolkitExecution Management
2Web ServicesComponents
Non-WS Components
Data Management
Security
CommonRuntime
Execution Management
Information Services
I Foster
3 Grid Resource Allocation Manager (GRAM)Job
submission
4Resource Management
- Job submission
- Job status
- Basic resource allocation
5Outline
- GT2 job submission using RSL version 1 language.
- GT 3.2 job submission using RSL version 2
language. - GT 4 job submission (can use RSL version language
6Resource Allocation
- Globus (2, 3.2, or 4.0) does not have its own job
scheduler to find resources and automatically
send jobs to suitable machines. - For that, use a separate scheduler, e.g. Condor,
Sun Grid Engine, LSF, PBS, .
7- Globus Version 2
- (pre-2004)
- Pre-WS GRAM
8Globus version 2
From Introduction to Grid Computing with
Globus, IBM Redbooks, Fig. 7-3.
9- GT 2 GRAM
- Job startup done using GRAM service.
- Consist of
- Gatekeeper
- Job Manager
- Job manager can connect to a local resource
manager (scheduler) - GASS service -- provides access to remote files
and for redirecting standard output streams.
10- GRAM Commands
- globusrun -- Runs a single executable on a remote
site. - globus-job-run -- Allows you to run a job at one
or several remote resources. Uses globusrun to
submit job. - globus-job-submit -- For batch job submission
(e.g. using a local scheduling job manager). Not
recommended use globus-job-run or globusrun
instead, with job manager specified
11Scheduler
- Can specify a job scheduler with globusrun, by
adding scheduler name to hostname - lthostnamegt/jobmanager-lsf
12Specifying job
- Command used a file to describe job in a language
called Resource Specification Language, RSL - RSL Version 1 -- a metalanguage describing job
and its required execution.
13Resource Specification LanguageRSL
- Provides a specification for
- Resource requirements - machine type, number of
nodes, memory, etc. - Job description - directory, executable,
arguments, environment
14RSL Version 1Constraints ExampleConjunction
(AND)
- To create 3-5 instances of myProg, each on a
machine with at least 64 Mbytes memory available
to me for 1 hours - (executablemyProg)
- (countgt3)(countlt5)(memorygt64)
- (max_time60)
-
15RSL Version 1Constraints ExampleDisjunction
(OR)
- To create 5 instances of myProg, each on a
machine with at least 64 Mbytes memory or 7
instances of myProg, each on a machine with at
least 32 Mbytes memory - (executablemyProg)
- (((count5)(memorygt64))
- ((count7)(memorygt32)))
-
16RSL version 1Requesting multiple
resourcesmultirequest
- To execute 5 instances of myProg1 on a machine
with at least 64 Mbytes memory and execute 2
instances of myProg2 - ((count5)(memorygt64))
- (executablemyProg1))
- ((count2)(executablemyProg2))
17Can specify different resource managers on
different machines using resourceManagerContact
attribute.
18RSL creation with Globus version 2
- GT2 globus-job-run can be used to generate RSL
from command line arguments with -dumprsl flag - -help gives options
19Globus 3.2
20GT 3.2 GRAMGlobus Resource Allocation Manager
- A set of OGSI compliant services provided to
start remote jobs. notably - Master Managed Job Factory Service (MMJFS).
- Also a set of non-OGSI compliant services
(Gatekeeper, Jobmanager) from pre-GT3.
21Globus GT 3.x
22Resource Specification Language, RSL, version 2
- GT3 and GT 4 use RSL version 2. (Some differences
in RSL language specification in GT4, so not
completely interchangeable.) - RSL Version 2 is an XML language.
23Resource Specification Language Version 2 (RSL
-2)
- Can specify everything from executable, paths,
arguments, input/output, error file, number of
processes, max/min execution time, max/min
memory, job type etc. etc.
24RSL-2
- Much more elegant and flexible, and in keeping
with systems using XML. - Can use XML parsers.
- Allows more powerful mechanisms with job
schedulers. - Resource scheduler/broker applies specification
to local resources.
25RSL-2 ExampleSpecifying Executable(executable/b
in/echo)
- ltgramexecutablegt
- ltrslpathgt
- ltrslstringElement value"/bin/echo"/gt
- lt/rslpathgt
- lt/gramexecutablegt
- In GT 4 version of RSL-2, can simply write
- ltexecutablegt/bin/echolt/executablegt
26RSL-2 ExampleSpecifying Directory(directory/bi
n)
- ltgramdirectorygt
- ltrslpathgt
- ltrslstringElement value"/bin/"/gt
- lt/rslpathgt
- lt/gramdirectorygt
- In GT 4 version of RSL-2, can simply write
- ltdirectorygt/bin/lt/directorygt
27RSL-2 ExampleSpecifying Number(count1)
- ltgramcountgt
- ltrslinteger value"1"/gt
- lt/gramcountgt
- In GT 4 version of RSL-2, can simply write
- ltcountgt1lt/countgt
28RSL-2 ExampleSpecifying Arguments(argumentsHel
lo)
- ltgramargumentsgt
ltrslstringgt - ltrslstringElement value"Hello World"/gt
- lt/rslstringgt
- lt/gramargumentsgt
- In GT 4 version of RSL-2, can simply write
- ltargmentgthello worldlt/argumentgt
29RSL and (GT 3.2) RSL-2 comparison for echo program
- lt?xml version"1.0" encoding"UTF-8"?gt
- ltrslrsl
xmlnsrsl"http//www.globus.org/namespaces/2003/0
4/rsl" -
xmlnsgram"http//www.globus.org/namespaces/2003/
04/rsl/gram" -
xmlnsxsi"http//www.w3.org/2001/XMLSchema-instan
ce" -
xsischemaLocation" -
http//www.globus.org/namespaces/2003/04/rsl -
c/ogsa-3.0/schema/base/gram/rsl.xsd -
http//www.globus.org/namespaces/2003/04/rsl/gram -
c/ogsa-3.0/schema/base/gram/gram_rsl.xsd"gt - ltgramjobgt
-
ltgramexecutablegt ltrslpathgt -
ltrslstringElement value"/bin/echo"/gt
lt/rslpathgt -
lt/gramexecutablegt -
ltgramdirectorygt ltrslpathgt -
ltrslstringElement value"/bin"/gt lt/rslpathgt -
lt/gramdirectorygt -
ltgramargumentsgt -
ltrslstringgt ltrslstringElement value"Hello
World"/gt lt/rslstringgt -
lt/gramargumentsgt
- ((executable/bin/echo)
- (directory"/bin")
- (arguments"Hello World")
- (stdin/dev/null)
- (stdout"stdout")
- (stderr"stderr")
- (count1)
- )
30Running GT 3 Job
- Command
- managed-job-globusrun
- and arguments -- named master job factory
service to process job and an xml file to specify
job. - Command equivalent to GT 2 globusrun command.
31Globus 4.0
32GT 4 WS-GRAM
33- In WS GRAM, jobs started by the
ManagedExecutionJobService, which is a Java
service implementation running within globus
service container.
34Running GT 4 Job
- Command
- globusrun-ws
- and arguments to specify job.
- Equivalent to GT 3.2 managed-job-globusrun
command, and GT 2 globusrun command.
35GT4 job submission command globusrun-ws
- Submit and monitor GRAM jobs
- Replaces (java) managed-job-globusrun
- Written in C, faster startup and execution
- Supports multiple and single job submission
- Handles credential management
- Streaming of job stdout/err during execution
36Simple job submission
- Step 1 Create proxy with grid-proxy-int command.
- Step 2 globusrun-ws with parameters to specify
job.
37Some globusrun-ws flags for job submission
38Job submission
- -submit Submits (or resubmits) a job to a job
host in one of three output modes batch,
interactive, or interactive-streaming. This flag
needed.
39Specifying where job is submitted(ManagedJobFacto
ry)
- -F Specifies the contact for the job
submission. - Default
- https//localhost8443/wsrf/services/
- ManagedJobFactoryService
- In assignment 3, simply localhost and container
port number used, i.e. - -F localhost8443
40Submitting a single job
- - c Causes globusrun-ws to generate a simple
job description with the named program and
arguments. This flag, if used, must be the last
flag.
41Example Submit program echo with argument hello
to default local host.
globusrun-ws submit c /bin/echo
hello Submitting job...Done. Job ID
uuidd23a7be0-f87c-11d9-a53b-0011115aae1f Terminat
ion time 07/20/2005 1744 GMT Current job state
Active Current job state CleanUp Current job
state Done Destroying job...Done.
42- A successful submission will create a new
ManagedJob resource with its own unique EPR for
messaging. - globusrun-ws will output this EPR to a file when
requested, as the sole standard output when
running in batch mode.
43Selecting a different host
Example globusrun-ws submit F
https//140.221.65.1934444/wsrf/services/managedJ
obFactoryService c /bin/echo hello
44Using an RSL file
f Similar to -c except job description held
in a file. Example globusrun-ws submit f
echo.xml where echo.xml is an RSL-2 file
describing job.
45Contents of echo.xml ltjobgt ltexecutablegt/bin/ec
holt/executablegt ltargumentgthellolt/argumentgt lt/job
gt
46Batch Submission
- -batch Results in ManagedJob EPR as the sole
standard output (unless in quiet mode) and then
exits. - -o filename Created ManagedJob EPR written to
file (if submission successful)
47Batch Job Submission
globusrun-ws submit batch o job_epr s
/bin/sleep 50 Submitting jobDone JoB ID
uuidf9544174-60c5-11d9-97e3-0002a5ad41e5 Terminat
ion time 01/08/2005 1605 GMT
48Monitoring Batch Submission
- -monitor Attaches to an existing job in
interactive or interactive-streaming output
modes. - -j filename EPR for ManagedJob read from file.
49Monitoring Batch Job
globusrun-ws monitor j job_epr job state
Active Current job state CleanUp Current job
state Done Requesting original job
description...Done. Destroying job...Done
50Batch Submission
- -status Reports the current state of the job
and exits - -kill Requests immediate cancellation of job
and exits.
51(No Transcript)
52Input/Output
- RSL file can specify where stdout/err goes.
- Example
- ltjobgt
- ltexecutablegt/bin/echolt/executablegt
- ltdirectorygt/tmplt/directorygt
- ltargumentgthellolt/argumentgt
- ltstdoutgtjob.outlt/stdoutgt
- ltstderrgtjob.errlt/stderrgt
-
- lt/jobgt
53Stream Input/Output
- -s The standard output and standard error files
of the job are monitored and data is written to
the corresponding output of globusrun-ws. - Allows streaming stdout/err during executing to
the terminal.
54Stream output data files
- Can also stream output data files. Specify in
RSL file where to.
55- Example
- ltjobgt
-
- ltfileStageOutgt
- lttransfergt
- ltsourceUrlgtfile///tmp/job.outlt/sourceUrlgt
- ltdestinationUrlgtgsiftp//host.domain2811/
- tmp/stage.outlt/destinationUrlgt
- lt/transfergt
- lt/fileStageOutgt
-
- lt/jobgt
56Reliable File Transfer (RTF)
- Example
- ltjobgt
-
- lttransfergt
-
- ltrftOptionsgt
- ltsubjectNamegt/ONCSU/OUHPC/
- OUunity.ncsu.edu/CNBarry Wilkinson
- ltparallelStreamsgt4lt/parallel Streamsgt
- lt/transfergt
-
- lt/jobgt