Top Banner
6a.1 Globus Toolkit Execution Management
57

6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

Dec 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.1

Globus Toolkit

Execution Management

Page 2: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

Data Management

SecurityCommonRuntime

Execution Management

Information Services

Web ServicesComponents

Non-WS

Components

Pre-WSAuthenticationAuthorization

GridFTP

GridResource

Allocation Mgmt(Pre-WS GRAM)

Monitoring& Discovery

System(MDS2)

C CommonLibraries

GT2

WSAuthenticationAuthorization

ReliableFile

Transfer

OGSA-DAI[Tech Preview]

GridResource

Allocation Mgmt(WS GRAM)

Monitoring& Discovery

System(MDS4)

Java WS Core

CommunityAuthorization

ServiceGT3

ReplicaLocationService

XIO

GT3

CredentialManagement

GT4

Python WS Core[contribution]

C WS Core

CommunitySchedulerFramework

[contribution]

DelegationService

GT4

I Foster

Page 3: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.3

Grid Resource Allocation Manager (GRAM)

Job submission

Page 4: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.4

Resource Management

• Job submission

• Job status

• Basic resource allocation

Page 5: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.5

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

Page 6: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.6

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

Page 7: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.7

Globus Version 2(pre-2004)

Pre-WS GRAM

Page 8: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.8

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

Globus version 2

Page 9: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.9

GT 2 GRAMJob 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.

Page 10: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

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

Page 11: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.11

Scheduler

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

<hostname>/jobmanager-lsf

Page 12: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.12

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.

Page 13: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.13

Resource Specification LanguageRSL

Provides a specification for:

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

• Job description - directory, executable, arguments, environment

Page 14: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.14

RSL Version 1Constraints Example

Conjunction (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)

Page 15: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.15

RSL Version 1Constraints Example

Disjunction (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)))

Page 16: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.16

RSL version 1Requesting multiple resources

multirequest: +

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

Page 17: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.17

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

Page 18: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.18

RSL 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

Page 19: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.19

Globus 3.2

Page 20: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.20

GT 3.2 GRAM“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.

Page 21: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.21

Globus GT 3.x

Page 22: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.22

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

Page 23: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.23

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

Page 24: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.24

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

Page 25: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.25

RSL-2 ExampleSpecifying 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>

Page 26: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.26

RSL-2 ExampleSpecifying 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>

Page 27: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.27

RSL-2 ExampleSpecifying Number

(count=1)

<gram:count>

<rsl:integer value="1"/>

</gram:count>

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

<count>1</count>

Page 28: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.28

RSL-2 ExampleSpecifying 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>

Page 29: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.29

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)

)

<?xml version="1.0" encoding="UTF-8"?>• <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>

Page 30: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.30

Running GT 3 Job• Command:

managed-job-globusrunand arguments -- named master job factory service to process job and an xml file to specify job.

• Command equivalent to GT 2 globusrun command.

Page 31: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.31

Globus 4.0

Page 32: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.32

GT 4 WS-GRAM

Page 33: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.33

• In WS GRAM, jobs started by the

ManagedExecutionJobService,

which is a Java service

implementation running within

globus service container.

Page 34: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.34

Running GT 4 Job• Command:

globusrun-wsand arguments to specify job.

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

Page 35: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.35

GT4 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

Page 36: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.36

Simple job submission

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

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

Page 37: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.37

Some globusrun-ws flags for job submission

Page 38: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.38

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

Page 39: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.39

Specifying where job is submitted(ManagedJobFactory)

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

Defaulthttps://localhost:8443/wsrf/services/

ManagedJobFactoryService

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

-F localhost:8443

Page 40: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.40

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

Page 41: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.41

ExampleSubmit 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-0011115aae1fTermination time: 07/20/2005 17:44 GMTCurrent job state: ActiveCurrent job state: CleanUpCurrent job state: DoneDestroying job...Done.

Page 42: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

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

Page 43: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.43

Selecting a different host

Example

$ globusrun-ws –submit –F

https://140.221.65.193:4444/wsrf/

services/managedJobFactoryService

–c /bin/echo hello

Page 44: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.44

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

Page 45: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.45

Contents of echo.xml

<job>

<executable>/bin/echo</executable>

<argument>hello</argument>

</job>

Page 46: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.46

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

Page 47: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.47

Batch Job Submission

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

Submitting job…DoneJoB ID: uuid:f9544174-60c5-11d9-97e3-0002a5ad41e5Termination time: 01/08/2005 16:05 GMT

Page 48: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.48

Monitoring Batch Submission

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

-j filename EPR for ManagedJob read from file.

Page 49: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.49

Monitoring Batch Job

globusrun-ws –monitor –j job_epr

job state: ActiveCurrent job state: CleanUpCurrent job state: DoneRequesting original job description...Done.Destroying job...Done

Page 50: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.50

Batch Submission

-status Reports the current state of the job and exits

-kill Requests immediate cancellation of job and exits.

Page 51: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.51

Page 52: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.52

Input/OutputRSL 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>

Page 53: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.53

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

Page 54: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.54

Stream output data files

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

Page 55: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.55

Example<job>

<fileStageOut>

<transfer>

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

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

tmp/stage.out</destinationUrl>

</transfer>

</fileStageOut>

</job>

Page 56: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.56

Reliable File Transfer (RTF)Example

<job> … <transfer> … <rftOptions> <subjectName>/O=NCSU/OU=HPC/ OU=unity.ncsu.edu/CN=Barry Wilkinson <parallelStreams>4</parallel Streams> </transfer> …</job>

Page 57: 6a.1 Globus Toolkit Execution Management. Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS.

6a.57

Sources of GT 4 information

“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