the globus project infrastructure for computational grids

141
The Globus Project Infrastructure for Computational Grids The Globus Project Team http://www.globus.org/

Upload: giles

Post on 25-Feb-2016

69 views

Category:

Documents


2 download

DESCRIPTION

The Globus Project Infrastructure for Computational Grids. The Globus Project Team http://www.globus.org/. Session Goals. Provide an introduction to… computational grids the capabilities of the Globus Toolkit pragmatic issues with grids & Globus Enable attendees to… - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: The Globus Project Infrastructure for Computational Grids

The Globus Project

Infrastructure for Computational Grids

The Globus Project Teamhttp://www.globus.org/

Page 2: The Globus Project Infrastructure for Computational Grids

2SIAC 2000, Wright State University, August 21, 2000

Session Goals• Provide an introduction to…

computational grids the capabilities of the Globus Toolkit pragmatic issues with grids & Globus

• Enable attendees to… start building grids using the Globus Toolkit start building & using grid applications

Page 3: The Globus Project Infrastructure for Computational Grids

3SIAC 2000, Wright State University, August 21, 2000

Overview• Introduction to computational grids• Introduction to the Globus Toolkit

Portability Security Information services Resource management Data management Communication

• Case studies• Other Globus services, and future directions

Page 4: The Globus Project Infrastructure for Computational Grids

4SIAC 2000, Wright State University, August 21, 2000

What is a computational grid?• A pool of computational resources that can

be “plugged into” via standard interfaces.• Processors• Data storage devices• Instruments

• As the power grid is to electrical power, and the telephone grid is to voice communication, so will the computational grid be for computation.

Page 5: The Globus Project Infrastructure for Computational Grids

5SIAC 2000, Wright State University, August 21, 2000

Computational Collaboration• 1975-1995: Collaboration

We work together, but use our own unique systems. It’s hard to share data, computing power, instrumentation.

• 1995-2005: Virtual Organizations We build systems that combine our resources with those of our

collaborators. We learn how to manage the heterogeneity of systems,

management, and users.• 2005-?: Computational Grid

Computation is a commodity, that can be bought and sold by anyone.

Computational services use standard interfaces. Organizations and individuals typically don’t need to build their

own computing infrastructures.

Page 6: The Globus Project Infrastructure for Computational Grids

6SIAC 2000, Wright State University, August 21, 2000

Why do we need the Grid?• The Grid will enable applications that include

people, computers, databases, instruments, etc. Online instruments Collaborative engineering Parameter studies Browsing of remote datasets Use of remote software Data-intensive computing Very large-scale simulation

Page 7: The Globus Project Infrastructure for Computational Grids

7SIAC 2000, Wright State University, August 21, 2000

tomographic reconstruction

real-timecollection

wide-areadissemination

desktop & VR clients with shared controls

Advanced Photon Source

Online Instruments

archival storage

DOE X-ray source grand challenge: ANL, USC/ISI, NIST, U.Chicago

Page 8: The Globus Project Infrastructure for Computational Grids

8SIAC 2000, Wright State University, August 21, 2000

Collaborative Engineering

CAVERNsoft: UIC, Electronic Visualization Laboratory

• Manipulate shared virtual space, with Simulation components Multiple flows: Control, Text,

Video, Audio, Database, Simulation, Tracking, Haptics, Rendering

• Issues: (un)reliable uni/multicast Security Reservation & QoS

Page 9: The Globus Project Infrastructure for Computational Grids

9SIAC 2000, Wright State University, August 21, 2000

Control Text Video Audio Database

Tele-immersion

“5 Gflop/sec, flowspecs, design db” Multiple access modalities

Multiple flows Simulation Tracking Haptics Rendering

Leigh et al: UIC, Electronic Visualization Laboratory

Page 10: The Globus Project Infrastructure for Computational Grids

10SIAC 2000, Wright State University, August 21, 2000

Distributed Supercomputing

• Issues: Resource discovery, scheduling Configuration Multiple comm methods Message passing (MPI) Scalability Fault tolerance

NCSAOrigin

CaltechExemplar

ArgonneSP

MauiSP

SF-Express Distributed Interactive Simulation: Caltech, USC/ISI

Page 11: The Globus Project Infrastructure for Computational Grids

11SIAC 2000, Wright State University, August 21, 2000

High-Throughput Computing

Nimrod-G: Monash University

CostDeadline

AvailableMachines

• Schedule many independent tasks Parameter studies Data analysis

• Issues: Resource discovery Data Access Scheduling Reservatation Security Accounting Code management

Page 12: The Globus Project Infrastructure for Computational Grids

12SIAC 2000, Wright State University, August 21, 2000

• Examples: Problem solving env. for

computational chemistry Application web portals

• Issues: Remote job submission,

monitoring, and control Resource discovery Distributed data archive Security Accounting

Problem Solving Environments

ECCE’: Pacific Northwest National Laboratory

Page 13: The Globus Project Infrastructure for Computational Grids

13SIAC 2000, Wright State University, August 21, 2000

The Grid“Dependable, consistent,

pervasive access to[high-end] resources”

• Dependable: Can provide performance and functionality guarantees

• Consistent: Uniform interfaces to a wide variety of resources

• Pervasive: Ability to “plug in” from anywhere

Page 14: The Globus Project Infrastructure for Computational Grids

14SIAC 2000, Wright State University, August 21, 2000

Early Steps Toward the Grid• Metacomputing: late 80s

Focus on distributed computation• Gigabit testbeds: early 90s

Research, primarily on networking• I-WAY: 1995

Demonstration of application feasibility• NFS PACIs (National Technology Grid): 1998• NASA Information Power Grid: 1999• DOE ASCI DISCOM DRM: 1999• European Grid: 2000

Page 15: The Globus Project Infrastructure for Computational Grids

15SIAC 2000, Wright State University, August 21, 2000

Technical Challenges• Complex application structures that combine

aspects of parallel, multimedia, distributed, collaborative computing

• Resource characteristics that vary dynamically in both time and space.

• Requirements for guaranteed high “end to end” performance, despite heterogeneity and lack of global control.

• Desire to retain local policies for security, fees, usage restrictions, management, and technical standards.

Page 16: The Globus Project Infrastructure for Computational Grids

16SIAC 2000, Wright State University, August 21, 2000

Domain 2

Domain 1

•Authenticate once•Specify simulation (code, resources, etc.)•Locate resources•Negotiate authorization, acceptable use, etc.•Acquire resources•Initiate computation•Steer computation•Access remote datasets•Collaborate on results•Account for usage

Issues

Page 17: The Globus Project Infrastructure for Computational Grids

17SIAC 2000, Wright State University, August 21, 2000

Architectural Approaches• Distributed systems: DCE, CORBA, Jini, etc.

Rich functionality eases app development Complexity hinders deployment

• especially in absence of global control Performance difficulties

• Internet/Web Protocols and Tools Simple protocols facilitate deployment Missing functionality hinders app development Performance difficulties

Page 18: The Globus Project Infrastructure for Computational Grids

18SIAC 2000, Wright State University, August 21, 2000

Standards & Commodity Tech• Where appropriate, exploit standards and

commodity technology in core infrastructure LDAP, SSL/TLS, X.509, GSS-API, HTTP, FTP,

XML, SOAP, etc. Provides leverage

• Interface with other common standards CORBA, Java/Jini, DCOM, Web, etc While our core infrastructure may not be built

on one of these distributed architectures, we can and must cleanly interface with them

Page 19: The Globus Project Infrastructure for Computational Grids

19SIAC 2000, Wright State University, August 21, 2000

The Globus Project• Basic research in grid-related technologies

Resource & data management, security, QoS, policy, communication, adaptation, etc.

• Development of the Globus Toolkit Core services for grid-enabled tools & applications

• Construction of production grids & testbeds Environments in which grid software can be deployed

and experiments can be run.• Experimentation with real grid applications

