Globus toolkit execution management
Download
1 / 57

Globus Toolkit Execution Management - PowerPoint PPT Presentation


  • 107 Views
  • Uploaded on

Globus Toolkit Execution Management. G T 4. Delegation Service. Community Scheduler Framework [contribution]. Python WS Core [contribution]. C WS Core. G T 3. Community Authorization Service. OGSA-DAI [Tech Preview]. WS Authentication Authorization. Reliable File Transfer.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Globus Toolkit Execution Management' - germane-nieves


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Globus toolkit execution management
Globus ToolkitExecution Management


G

T

4

Delegation

Service

Community

Scheduler

Framework

[contribution]

Python WS Core

[contribution]

C WS Core

G

T

3

CommunityAuthorization

Service

OGSA-DAI

[Tech Preview]

WS

Authentication

Authorization

Reliable

File

Transfer

Java WS Core

Grid

Resource

Allocation Mgmt

(WS GRAM)

Monitoring

& Discovery

System

(MDS4)

G

T

2

Pre-WS

Authentication

Authorization

GridFTP

Grid

Resource

Allocation Mgmt

(Pre-WS GRAM)

Monitoring

& Discovery

System

(MDS2)

C Common

Libraries

G

T

3

Replica

Location

Service

XIO

G

T

4

Credential

Management

Web ServicesComponents

Non-WS

Components

Security

Data Management

Execution Management

Information Services

CommonRuntime

I Foster



Resource management
Resource Management

  • Job submission

  • Job status

  • Basic resource allocation


Outline
Outline

  • 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


Resource allocation
Resource 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, … .


Globus Version 2

(pre-2004)

Pre-WS GRAM


Globus version 2

From: “Introduction to Grid Computing with Globus,” IBM Redbooks, Fig. 7-3.


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.


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


Scheduler
Scheduler

  • Can specify a job scheduler with globusrun, by adding scheduler name to hostname:

    <hostname>/jobmanager-lsf


Specifying job
Specifying 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.


Resource specification language rsl
Resource Specification LanguageRSL

Provides a specification for:

  • Resource requirements - machine type, number of nodes, memory, etc.

  • Job description - directory, executable, arguments, environment


Rsl version 1 constraints example conjunction and
RSL 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:

    & (executable=myProg)

    (count>=3)(count<=5)(memory>=64)

    (max_time=60)


Rsl version 1 constraints example disjunction or
RSL 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 :

    &(executable=myProg)

    (|(&(count=5)(memory>=64))

    (&(count=7)(memory>=32)))


Rsl version 1 requesting multiple resources multirequest
RSL 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:

    +(&(count=5)(memory>=64))

    (executable=myProg1))

    (&(count=2)(executable=myProg2))


Can specify different resource managers on different machines using resourceManagerContact attribute.


Rsl creation with globus version 2
RSL creation with Globus version 2 machines using

  • GT2 globus-job-run can be used to generate RSL from command line arguments with -dumprsl flag

  • -help gives options


Globus 3 2
Globus 3.2 machines using


Gt 3 2 gram globus resource allocation manager
GT 3.2 GRAM machines using “Globus 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.


Globus GT 3.x machines using


Resource specification language rsl version 2
Resource Specification Language, RSL, version 2 machines using

  • 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.


Resource specification language version 2 rsl 2
Resource Specification Language machines using 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.


Rsl 2
RSL-2 machines using

  • 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.


Rsl 2 example specifying executable executable bin echo
RSL-2 Example machines using Specifying Executable(executable=/bin/echo)

<gram:executable>

<rsl:path>

<rsl:stringElement value="/bin/echo"/>

</rsl:path>

</gram:executable>

In GT 4 version of RSL-2, can simply write:

<executable>/bin/echo</executable>


Rsl 2 example specifying directory directory bin
RSL-2 Example machines using Specifying Directory(directory=“/bin”)

<gram:directory>

<rsl:path>

<rsl:stringElement value="/bin/"/>

</rsl:path>

</gram:directory>

In GT 4 version of RSL-2, can simply write:

