49
Grid Computing, B. Wilkinson, 2004 6a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Embed Size (px)

Citation preview

Page 1: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.1

Globus Toolkit

I - Basic structure, and job submission

Page 2: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.2

GlobusOpen source grid software toolkit that has been developing since late 1990’s. Provides:

– An Underlying Grid Security Infrastructure (GSI)– Resource Management – Data Management– Information services.

Higher level tools are meant to be implemented above these basic services

Page 3: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.3

Grid Security Infrastructure

Provides security functions including:

• Authentication

• Authorization

• Delegation

• Confidential Communication

Page 4: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.4

Resource Management

• Job submission

• Job status

• Basic resource allocation

Globus does not have its own job scheduler to find resources and automatically send jobs to suitable machines. For that use a separate scheduler - we will use Condor-G.

Page 5: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.5

Information Services

• Support for gathering information and querying information.

• Based upon Lightweight Directory Access Protocol (LDAP)

Page 6: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.6

Data Management

• Support for transferring files between machines

Page 7: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.7

• GSI (Grid Security Infrastructure)– Grid security.

• GRAM (Grid Resource Allocation Manager) – Remote job submission and control.

• GridFTP– Secure data transfer.

• MDS (Monitoring and discovery Service)– Interface to system and service information.

Key Components

Page 8: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.8

Version 2(pre-2004)

Contained named components:

• GSI

• GRAM

• GridFTP

• MDS.

Relatively stable.

Page 9: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.9From: “Introduction to Grid Computing with Globus,” IBM Redbooks, SG24-6895-012003, Fig. 4-6.

Page 10: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.10

From: “Introduction to Grid Computing with Globus,” IBM Redbooks, SG24-6895-012003, Fig. 7-2.

Globus version 2

Page 11: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.11From: “Introduction to Grid Computing with Globus,” IBM Redbooks, SG24-6895-012003, Fig. 7-3.

Globus version 2

Page 12: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.12

Resource Specification LanguageRSL

Provides a specification for:

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

• Job description - directory, executable, arguments, environment

Page 13: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.13

• Version 1 (Pre GT3) - a metalanguage describing job and its required execution. Specification given in an rsl file

• Version 2 (GT3) - specification described in a XML document with a schema.

Page 14: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 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: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 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: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 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: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.17

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

Page 18: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.18

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

Example

+ ( & (resourceManagerContact=

“flash.isi.edu:754:/C=US/…/CN=flash.isi.edu-fork”)

(count=1)

(executable=my_appl1)

)

( & (resourceManagerContact=

“sp139.sdsc.edu:8711:/C=US/…/CN=sp097.sdsc.edu-lst”)

(count=2)

(executable=my_appl2)

)

Page 19: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.19

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 20: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.20

• We used Globus version 2.4 in a Supercomputing 2003 demo organized by the University of Melbourne.

• 21 countries involved, numerous sites.

Page 21: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.21

Page 22: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.22

Page 23: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.23

A re-implementation based upon the Open Grid Service Architecture (OGSA).

• OGSI-compliant Java interfaces.

• Contains GSI, GRAM, GridFTP, and MDS.

• Includes additional Web service components, some built on top of OGSI.

• Version 3.2 (March 2004) a major revision of version 3.0. Even commands changed.

Version 3

Page 24: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.24From http://www.globus.org

Page 25: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.25

GT 3 structureEarly representation

OGSI (Grid services)

Job management, etc.

SSL, Certificates

Non-GT3 services

Replica management for large data sets, ...

Page 26: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.26

GT3More recent representation

Page 27: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.27

Grid Service Container

• “Contains” all the files of GT3 system shielding it from environment.

• “White” part is the GT3 core

Operates with a web service engine - stand-alone web service container provided for test purposes.

Tomcat can be used.

Page 28: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.28

Globus 3.2

• Has suite of command line tools.

• To start container:

globus-start-container

(from $GLOBUS-LOCATION directory). Should see a list of available services including any you have created.

Page 29: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.29

GUI

• GT3 also has a Java based GUI “service browser.” To start:

globus-service-browser

(from $GLOBUS-LOCATION directory).

Page 30: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.30From “Globus Toolkit 3.0 Quick Start,” IBM, Sept 2003, http://www.redbooks.ibm.com/redpapers/pdfs/redp3697.pdf For educational purposes only.

Double click service to

invoke it

Page 31: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.31From “Globus Toolkit 3.0 Quick Start,” IBM, Sept 2003, http://www.redbooks.ibm.com/redpapers/pdfs/redp3697.pdf For educational purposes only.

Page 32: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.32

Resource Management issues in a Grid

• Sites owned by others

• Different Systems and Software

• Different Policies, ...

Page 33: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.33

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 34: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.34

Page 35: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.35

Resource Specification Language Version 2 (RSL -2)

• Now an XML schema.

• Requirements specified in RSL-2 schema in an XML file.

• 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 36: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.36

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 37: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.37

RSL-2 ExampleSpecifying Executable

(executable=/bin/echo)

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

Page 38: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.38

RSL-2 ExampleSpecifying Directory

(directory=“/bin”)

<gram:directory>

<rsl:path>

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

</rsl:path>

</gram:directory>

Page 39: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.39

RSL-2 ExampleSpecifying Number

(count=1)

<gram:count>

<rsl:integer value="1"/>

</gram:count>

Page 40: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.40

RSL-2 ExampleSpecifying Arguments(arguments=“Hello World”)

<gram:executable>

<rsl:path>

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

</rsl:path>

</gram:executable>

Page 41: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.41

RSL-2 ExampleSpecifying input, output, and error

stdin=/dev/null, stdout="stdout”, stderr="stderr"<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>

Page 42: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.42

RSL and RSL-2 Comparison for program echo

(echo used in assignment 3)

&((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 43: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.43

Running Job(Assignment 3)

GT3 command:

managed-job-globusrun -factory factoryservicename -file xmlfile

where:• factoryservicename specified job service to process

request • filename specifies xml file containing RSL-2

specification of job

Page 44: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.44

Starting a job

• Master Managed Job Factory Service (MMJFS) needed to submit job.

Page 45: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.45

Invoking MMJFS• Invoke MMJFS with:

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 46: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.46

Example

[user $GLOBUS-LOCATION] $ grid-proxy-init

[user $GLOBUS-LOCATION] $ managed-job-globusrun -factory http://terra:8080/ogsa/services/base/gram/

MasterForkManagedJobFactoryService -file $GLOBUS_LOCATION/etc/test.xml

This command causes the service to process test.xml - an xml document that contains the description of the job.

Page 47: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.47

More details and practice

• See Assignment 3

Page 48: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.48

More Information

On-line:

• “Globus Toolkit 3.0 Quick Start,” IBM redbooks, Sept 2003.

http://redbooks.ibm.com/redbooks/pdf/sg246895.pdf

http://redbooks.ibm.com/redpapers/pdfs/redp3697.pdf

Page 49: Grid Computing, B. Wilkinson, 20046a.1 Globus Toolkit I - Basic structure, and job submission

Grid Computing, B. Wilkinson, 2004 6a.49

• “Introduction to the Globus ToolKittm,” Resource Management Services, Nov. 6, 2003.

http://www.globus.org

• “The Master Managed Job Factory Service (MMJFS)” by V. Silva, May 25, 2004.

http://www-106.ibm.com/developerworks/

grid/library/gr-factory/?ca=dgr-lnxw961GridMMJFS

• http://grid.hpctools.uh.edu/6397