Verifying that the grid works and is useful.

Page 20: The Globus Project Infrastructure for Computational Grids

20SIAC 2000, Wright State University, August 21, 2000

Grid Services ArchitectureApplications

Grid ServicesSecurity

Data Management Fault Detection

Information Services

Resource Management

Grid FabricData Transport

Schedulers

Control Interfaces

Operating Systems

Application ToolkitsData Intensive Remote VisualizationCollab Design

High Throughput Remote Control

Portability

Instrumentation QoS Services

High Energy Physics Data Analysis Climate StudiesCollab Engineering

Online Instrumentation

Message Passing

Page 21: The Globus Project Infrastructure for Computational Grids

21SIAC 2000, Wright State University, August 21, 2000

Globus Project Participants• Globus Project is a large community effort

Globus Toolkit core development• Argonne, USC/ISI, NCSA, SDSC

Globus Toolkit contributors• NASA, DOE ASCI DRM (SNL, LBNL, LLNL), Raytheon, and

numerous others Collaborators

• University, lab, industrial, and international partners spanning many scientific and engineering disciplines

• Active in Grid Forum http://www.gridforum.org

Page 22: The Globus Project Infrastructure for Computational Grids

22SIAC 2000, Wright State University, August 21, 2000

Globus Approach• A toolkit and collection of services addressing

key technical problems Modular “bag of services” model Not a vertically integrated solution General infrastructure tools (aka middleware)

that can be applied to many application domains• Inter-domain issues, rather than clustering

Integration of intra-domain solutions• Distinguish between local and global services

Page 23: The Globus Project Infrastructure for Computational Grids

23SIAC 2000, Wright State University, August 21, 2000

Globus Hourglass

• Focus on architecture issues Propose set of core services

as basic infrastructure Use to construct high-level,

domain-specific solutions• Design principles

Keep participation cost low Enable local control Support for adaptation “IP hourglass” model

Diverse global services

Core Globusservices

Local OS

A p p l i c a t i o n s

Page 24: The Globus Project Infrastructure for Computational Grids

24SIAC 2000, Wright State University, August 21, 2000

Technical Focus & Approach• Enable incremental development of grid-enabled

tools and applications Model neutral: Support many programming models,

languages, tools, and applications Evolve in response to user requirements

• Deploy toolkit on international-scale production grids and testbeds Large-scale application development & testing

• Information-rich environment Basis for configuration and adaptation

Page 25: The Globus Project Infrastructure for Computational Grids

25SIAC 2000, Wright State University, August 21, 2000

Layered ArchitectureApplications

Grid ServicesGRAM

GSI HBM

Nexus

globus_io

Grid FabricLSF

Condor MPI

NQEPBS

TCP

NTLinux

UDP

Application ToolkitsDUROC globusrunMPICH-G Nimrod/GCondor-G HPC++

GlobusView Web Portals

GASS

Solaris DiffServ

GSI-FTPMDS

Page 26: The Globus Project Infrastructure for Computational Grids

26SIAC 2000, Wright State University, August 21, 2000

Globus Toolkit Grid Services• Security (GSI)• Information services (MDS)• Resource management (GRAM)• Data management (GASS, GSI-FTP, replicas)• Communication (globus_io, Nexus) • Fault detection (HBM)• Portability (globus_dc, globus_thread)

Page 27: The Globus Project Infrastructure for Computational Grids

27SIAC 2000, Wright State University, August 21, 2000

Other Globus Project Grid Services• Coming Soon

Data transfer (GSI-FTP) Replica Management

http://www.globus.org/datagrid

• Experimental Prototypes Advanced Reservations & QoS (GARA) Distributed Events & Logging

Page 28: The Globus Project Infrastructure for Computational Grids

28SIAC 2000, Wright State University, August 21, 2000

Sample of High-Level Services• Resource brokers and co-allocators

DUROC, HTB, Nimrod/G, Condor-G, ASCI DRM• Communication & I/O libraries

MPICH-G, PAWS, RIO (MPI-IO), PPFS, MOL• Parallel languages

HPC++, CC++• Collaborative environments

CAVERNsoft, ManyWorlds• Others

MetaNEOS, NetSolve, LSA, AutoPilot, WebFlow

Page 29: The Globus Project Infrastructure for Computational Grids

29SIAC 2000, Wright State University, August 21, 2000

Condor-G: Condor for the Grid• Condor is a high-throughput scheduler• Condor-G uses Globus Toolkit libraries for:

Security (GSI) Managing remote jobs on Grid (GRAM) File staging & remote I/O (GSI-FTP)

• Grid job management interface & scheduling Robust replacement for Globus Toolkit programs

• Globus Toolkit focus is on libraries and services, not end user vertical solutions

Supports single or high-throughput apps on Grid• Personal job manager which can exploit Grid resources

Page 30: The Globus Project Infrastructure for Computational Grids

30SIAC 2000, Wright State University, August 21, 2000

Production Grids & Testbeds• Production deployments underway at:

NSF PACIs (National Technology Grid) NASA Information Power Grid DOE ASCI European Grid

• Research testbeds EMERGE: Advance reservation & QoS GUSTO: Globus Ubiquitous Supercomputing Testbed

Organization Particle Physics Data Grid Earth Systems Grid

Page 31: The Globus Project Infrastructure for Computational Grids

31SIAC 2000, Wright State University, August 21, 2000

Production Grids & Testbeds

NASA’s Information Power Grid The Alliance National Technology Grid

GUSTO Testbed

Page 32: The Globus Project Infrastructure for Computational Grids

32SIAC 2000, Wright State University, August 21, 2000

Application Experiments• Computed microtomography (ANL, ISI)

Real-time, collaborative analysis of data from X-Ray source (and electron microscope)

• Hydrology (ISI, UMD, UT; also NCSA, Wisc.) Interactive modeling and data analysis

• Collaborative engineering (“tele-immersion”) CAVERNsoft @ EVL

• OVERFLOW (NASA) Large CFD simulations for aerospace vehicles

Page 33: The Globus Project Infrastructure for Computational Grids

33SIAC 2000, Wright State University, August 21, 2000

Application Experiments• Distributed interactive simulation (CIT, ISI)

Record-setting SF-Express simulation• Cactus

Astrophysics simulation, viz, and steering Including trans-Atlantic experiments

• Particle Physics Data Grid High Energy Physics distributed data analysis

• Earth Systems Grid Climate modeling data management

Page 34: The Globus Project Infrastructure for Computational Grids

34SIAC 2000, Wright State University, August 21, 2000

Where Are We? (August 2000)• Research is focused on data management,

resource management, and web portals.• Globus Toolkit v1.1.3 has been released.

Runs on most versions of Unix, Win32 clients.• Production deployment is underway.

NSF PACIs, NASA IPG, DOE ASCI DRM• Many research applications and tools are

using these testbeds.• We’re always looking for interesting

applications.

Page 35: The Globus Project Infrastructure for Computational Grids

35SIAC 2000, Wright State University, August 21, 2000

For More Information on Globushttp://www.globus.org/

• Papers on most components• Tutorials

User, Developer, Administrator• Manuals

Quick Start Guide, System Administration Guide• Mailing lists

[email protected], [email protected]• Software & API documentation• Application descriptions• Attend Supercomputing 2000 (Nov. 2000)

Page 36: The Globus Project Infrastructure for Computational Grids

36SIAC 2000, Wright State University, August 21, 2000

The Grid:Blueprint for a New Computing Infrastructure

I. Foster, C. Kesselman (Eds), Morgan Kaufmann, 1999• Available July 1998; ISBN 1-55860-475-8 • 22 chapters by expert

authors including Andrew Chien, Jack Dongarra, Tom DeFanti, Andrew Grimshaw, Roch Guerin, Ken Kennedy, Paul Messina, Cliff Neuman, Jon Postel, Larry Smarr, Rick Stevens, and many others