<directory>/bin/</directory>


Rsl 2 example specifying number count 1
RSL-2 Example machines using Specifying Number(count=1)

<gram:count>

<rsl:integer value="1"/>

</gram:count>

In GT 4 version of RSL-2, can simply write:

<count>1</count>


Rsl 2 example specifying arguments arguments hello
RSL-2 Example machines using Specifying Arguments(arguments=“Hello”)

<gram:arguments> <rsl:string>

<rsl:stringElement value="Hello World"/>

</rsl:string>

</gram:arguments>

In GT 4 version of RSL-2, can simply write:

<argment>hello world</argument>


Rsl and gt 3 2 rsl 2 comparison for echo program

<?xml version="1.0" encoding="UTF-8"?> machines using

  • <rsl:rsl xmlns:rsl="http://www.globus.org/namespaces/2003/04/rsl"

  • xmlns:gram="http://www.globus.org/namespaces/2003/04/rsl/gram"

  • xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  • xsi:schemaLocation="

  • 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">

  • <gram:job>

  • <gram:executable> <rsl:path>

  • <rsl:stringElement value="/bin/echo"/> </rsl:path>

  • </gram:executable>

  • <gram:directory> <rsl:path>

  • <rsl:stringElement value="/bin"/> </rsl:path>

  • </gram:directory>

  • <gram:arguments>

  • <rsl:string> <rsl:stringElement value="Hello World"/> </rsl:string>

  • </gram:arguments>

  • <gram:stdin> <rsl:path>

  • <rsl:stringElement value="/dev/null"/> </rsl:path> </gram:stdin>

  • <gram:stdout>

  • <rsl:pathArray>

  • <rsl:path>

  • <rsl:substitutionRef name="HOME"/>

  • <rsl:stringElement value="/stdout"/>

  • </rsl:path>

  • </rsl:pathArray>

  • </gram:stdout>

  • <gram:stderr>

  • <rsl:pathArray>

  • <rsl:path>

  • <rsl:substitutionRef name="HOME"/>

  • <rsl:stringElement value="/stderr"/>

  • </rsl:path>

  • </rsl:pathArray>

  • </gram:stderr>

  • <gram:count> <rsl:integer value="1"/> </gram:count>

  • <gram:jobType>

  • <gram:enumeration>

  • <gram:enumerationValue> <gram:multiple/> </gram:enumerationValue>

  • </gram:enumeration>

  • </gram:jobType>

  • <gram:gramMyJobType>

  • <gram:enumeration>

  • <gram:enumerationValue> <gram:collective/> </gram:enumerationValue>

  • </gram:enumeration>

  • </gram:gramMyJobType>

  • <gram:dryRun> <rsl:boolean value="false"/> </gram:dryRun>

  • <gram:saveState> <rsl:boolean value="true"/> </gram:saveState>

  • <gram:twoPhase> <rsl:integer value="600"/> </gram:twoPhase>

  • </gram:job>

  • </rsl:rsl>

RSL and (GT 3.2) RSL-2 comparison for echo program

&((executable=/bin/echo)

(directory="/bin")

(arguments="Hello World")

(stdin=/dev/null)

(stdout="stdout")

(stderr="stderr")

(count=1)

)


Running gt 3 job
Running GT 3 Job machines using

  • 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.


Globus 4 0
Globus 4.0 machines using


GT 4 WS-GRAM machines using



Running gt 4 job
Running GT 4 Job which is a Java service implementation running within globus service container.

  • Command:

    globusrun-ws

    and arguments to specify job.

  • Equivalent to GT 3.2 managed-job-globusrun command, and GT 2 globusrun command.


Gt4 job submission command globusrun ws
GT4 job submission command which is a Java service implementation running within globus service container. 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


Simple job submission
Simple job submission which is a Java service implementation running within globus service container.

  • Step 1: Create proxy with grid-proxy-int command.

  • Step 2: globusrun-ws with parameters to specify job.


Some globusrun ws flags for job submission
Some globusrun-ws flags for job submission which is a Java service implementation running within globus service container.