http://www.mkp.com/grids

“A source book for the historyof the future” -- Vint Cerf

Page 37: The Globus Project Infrastructure for Computational Grids

37SIAC 2000, Wright State University, August 21, 2000

Session Approach• Five sections, each illustrating a basic

Globus service• Laboratory material is available to allow

practice with the use of each technique See http://www.globus.org/tutorial/

Page 38: The Globus Project Infrastructure for Computational Grids

38SIAC 2000, Wright State University, August 21, 2000

Desktop Supercomputing• Seamlessly, from the desktop

Sign-on once Locate available computers Start computation on an appropriate

system Monitor progress Get output files Manipulate locally

• E.g. ECCE’, Cactus, Hotpage, Chemical Eng. Workbench, WebFlow, LSA

Page 39: The Globus Project Infrastructure for Computational Grids

39SIAC 2000, Wright State University, August 21, 2000

WebFlow Grid Interface • Dataflow computing

interface to grid computing Fox, Haupt: Syracuse

• Globus services for Authentication Process creation and

management• Applications include

nanomaterials

Page 40: The Globus Project Infrastructure for Computational Grids

40SIAC 2000, Wright State University, August 21, 2000

Application Challenges• Security

How do we authenticate ourselves at the remote site?

• Resource specification How do we locate and request a resource?

• Staging of code and data How do we stage a user’s executables and data to

the remote resource?• Computation

How do we start & manage computation?

Page 41: The Globus Project Infrastructure for Computational Grids

41SIAC 2000, Wright State University, August 21, 2000

Grid Services• Single sign-on for all resources

No need for user to keep track of accounts and passwords at multiple sites

No plaintext passwords• Uniform interface to various local scheduling

mechanisms PBS, Condor, LSF, NQE, LoadLeveler, fork, etc. No need to learn and remember obscure

command sequences at different sites• Support for file staging, remote I/O, etc.

Page 42: The Globus Project Infrastructure for Computational Grids

42SIAC 2000, Wright State University, August 21, 2000

Grid Authentication Model• Authentication is done on a “user” basis

Single authentication step allows access to all grid resources

• No communication of plaintext passwords• Most sites will use conventional account

mechanisms You must have an account on a resource to use that

resource• Sites may use “generic” Grid accounts

Not common, but Globus can deal with it

Page 43: The Globus Project Infrastructure for Computational Grids

43SIAC 2000, Wright State University, August 21, 2000

Grid Security Infrastructure (GSI)• Based on public key technology

Standard X.509 certificate, same as certificates used for the Web

• Each user has: a Grid user id (called a Subject Name) a private key (like a password) a certificate signed by a Certificate Authority

(CA)• A “gridmap” file at each site specifies

grid-id to local-id mapping

Page 44: The Globus Project Infrastructure for Computational Grids

44SIAC 2000, Wright State University, August 21, 2000

Certificate Based Authentication• User has a certificate, signed by a trusted “certificate

authority” (CA) Certificate contains users name and public key Globus project operates a CA

• User’s private key is used to encode a challenge string

• Public key is used to decode the challenge If you can decode it, you know the user

• Treat your private key carefully!! Private key is stored in encrypted form

Page 45: The Globus Project Infrastructure for Computational Grids

45SIAC 2000, Wright State University, August 21, 2000

User Proxies• Minimize exposure of user’s private key• A temporary credential for use by our

computations We call this a user proxy certificate Allows process to act on behalf of user User-signed user proxy certificate stored in

local file• Proxy’s private key is not encrypted

Rely on file system security, proxy certificate file must be readable only by the owner

Page 46: The Globus Project Infrastructure for Computational Grids

46SIAC 2000, Wright State University, August 21, 2000

Delegation• Remote creation of a user proxy• Allows remote process to act on behalf of

the user• Avoids sending passwords or private keys

across the network

Page 47: The Globus Project Infrastructure for Computational Grids

47SIAC 2000, Wright State University, August 21, 2000

Single sign-onvia “grid-id”

User

User Proxy

GlobusGlobusCredentialCredential

Site 1

Kerberos

GRAM Process

Process

ProcessGSI

TicketTicket

Site 2

Public Key

GRAM

GSI

CertificateCertificate

Process

Process

Process

Authenticatedinterprocess

communication

CREDENTIAL

GSSAPI:multiplelow-level

mechanisms

Mutualuser-resourceauthentication

Mappingto local ids

Assignment of credentials to“user proxies”

Page 48: The Globus Project Infrastructure for Computational Grids

48SIAC 2000, Wright State University, August 21, 2000

Globus Authentication Setup• Before you can run Globus applications:

Install Globus Obtain a Grid certificate and key Set up your environment so Globus knows where to

find certificates and keys Contact sites to set up local accounts and globusmap

entries Create proxy certificate for each application run

• Documentation Globus Quick Start Guide (on website)

Page 49: The Globus Project Infrastructure for Computational Grids

49SIAC 2000, Wright State University, August 21, 2000

Your New CertificateCertificate: Data: Version: 3 (0x2) Serial Number: 28 (0x1c) Signature Algorithm: md5WithRSAEncryption Issuer: C=US, O=Globus, CN=Globus Certification Authority Validity Not Before: Apr 22 19:21:50 1998 GMT Not After : Apr 22 19:21:50 1999 GMT Subject: C=US, O=Globus, O=NACI, OU=SDSC, CN=Richard Frost Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:bf:4c:9b:ae:51:e5:ad:ac:54:4f:12:52:3a:69: <snip> b4:e1:54:e7:87:57:b7:d0:61 Exponent: 65537 (0x10001)Signature Algorithm: md5WithRSAEncryption 59:86:6e:df:dd:94:5d:26:f5:23:c1:89:83:8e:3c:97:fc:d8: <snip> 8d:cd:7c:7e:49:68:15:7e:5f:24:23:54:ca:a2:27:f1:35:17:

NTP is highlyrecommended

Page 50: The Globus Project Infrastructure for Computational Grids

50SIAC 2000, Wright State University, August 21, 2000

“Logging on” to the Grid• To run programs, authenticate to Globus:

% grid-proxy-initEnter PEM pass phrase: ******

• Creates a temporary, short-lived credential for use by our computationsPrivate key is not exposed past grid-proxy-init

• Options for grid-proxy-init:-hours <lifetime of credential>-bits <length of key>-help

Page 51: The Globus Project Infrastructure for Computational Grids

51SIAC 2000, Wright State University, August 21, 2000

Proxy Information• To get proxy information run grid-proxy-info

% grid-proxy-info -subject/C=US/O=Globus/O=ANL/OU=MCS/CN=Ian Foster

• Options for printing proxy information-subject -issuer-type -timeleft-strength -help

• Options for scripting proxy queries-exists -hours <lifetime of credential>-exists -bits <length of key> Returns 0 status for true, 1 for false:

Page 52: The Globus Project Infrastructure for Computational Grids

52SIAC 2000, Wright State University, August 21, 2000

Sample Gridmap File

# Distinguished name Local# username"/C=US/O=Globus/O=NPACI/OU=SDSC/CN=Rich Gallup” rpg"/C=US/O=Globus/O=NPACI/OU=SDSC/CN=Richard Frost” frost"/C=US/O=Globus/O=USC/OU=ISI/CN=Carl Kesselman” u14543"/C=US/O=Globus/O=ANL/OU=MCS/CN=Ian Foster” itf

• Gridmap file maintained by Globus administrator

• Entry maps Grid-id into local user name(s)

Page 53: The Globus Project Infrastructure for Computational Grids

53SIAC 2000, Wright State University, August 21, 2000

Remote Startup Mechanism

key

cert

gatekeeperclient

1. Exchange certificates, authenticate, delegate

2. Check gridmap file3. Lookup service4. Run service program

(e.g. jobmanager)

jobmanager

key

cert

1.

2.

map

4.

services3.

Page 54: The Globus Project Infrastructure for Computational Grids

54SIAC 2000, Wright State University, August 21, 2000

Simple job submission• globus-job-run provides a simple RSH

compatible interface% grid-proxy-init Enter PEM pass phrase: *****% globus-job-run host program [args]

• Job submission will be covered in more detail in Part 5

Page 55: The Globus Project Infrastructure for Computational Grids

55SIAC 2000, Wright State University, August 21, 2000

Exercise: Sign-On & Remote Process Creation

• Use grid-proxy-init to create a proxy certificate:

% grid-proxy-initEnter PEM pass phrase:......................................+++++.....+++++

• Use grid-proxy-info to query proxy:% grid-proxy-info -subject

• Use globus-job-run to start remote programs:

% globus-job-run jupiter.isi.edu /usr/bin/ls -l /tmp

Page 56: The Globus Project Infrastructure for Computational Grids

56SIAC 2000, Wright State University, August 21, 2000

Globus Components Being Used• GSI: Grid Security Infrastructure

Authenticate to remote system• GRAM: Globus Resource Allocation Manager

Create process on remote resource, deal with local resource managers

• GASS: Global Access to Secondary Storage Redirect standard output

(More on GRAM and GASS later!)

Page 57: The Globus Project Infrastructure for Computational Grids

57SIAC 2000, Wright State University, August 21, 2000

Summary• Grid Security Infrastructure (GSI) provides

single sign-on capability• globus-job-run can be used to create a

remote process Difference between schedulers managed by

Globus Strong authentication provided

• Remote process creation can be added to applications by using Globus services

Page 58: The Globus Project Infrastructure for Computational Grids

58SIAC 2000, Wright State University, August 21, 2000

Grid Information Services• System information is critical to operation

of the grid and construction of applications How does an application determine what

resources are available? What is the “state” of the computational

grid? How can we optimize an application based

on configuration of the underlying system?• We need a general information

infrastructure to answer these questions

Page 59: The Globus Project Infrastructure for Computational Grids

59SIAC 2000, Wright State University, August 21, 2000

Using Information forResource Brokering

“10 GFlops, EOS data,20 Mb/sec -- for 20 mins”

MetacomputingDirectoryService

GRAMGRAMGRAM

ResourceBroker

Info service:location + selection

Globus ResourceAllocation Managers

GRAM

ForkLSFEASYLLCondoretc.

“What computers?”“What speed?”“When available?”

“50 processors + storage from 10:20 to 10:40 pm”

“20 Mb/sec”

Page 60: The Globus Project Infrastructure for Computational Grids

60SIAC 2000, Wright State University, August 21, 2000

Examples of Useful Information• Characteristics of a compute resource

IP address, software available, system administrator, networks connected to, OS version, load

• Characteristics of a network Bandwidth and latency, protocols, logical

topology• Characteristics of the Globus infrastructure

Hosts, resource managers

Page 61: The Globus Project Infrastructure for Computational Grids

61SIAC 2000, Wright State University, August 21, 2000

Grid Information Service• Provide access to static and dynamic

information regarding system components• A basis for configuration and adaptation in

heterogeneous, dynamic environments• Requirements and characteristics

Uniform, flexible access to information Scalable, efficient access to dynamic data Access to multiple information sources Decentralized maintenance

Page 62: The Globus Project Infrastructure for Computational Grids

62SIAC 2000, Wright State University, August 21, 2000

The Globus Toolkit’sMetacomputing Directory Service (MDS)

• Information is maintained in a distributed directory. Information is accessed via a standard protocol Information is distributed across many servers Each server can be optimized for particular functions

• Information comes from many sources. Information providers and tools Applications (i.e., users) Resources that generate info on demand

• Information is available everywhere.

Page 63: The Globus Project Infrastructure for Computational Grids

63SIAC 2000, Wright State University, August 21, 2000

MDS Features• White Pages

Look up the IP number, amount of memory, etc., associated with a particular machine

• Yellow Pages Search for computers of a particular class or with a

particular property • Information is dynamic!

In a distributed system, things change without warning. Information often has an expiration date or other

measures of uncertainty.

Page 64: The Globus Project Infrastructure for Computational Grids

64SIAC 2000, Wright State University, August 21, 2000

MDS Approach• Based on LDAP

Lightweight Directory Access Protocol v3 (LDAPv3)

Standard data model Standard query protocol

• Globus specific schema Host-centric representation

• Globus specific tools GRIS, GIIS Data discovery, publication,… SNMP

GRIS

NIS

NWS

LDAP

LDAP API

Middleware

Application

GIIS…

Page 65: The Globus Project Infrastructure for Computational Grids

65SIAC 2000, Wright State University, August 21, 2000

LDAP Details

• Lightweight Directory Access Protocol Stripped down version of X.500 DAP protocol Supports distributed storage/access (referrals) Supports replication Becoming de facto standard

• Defines: Network protocol for accessing directory contents Information model defining form of information Namespace defining how information is

referenced and organized

Page 66: The Globus Project Infrastructure for Computational Grids

66SIAC 2000, Wright State University, August 21, 2000

LDAP Directory Structure• Directory contents

Called Object Classes and Entries What information is stored in directory Group related information into entries

• Directory organization Called Directory Information Tree (DIT) Objects are organized into tree structure Position of object in tree uniquely names

entry within the server

Page 67: The Globus Project Infrastructure for Computational Grids

67SIAC 2000, Wright State University, August 21, 2000

Sample Object Classes• Compute Resources

Operating System Memory Hierarchy Health and Status

• Network Interfaces IP address Interface types

• Performance Data Schedule Jobs CPU Loads Network Traffic

• Resource Managers Contact strings Scheduled jobs Free nodes

• Software Configuration Version Control Contact information

• Organizations• People

Page 68: The Globus Project Infrastructure for Computational Grids

68SIAC 2000, Wright State University, August 21, 2000

LDAP Directory Information Tree• Directory entries are organized into a tree.

Called Directory Information Tree (DIT) Subtrees can be distributed or replicated.

• Position in tree uniquely names entry within a server.

• Each object in a server is uniquely determined by its distinguished name (DN). List of unique attribute names and values

along path from root of DIT to object, e.g.:<hn=sp2.sdsc.edu, dc=sdsc, dc=edu, o=Grid>

Page 69: The Globus Project Infrastructure for Computational Grids

69SIAC 2000, Wright State University, August 21, 2000

Global Namespace• A DN uniquely names an entry within an LDAP

server.• The host and port uniquely names an LDAP

server.• An LDAP URL is the combination of these.

ldap://<host>:<port>/<DN>• LDAP URL can be used as the global name of

an entry.

Page 70: The Globus Project Infrastructure for Computational Grids

70SIAC 2000, Wright State University, August 21, 2000

MDS Components• Uses standard LDAP servers

OpenLDAP, Netscape, Oracle, etc• Tools for populating & maintaining MDS

Integrated with Globus Toolkit server release, not of concern to most Globus users

Discover/update static and dynamic info• APIs for accessing & updating MDS contents

C, Java, PERL (LDAP API, JNDI)• Various tools for manipulating MDS contents

Command line tools, Shell scripts & GUIs

Page 71: The Globus Project Infrastructure for Computational Grids

71SIAC 2000, Wright State University, August 21, 2000

Three Classes Of MDS Servers• Grid Resource Information Service (GRIS)

Supplies information about a specific resource Mostly “white pages” lookups

• Grid Index Information Service (GIIS) Supplies collection of information which was gathered

from multiple GRIS servers Supports efficient queries against information which is

spread across multiple GRIS servers Mostly “yellow pages” lookups

• Referral Service Links together GRIS and/or GIIS servers

Page 72: The Globus Project Infrastructure for Computational Grids

72SIAC 2000, Wright State University, August 21, 2000