Job submission
Job submission which is a Java service implementation running within globus service container.

-submit Submits (or resubmits) a job to a job host in one of three output modes: batch, interactive, or interactive-streaming. This flag needed.


Specifying where job is submitted managedjobfactory
Specifying where job is submitted which is a Java service implementation running within globus service container.(ManagedJobFactory)

-F Specifies the “contact” for the job submission.

Default

https://localhost:8443/wsrf/services/

ManagedJobFactoryService

In assignment 3, simply localhost and container port number used, i.e.

-F localhost:8443


Submitting a single job
Submitting a single job which is a Java service implementation running within globus service container.

- 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.


Example which is a Java service implementation running within globus service container.

Submit program echo with argument hello to default local host.

% globusrun-ws –submit –c /bin/echo hello

Submitting job...Done.

Job ID: uuid:d23a7be0-f87c-11d9-a53b-0011115aae1f

Termination time: 07/20/2005 17:44 GMT

Current job state: Active

Current job state: CleanUp

Current job state: Done

Destroying job...Done.



Selecting a different host
Selecting a different host resource with its own unique EPR for messaging.

Example

$ globusrun-ws –submit –F https://140.221.65.193:4444/wsrf/services/managedJobFactoryService –c /bin/echo hello


Using an rsl file
Using an RSL file resource with its own unique EPR for messaging.

–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.


Contents of echo.xml resource with its own unique EPR for messaging.

<job>

<executable>/bin/echo</executable>

<argument>hello</argument>

</job>


Batch submission
Batch Submission resource with its own unique EPR for messaging.

-batchResults 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)


Batch job submission
Batch Job Submission resource with its own unique EPR for messaging.

$ globusrun-ws –submit –batch –o job_epr –s /bin/sleep 50

Submitting job…Done

JoB ID: uuid:f9544174-60c5-11d9-97e3-0002a5ad41e5

Termination time: 01/08/2005 16:05 GMT


Monitoring batch submission
Monitoring Batch Submission resource with its own unique EPR for messaging.

-monitor Attaches to an existing job in interactive or interactive-streaming output modes.

-j filename EPR for ManagedJob read from file.


Monitoring batch job
Monitoring Batch Job resource with its own unique EPR for messaging.

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


Batch submission1
Batch Submission resource with its own unique EPR for messaging.

-status Reports the current state of the job and exits

-kill Requests immediate cancellation of job and exits.


Input output
Input/Output resource with its own unique EPR for messaging.

RSL file can specify where stdout/err goes.

Example

<job>

<executable>/bin/echo</executable>

<directory>/tmp</directory>

<argument>hello</argument>

<stdout>job.out</stdout>

<stderr>job.err</stderr>

</job>


Stream input output
Stream Input/Output resource with its own unique EPR for messaging.

-sThe 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.


Stream output data files
Stream output data files resource with its own unique EPR for messaging.

Can also “stream” output data files. Specify in RSL file where to.


Example resource with its own unique EPR for messaging.

<job>

<fileStageOut>

<transfer>

<sourceUrl>file:///tmp/job.out</sourceUrl>

<destinationUrl>gsiftp://host.domain:2811/

tmp/stage.out</destinationUrl>

</transfer>

</fileStageOut>

</job>


Reliable file transfer rtf
Reliable File Transfer (RTF) resource with its own unique EPR for messaging.

Example

<job>

<transfer>

<rftOptions>

<subjectName>/O=NCSU/OU=HPC/

OU=unity.ncsu.edu/CN=Barry Wilkinson

<parallelStreams>4</parallel Streams>

</transfer>

</job>


Sources of gt 4 information
Sources of GT 4 information resource with its own unique EPR for messaging.

“GRAM, RFT & Job Submission, Execution Management for GT4 Developers,” S. Martinb and P. Plaszczak, globusWorld, 2005, www.globusworld.org

http://www.globus.org/toolkit/docs/development/3.9.4/execution/wsgram/user/globusrun-ws.html


ad