Grid Resource Information Service• GRIS is an LDAP server which runs on each resource.

GRIS runs on a well known port (2135).• GRIS provides resource-specific information.

Load, process information, storage information, etc. GRIS gathers this information on demand with a TTL

• GRIS supports white & yellow pages queries. Configuration settings Capabilities (queues, extra equipment, etc.)

• GRIS can be configured to register with a GIIS on startup, deregister on shutdown.

Page 73: The Globus Project Infrastructure for Computational Grids

73SIAC 2000, Wright State University, August 21, 2000

Grid Index Information Service• GIIS describes a class of servers.

Gathers information from multiple GRIS servers. Each GIIS is optimized for particular queries.

• Ex1: Which Alliance machines are >16 process SGIs?• Ex2: Which Alliance storage servers have >100Mbps bandwidth to

host X? GIIS is similar to web search engines.

• GIIS can be used to inventory an organization’s resources (“organizational information service”). The Globus Toolkit includes a GIIS. Caches GRIS info with long update frequency.

• Useful for queries across an organization that rely on relatively static information. (Ex1 above.)

Page 74: The Globus Project Infrastructure for Computational Grids

74SIAC 2000, Wright State University, August 21, 2000

Referral Service• Links together multiple GRIS and/or GIIS servers

into a single LDAP namespace• Referral servers contain no actual content• Current limitations

Requires LDAPv3 referrals Some LDAP clients to not have good support for

referrals But this is improving…

• Can be implemented as a GIIS or as a commercial LDAP server.

Page 75: The Globus Project Infrastructure for Computational Grids

75SIAC 2000, Wright State University, August 21, 2000

Pulling Together a DIT• In order for a GRIS’s content to appear in a GIIS, the

GIIS must first find it. GRISes can register with GIIS during startup. GIIS can be configured with GRISes’ hostnames. GIIS can walk a referral tree to find GRISes.

• MDS can support any of these approaches. The “right” approach depends on the organization’s

requirements. Can use a combinations of these approaches. This is the subject of ongoing research.

Page 76: The Globus Project Infrastructure for Computational Grids

76SIAC 2000, Wright State University, August 21, 2000

Finding a GIIS• How does a user or application find a GIIS server?

Options include: Runs on well-known host/port Use DNS server records

• Returns host/port of server for a particular domain Part of referral tree

• Recursive: How do you find the referral service? Indexed by another GIIS

• Recursive: How do you find the referral service?• This is also the subject of ongoing research.

Page 77: The Globus Project Infrastructure for Computational Grids

77SIAC 2000, Wright State University, August 21, 2000

Server Registration• A GRIS or GIIS server can be configured to

(de-)register itself during startup/shutdown Basic capability that is useful in many scenarios

• Support for multiple registration protocols Can register with a GIIS using custom protocol Can dynamically add itself to a referral tree

using LDAPv3 referral protocol• Allows for federations of information servers

E.g. Argonne GRIS can register with both Alliance and DOE GIIS servers

Page 78: The Globus Project Infrastructure for Computational Grids

78SIAC 2000, Wright State University, August 21, 2000

MDS Tools• Java LDAP browser

http://www.mcs.anl.gov/~gawor/ldap• Web-based browsers and displays

http://www.globus.org/mds• CGI-based MDS browser• MDS Object Class Browser

• Various APIs and search tools • Translators from “Globus Object Definition

Language” Commented LDIF - LDAP schema definition Converts to LDIF, HTML

Page 79: The Globus Project Infrastructure for Computational Grids

79SIAC 2000, Wright State University, August 21, 2000

Page 80: The Globus Project Infrastructure for Computational Grids

80SIAC 2000, Wright State University, August 21, 2000

MDS Access/Update Commands• LDAP defines a set of standard commands

ldapsearch, ldapmodify, ldapdelete, etc.• We also define MDS-specific commands

grid-info-search, grid-info-create, grid-info-update, grid-info-remove, grid-info-host-search

Routines to ensure data consistency and to insert metadata

• APIs are defined for C, Java, etc. C: OpenLDAP client API

• ldap_search_s(), ldap_modify_s(), … Java: JNDI

Page 81: The Globus Project Infrastructure for Computational Grids

81SIAC 2000, Wright State University, August 21, 2000

Searching an LDAP Databasegrid-info-search [options] filter [attributes]

• Default grid-info-search options-h mds.globus.org MDS server-p 389 MDS port-b “o=Grid” search start point-T 30 LDAP query timeout-s sub scope = subtree

alternatives: base : lookup this entry one : lookup immediate children

Page 82: The Globus Project Infrastructure for Computational Grids

82SIAC 2000, Wright State University, August 21, 2000

Searching a GRIS Servergrid-info-host-search [options] filter [attributes]

• Exactly like grid-info-search, except defaults:-h localhost GRIS server-p 2135 GRIS port

• Example:grid-info-host-search –h pitcairn “dn=*” dn

Page 83: The Globus Project Infrastructure for Computational Grids

83SIAC 2000, Wright State University, August 21, 2000

Filtering• Filters allow selection of object based on

relational operators (=, ~=,<=, >=) grid-info-search “cputype=*”

• Compound filters can be construct with Boolean operations: (&, |, !) grid-info-search “(&(cputype=*)(cpuload1<=1.0))” grid-info-search “(&(hn~=sdsc.edu)(latency<=10))”

• Hints: white space is significant use -L for LDIF format

required

Page 84: The Globus Project Infrastructure for Computational Grids

84SIAC 2000, Wright State University, August 21, 2000

Example: Filtering

% grid-info-host-search -L “(objectclass=GlobusSoftware)”

dn: sw=Globus, hn=pitcairn.mcs.anl.gov, dc=mcs, dc=anl, dc=gov, o=Gridobjectclass: GlobusSoftwarereleasedate: 2000/04/11 19:48:29releasemajor: 1releaseminor: 1releasepatch: 3releasebeta: 11lastupdate: Sun Apr 30 19:28:19 GMT 2000objectname: sw=Globus, hn=pitcairn.mcs.anl.gov, dc=mcs, dc=anl, dc=gov, o=Grid

Page 85: The Globus Project Infrastructure for Computational Grids

85SIAC 2000, Wright State University, August 21, 2000

Example: Attribute Selection% grid-info-host- search -L “(objectclass=*)” dn hn

Returns the distinguished name (dn) and hostname (hn) of all objects

Objects without hn fields are still listed DNs are always listed

dn: sw=Globus, hn=pitcairn.mcs.anl.gov, dc=mcs, dc=anl, dc=gov, o=Grid

dn: hn=pitcairn.mcs.anl.gov, dc=mcs, dc=anl, dc=gov, o=Gridhn: pitcairn.mcs.anl.gov

dn: service=jobmanager, hn=pitcairn.mcs.anl.gov, dc=mcs, dc=anl, dc=gov, o=Gridhn: pitcairn.mcs.anl.gov

dn: queue=default, service=jobmanager, hn=pitcairn.mcs.anl.gov, dc=mcs, dc=anl, dc=gov, o=Grid

Page 86: The Globus Project Infrastructure for Computational Grids

86SIAC 2000, Wright State University, August 21, 2000

Example: Discovering CPU Load• Retrieve CPU load fields of compute resources% grid-info-search -L “(objectclass=GlobusComputeResource)” \ dn cpuload1 cpuload5 cpuload15 dn: hn=lemon.mcs.anl.gov, ou=MCS, o=Argonne National Laboratory, o=Globus, c=UScpuload1: 0.48cpuload5: 0.20cpuload15: 0.03 dn: hn=tuva.mcs.anl.gov, ou=MCS, o=Argonne National Laboratory, o=Globus, c=UScpuload1: 3.11cpuload5: 2.64cpuload15: 2.57

Page 87: The Globus Project Infrastructure for Computational Grids

87SIAC 2000, Wright State University, August 21, 2000

MDS and Security• Authentication is required to perform certain

operations (e.g., write operations)• Each site has a Directory Manager

cn=Directory Manager, o=Organization, c=US• Users registered with the MDS have a DN

cn=Jane Doe, o=Organization, c=US% grid-info-search -D “cn=Jane Doe, o=Organization, c=US” \

-w <passwd>• GSI based authentication coming soon

Working prototype of GSI with OpenLDAP v2

Page 88: The Globus Project Infrastructure for Computational Grids

88SIAC 2000, Wright State University, August 21, 2000

Summary• MDS provides the information needed to

perform dynamic resource discovery and configuration. This is a critical component of resource

brokers!• MDS is based on existing directory service

standards (LDAPv3).• Although MDS is based on the LDAPv3

protocol, we are not tied to commercial LDAP servers.

Page 89: The Globus Project Infrastructure for Computational Grids

89SIAC 2000, Wright State University, August 21, 2000

SF-ExpressDistributed Interactive Simulation

P. Messina et al., Caltech

• Developed at Caltech• 100K vehicles (2002 goal) using 13

computers, 1386 nodes, 9 sites• Globus mechanisms for

Resource allocation Distributed startup I/O and configuration Fault detection

NCSAOrigin Caltech

Exemplar

CEWESSP

MauiSP

Page 90: The Globus Project Infrastructure for Computational Grids

90SIAC 2000, Wright State University, August 21, 2000

Grid Services• Resource Specification: the power to express the

required resources and constraints• Resource Co-allocation: using resources together

simultaneously• Executable staging, remote data access and I/O

streaming (more on these later)• These services should be integrated with higher-

level tools MPICH-G, globus-job-*, Condor, PBS, GRD, etc.

Page 91: The Globus Project Infrastructure for Computational Grids

91SIAC 2000, Wright State University, August 21, 2000

Globus Components in Actionglobus-job-run

jobmanager

fork

P1 P2

gatekeeper

jobmanager

LSF

P1 P2

gatekeeper

jobmanager

LoadLeveler

P1 P2

gatekeeperGRAM

Page 92: The Globus Project Infrastructure for Computational Grids

92SIAC 2000, Wright State University, August 21, 2000

Resource Management• Resource Specification Language (RSL) is

used to communicate requirements • The Globus Resource Allocation Manager

(GRAM) API allows programs to be started on remote resources, despite local heterogeneity

• A layered architecture allows application-specific resource brokers and co-allocators to be defined in terms of GRAM services

Page 93: The Globus Project Infrastructure for Computational Grids

93SIAC 2000, Wright State University, August 21, 2000

GRAM GRAM GRAMLSF EASY-LL NQE

Application

RSL

RSL

Information Service

Localresourcemanagers

Broker

Co-allocator

Building a Resource Broker

RSL

LDAP

RSLRSLStatus

Globuscomponents

Page 94: The Globus Project Infrastructure for Computational Grids

94SIAC 2000, Wright State University, August 21, 2000

Resource Specification Language• Common notation for exchange of

information between components Syntax similar to MDS/LDAP filters

• RSL provides two types of information: Resource requirements: Machine type,

number of nodes, memory, etc. Job configuration: Directory, executable,

args, environment• API provided for manipulating RSL

Page 95: The Globus Project Infrastructure for Computational Grids

95SIAC 2000, Wright State University, August 21, 2000

RSL Syntax• Elementary form: parenthesis clauses

(attribute op value [ value … ] )• Operators Supported:

<, <=, =, >=, > , != • Some supported attributes:

executable, arguments, environment, stdin, stdout, stderr, resourceManagerContact,resourceManagerName

• Unknown attributes are passed through May be handled by subsequent tools

Page 96: The Globus Project Infrastructure for Computational Grids

96SIAC 2000, Wright State University, August 21, 2000

Constraints: “&”• For example:

& (count>=5) (count<=10) (max_time=240) (memory>=64) (executable=myprog)

• “Create 5-10 instances of myprog, each on a machine with at least 64 MB memory that is available to me for 4 hours”

Page 97: The Globus Project Infrastructure for Computational Grids

97SIAC 2000, Wright State University, August 21, 2000

Disjunction: “|”• For example:

& (executable=myprog) ( | (&(count=5)(memory>=64)) (&(count=10)(memory>=32)))

• Create 5 instances of myprog on a machine that has at least 64MB of memory, or 10 instances on a machine with at least 32MB of memory

Page 98: The Globus Project Infrastructure for Computational Grids

98SIAC 2000, Wright State University, August 21, 2000

GRAM Components

Globus SecurityInfrastructure

Job Manager

GRAM client API calls to request resource allocation

and process creation.

MDS client API callsto locate resources

Query current statusof resource

Create

RSL Library

Parse

Request Allocate &create processes

Process

Process

Process

Monitor &control

Site boundary

Client MDS: Grid Index Info Server

Gatekeeper

MDS: Grid Resource Info Server

Local Resource Manager

MDS client API callsto get resource info

GRAM client API statechange callbacks

Page 99: The Globus Project Infrastructure for Computational Grids

99SIAC 2000, Wright State University, August 21, 2000

Multirequest: “+”• A multirequest allows us to specify multiple

resource needs, for example+ (& (count=5)(memory>=64) (executable=p1)) (&(network=atm) (executable=p2)) Execute 5 instances of p1 on a machine with at least

64M of memory Execute p2 on a machine with an ATM connection

• Multirequests are central to co-allocation

Page 100: The Globus Project Infrastructure for Computational Grids

100SIAC 2000, Wright State University, August 21, 2000

Co-allocation• Simultaneous allocation of a resource set

Handled via optimistic co-allocation based on free nodes or queue prediction

In the future, advance reservations will also be supported

• globusrun and globus-job-* will co-allocate specific multi-requests Uses a Globus component called the Dynamically

Updated Request OnlineCo-allocator (DUROC)

Page 101: The Globus Project Infrastructure for Computational Grids

101SIAC 2000, Wright State University, August 21, 2000

A Co-allocation Multirequest+( & (resourceManagerContact= “flash.isi.edu:754:/C=US/…/CN=flash.isi.edu-fork”) (count=1) (label="subjob A") (executable= my_app1) ) ( & (resourceManagerContact= “sp139.sdsc.edu:8711:/C=US/…/CN=sp097.sdsc.edu-lsf") (count=2) (label="subjob B") (executable=my_app2) )

Different executables

Differentcounts

Different resourcemanagers

Page 102: The Globus Project Infrastructure for Computational Grids

102SIAC 2000, Wright State University, August 21, 2000

Job Submission Interfaces• Globus Toolkit includes several command

line programs for job submission globus-job-run: Interactive jobs globus-job-submit: Batch/offline jobs globusrun: Flexible scripting infrastructure

• Others are building better interfaces General purpose

• Condor-G, PBS, GRD, Hotpage, etc Application specific

• ECCE’, Cactus, Web portals

Page 103: The Globus Project Infrastructure for Computational Grids

103SIAC 2000, Wright State University, August 21, 2000

globus-job-run• For running of interactive jobs• Additional functionality beyond rsh

Ex: Run 2 process job w/ executable stagingglobus-job-run -: host –np 2 –s myprog arg1 arg2

Ex: Run 5 processes across 2 hostsglobus-job-run \

-: host1 –np 2 –s myprog.linux arg1 \-: host2 –np 3 –s myprog.aix arg2

For list of arguments run:globus-job-run -help

Page 104: The Globus Project Infrastructure for Computational Grids

104SIAC 2000, Wright State University, August 21, 2000

globus-job-submit• For running of batch/offline jobs

globus-job-submit Submit job• Same interface as globus-job-run• Returns immediately

globus-job-status Check job status globus-job-cancel Cancel job globus-job-get-output Get job stdout/err globus-job-clean Cleanup after job

Page 105: The Globus Project Infrastructure for Computational Grids

105SIAC 2000, Wright State University, August 21, 2000

globusrun• Flexible job submission for scripting

Uses an RSL string to specify job request Contains an embedded globus-gass-server

• Defines GASS URL prefix in RSL substitution variable:(stdout=$(GLOBUSRUN_GASS_URL)/stdout)

Supports both interactive and offline jobs• Complex to use

Must write RSL by hand Must understand its esoteric features Generally you should use globus-job-* commands

instead

Page 106: The Globus Project Infrastructure for Computational Grids

106SIAC 2000, Wright State University, August 21, 2000

Brokering via Lowering• Resource location by refining a RSL

expression (RSL lowering):(MFLOPS=1000)

(& (arch=sp2)(count=200)) (+ (& (arch=sp2) (count=120)

(resourceManagerContact=anlsp2)) (& (arch=sp2) (count=80) (resourceManagerContact=uhsp2)))

Page 107: The Globus Project Infrastructure for Computational Grids

107SIAC 2000, Wright State University, August 21, 2000

SF-ExpressDistributed Interactive Simulation

P. Messina et al., Caltech

• Developed at Caltech• 100K vehicles (2002 goal) using 13

computers, 1386 nodes, 9 sites• Globus mechanisms for

Resource allocation Distributed startup I/O and configuration Fault detection

NCSAOrigin Caltech

Exemplar

CEWESSP

MauiSP

Page 108: The Globus Project Infrastructure for Computational Grids

108SIAC 2000, Wright State University, August 21, 2000

Grid Services• Resource Specification and Resource

Co-allocation (GRAM)• Executable Staging• Remote Data Access• These services should be integrated with higher-

level tools globus-job-*, Condor, etc.

Page 109: The Globus Project Infrastructure for Computational Grids

109SIAC 2000, Wright State University, August 21, 2000

What is GASS?

1. RSL extensions URLs used to name executables, stdout, stderr

2. A file access API Replace open/close with globus_gass_open/close;

read/write calls can then proceed directly3. Remote cache management utility

Page 110: The Globus Project Infrastructure for Computational Grids

110SIAC 2000, Wright State University, August 21, 2000

GASS Architecture

Cache

GASS Server

HTTP Server

FTP Server

% globus-gass-cacheRemote cache management

GRAM

GASS file access API

&(executable=https://…)RSL extensionsmain( ) {

fd = globus_gass_open(…) … read(fd,…) … globus_gass_close(fd)}

1

23

Page 111: The Globus Project Infrastructure for Computational Grids

111SIAC 2000, Wright State University, August 21, 2000

GASS File Naming• URL encoding of resource names

https://quad.mcs.anl.gov:9991/~bester/myjob

protocol server address file name• Other examples

https://pitcairn.mcs.anl.gov/tmp/input_dataset.1https://pitcairn.mcs.anl.gov:2222/./output_datahttp://www.globus.org/~bester/input_dataset.2

• Currently supports http & https• Next release will also support ftp & gsiftp.

Page 112: The Globus Project Infrastructure for Computational Grids

112SIAC 2000, Wright State University, August 21, 2000

GASS RSL Extensions• executable, stdin, stdout, stderr can be

local files or URLs• executable and stdin loaded into local

cache before job begins (on front-end node)

• stdout, stderr handled via GASS append mode

• Cache cleaned after job completes

Page 113: The Globus Project Infrastructure for Computational Grids

113SIAC 2000, Wright State University, August 21, 2000

GASS/RSL Example

&(executable=https://quad:1234/~/myexe) (stdin=https://quad:1234/~/myin) (stdout=/home/bester/output) (stderr=https://quad:1234/dev/stdout)

Page 114: The Globus Project Infrastructure for Computational Grids

114SIAC 2000, Wright State University, August 21, 2000

Example GASS Applications• On-demand, transparent loading of data

sets• Caching of data sets• Automatic staging of code and data to

remote supercomputers• (Near) real-time logging of application

output to remote server

Page 115: The Globus Project Infrastructure for Computational Grids

115SIAC 2000, Wright State University, August 21, 2000

GASS File Access API• Minimum changes to application• globus_gass_open(), globus_gass_close()

Same as open(), close() but use URLs instead of filenames

Caches URL in case of multiple opens Return descriptors to files in local cache or

sockets to remote server• globus_gass_fopen(), globus_gass_fclose()

Page 116: The Globus Project Infrastructure for Computational Grids

116SIAC 2000, Wright State University, August 21, 2000

GASS File Access API (cont)• Support for different access patterns

Read-only (from local cache) Write-only (to local cache) Read-write (to/from local cache) Write-only, append (to remote server)

Page 117: The Globus Project Infrastructure for Computational Grids

117SIAC 2000, Wright State University, August 21, 2000

Remove cachereference

Upload changes

Modified noyes

globus_gass_open()/close()

Download Fileinto cache

open cached file,add cachereference

URL in cache? noyes

globus_gass_open()globus_gass_close()

Page 118: The Globus Project Infrastructure for Computational Grids

118SIAC 2000, Wright State University, August 21, 2000

GASS File API Semantics

• Copy-on-open to cache if not truncate or write-only append and not already in cache

• Copy on close from cache if not read only and not other copies open

• Multiple globus_gass_open() calls share local copy of file

• Append to remote file if write only append: e.g., for stdout and stderr

• Reference counting keeps track of open files

Page 119: The Globus Project Infrastructure for Computational Grids

119SIAC 2000, Wright State University, August 21, 2000

Remote Cache Management Utilities

• Remote management of caches, for Prestaging/poststaging of files Cache cleanup and management

• Support operations on local & remote caches

• Functionality encapsulated in a program: globus-gass-cache

Page 120: The Globus Project Infrastructure for Computational Grids

120SIAC 2000, Wright State University, August 21, 2000

globus-gass-server• Simple file server

Run by user wherever necessary Secure https protocol, using GSI APIs for embedding server into other programs

• Exampleglobus-gass-server –r –w -t

-r: Allow files to be read from this server -w: Allow files to be written to this server -t: Tilde expand (~/… $(HOME)/…) -help: For list of all options

Page 121: The Globus Project Infrastructure for Computational Grids

121SIAC 2000, Wright State University, August 21, 2000

1. Build RSL string2. Startup GASS server3. Submit to request4. Return output

jobmanager

gatekeeper

program

GRAM & GASS: Putting It Together

stdout

GASS server

2

3

globus-job-run

RSLstring

1CommandLine Args

3

34

444

Page 122: The Globus Project Infrastructure for Computational Grids

122SIAC 2000, Wright State University, August 21, 2000

Globus Components In ActionLocal Machine

mpirun

globusrun

GRAMClient GSI

GRAMClient GSI

Remote Machine

AppNexus

AIX

PBS

MPI

grid-proxy-initX509UserCert

UserProxyCert

Machines

GRAM GatekeeperGSI

GRAM Job ManagerGASS Client

Remote Machine

AppNexus

Solaris

Unix Fork

MPI

GRAM GatekeeperGSI

GRAM Job ManagerGASS Client

RSL string

RSL multi-request

RSL single requestDUROC

GASS Server

RSL parser

Page 123: The Globus Project Infrastructure for Computational Grids

123SIAC 2000, Wright State University, August 21, 2000

Summary• We learned how to dynamically select and

configure computations MDS and DUROC/GRAM enable construction

of brokers• GASS enables access to remote files and

executables• Demonstrates the interaction of many

Globus components

Page 124: The Globus Project Infrastructure for Computational Grids

124SIAC 2000, Wright State University, August 21, 2000

IPC with globus_io• TCP, UDP, IP multicast, and File I/O

Familiar socket and file abstractions• Asynchronous & synchronous interfaces

Robust implementation & applications• Easy to use security, socket options, etc

Turn on security and other options with just a few function calls

• Designed for Win32 support Hides difference between socket & file handles Compatible with completion ports

Page 125: The Globus Project Infrastructure for Computational Grids

125SIAC 2000, Wright State University, August 21, 2000

Motivation• Numerous modules were using various

combinations of TCP, UDP, IP multicast, and file I/O Write very robust code once, and exploit it

throughout• In the process, solve other issues:

Win32 portability Ease of use of security, socket options, QoS

Page 126: The Globus Project Infrastructure for Computational Grids

126SIAC 2000, Wright State University, August 21, 2000

Approach• Provide familiar socket and file abstractions• Provide both synchronous and asynchronous

versions of everything Can easily write code that will not block for

anything• Handle security, socket options, and QoS

through attributes

Page 127: The Globus Project Infrastructure for Computational Grids

127SIAC 2000, Wright State University, August 21, 2000

Win32• Unlike Unix, in Win32 “file handles” and

“socket handles” are treated differently Select only works on socket handles Different Win32 calls for file and socket I/O globus_io allows us to mask this difference

• Win 32 “completion ports” give the best I/O performance globus_io’s asynchronous callback interface

matches well with completion ports globus_callback also designed for this

Page 128: The Globus Project Infrastructure for Computational Grids

128SIAC 2000, Wright State University, August 21, 2000

TCP Security Attributes• TCP authentication and delegation

characteristics globus_io_attr_set_secure_authentication_mode()

• GLOBUS_IO_SECURE_AUTHENTICATION_MODE_NONE• GLOBUS_IO_SECURE_AUTHENTICATION_MODE_GSSAPI

globus_io_attr_set_secure_delegation_mode()• GLOBUS_IO_SECURE_DELEGATION_MODE_NONE• GLOBUS_IO_SECURE_DELEGATION_MODE_LIMITED_PROXY• GLOBUS_IO_SECURE_DELEGATION_MODE_FULL_PROXY

Page 129: The Globus Project Infrastructure for Computational Grids

129SIAC 2000, Wright State University, August 21, 2000

TCP Security Attributes• TCP authorization and channel characteristics

globus_io_attr_set_secure_authorization_mode()• GLOBUS_IO_SECURE_AUTHORIZATION_MODE_SELF• GLOBUS_IO_SECURE_AUTHORIZATION_MODE_IDENTITY• GLOBUS_IO_SECURE_AUTHORIZATION_MODE_CALLBACK

globus_io_attr_set_secure_channel_mode()• GLOBUS_IO_SECURE_CHANNEL_MODE_CLEAR• GLOBUS_IO_SECURE_CHANNEL_MODE_GSI_WRAP• GLOBUS_IO_SECURE_CHANNEL_MODE_SSL_WRAP

Page 130: The Globus Project Infrastructure for Computational Grids

130SIAC 2000, Wright State University, August 21, 2000

TCP Socket Attributes• TCP socket options

globus_io_attr_set_socket_reuseaddr() globus_io_attr_set_socket_keepalive() globus_io_attr_set_socket_linger() globus_io_attr_set_socket_oobinline() globus_io_attr_set_socket_sndbuf() globus_io_attr_set_socket_rcvbuf() globus_io_attr_set_tcp_nodelay()

Page 131: The Globus Project Infrastructure for Computational Grids

131SIAC 2000, Wright State University, August 21, 2000

Other Attributes• File attributes

globus_io_attr_set_file_type()• GLOBUS_IO_FILE_TYPE_TEXT• GLOBUS_IO_FILE_TYPE_BINARY

• Restricting anonymous ports to a particular port range globus_io_attr_set_tcp_restrict_port()

• IP multicast globus_io_attr_set_udp_multicast_loop() globus_io_attr_set_udp_multicast_ttl()

Page 132: The Globus Project Infrastructure for Computational Grids

132SIAC 2000, Wright State University, August 21, 2000

Core Functions• Common functions used for all forms of I/O

globus_io_[register]_select() globus_io_[register]_cancel() globus_io_[register]_close() globus_io_[register]_read() globus_io_[register]_write() globus_io_[register]_writev() globus_io_try_{read,write,writev}() globus_io_get_handle_type() globus_io_handle_{set,get}_user_pointer()

Page 133: The Globus Project Infrastructure for Computational Grids

133SIAC 2000, Wright State University, August 21, 2000

TCP Connection Setup• Typical functions for creating TCP

connections globus_io_tcp_create_listener() globus_io_tcp_[register]_listen() globus_io_tcp_[register]_accept() globus_io_tcp_[register]_connect()

• Setting and getting attributes globus_io_tcp_set_attr() globus_io_tcp_get_attr()

Page 134: The Globus Project Infrastructure for Computational Grids

134SIAC 2000, Wright State University, August 21, 2000

File Setup• Typical functions for establishing file I/O

globus_io_file_open() globus_io_file_seek()

Page 135: The Globus Project Infrastructure for Computational Grids

135SIAC 2000, Wright State University, August 21, 2000

Portability Features• A collection of fundamental software modules.

Module activation/deactivation Portable thread library (POSIX subset) Thread-safe and portable libc wrappers Timed and periodic callbacks Data object and error object management Modules to manipulate lists, fifos, URLs, …

• The rest of Globus relies on these features.• Developers can (should) use these features for

maximum portability and convenience.

Page 136: The Globus Project Infrastructure for Computational Grids

136SIAC 2000, Wright State University, August 21, 2000

Activation and Deactivation• globus_module_*()

Functions for activation (initialization) and deactivation (shutdown)

Support for multiple independent activations and deactivations of a module through reference counting

Support for dependencies amongst modules Support for thread-safe initialization Modules can use atexit()...

Page 137: The Globus Project Infrastructure for Computational Grids

137SIAC 2000, Wright State University, August 21, 2000

Threads• globus_thread_*(), globus_mutex_*(), globus_cond_*()

Simple POSIX threads (pthreads) subset Same arguments and semantics as pthreads Simply change “pthread” to “globus” or “globus_thread”

in the function name Provides portability to pre-standard pthread libraries, and

non-pthread based systems Simple pass-through on systems with standard pthreads Co-exists with programs using pthreads directly

Page 138: The Globus Project Infrastructure for Computational Grids

138SIAC 2000, Wright State University, August 21, 2000

Threaded vs Non-threaded• Globus supports pthreads, cthreads, Solaris threads,

and sproc.• Globus also supports non-threaded applications.

Most thread-related functions are stubbed out. If you write code carefully which uses the mutex, cond,

and thread specific storage functions, if should work both threaded and non-threaded.

Most Globus Toolkit APIs use an event driven approach, which works well with or without threads.

Page 139: The Globus Project Infrastructure for Computational Grids

139SIAC 2000, Wright State University, August 21, 2000

globus_libc• Wrappers around standard libc functions

Thread safe, even if underlying libc is not• Caveat: Application must also use globus_libc to ensure

thread safety. Same interface for threaded and non-threaded

• POSIX reentrant functions (*_r()) always work.• Example: globus_libc_gethostbyname_r()

Fixes or enhances some functions• Example: globus_libc_gethostname() tries to figure out a

fully qualified hostname despite system configuration.

Page 140: The Globus Project Infrastructure for Computational Grids

140SIAC 2000, Wright State University, August 21, 2000

Callbacks• Driver for timed and periodic callbacks

globus_callback_register_oneshot() globus_callback_register_periodic() globus_callback_unregister() globus_callback_poll()

• All modules rely on this for periodic polling• Uses threads where possible• Uses thread blocking callbacks to guarantee

progress even when callback blocks

Page 141: The Globus Project Infrastructure for Computational Grids

141SIAC 2000, Wright State University, August 21, 2000

Convenience Modules• globus_common also contains a small set of

convenience modules globus_fifo: First-In-First-Out queue globus_hashtable: Hashtable globus_list: List functions globus_symboltable: Symbol table management globus_url: URL parsing globus_strptime: Y2K-compliant strptime() globus_object globus_error