8 th Lecture COP 4991 Component-Based Software Development Instructor: Masoud Sadjadi...

76
8 th Lecture COP 4991 COP 4991 Component-Based Software Development Component-Based Software Development Instructor: Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/ Teaching/ Grid Computing and LA Grid Grid Computing and LA Grid

Transcript of 8 th Lecture COP 4991 Component-Based Software Development Instructor: Masoud Sadjadi...

8th Lecture

COP 4991 COP 4991 Component-Based Software DevelopmentComponent-Based Software Development

Instructor: Masoud Sadjadihttp://www.cs.fiu.edu/~sadjadi/Teaching/

Grid Computing and LA GridGrid Computing and LA Grid

8th Lecture 2COP-4991: Component-Based Software Development

AcknowledgementAcknowledgement

Andrew Tanenbaum Laukik Chitnis Sanjay Ranka Onyeka Ezenwoye Jorge Rodriguez

8th Lecture 3COP-4991: Component-Based Software Development

AgendaAgenda

Motivation

Grid Computing Overview

Grid Middleware

LA Grid

8th Lecture 4COP-4991: Component-Based Software Development

Speed up Using Parallel Speed up Using Parallel ProcessingProcessing

(a) A program has a sequential part and a parallelizable part.

(b) Effect of running part of the program in parallel.

8th Lecture 5COP-4991: Component-Based Software Development

Speed up Using Parallel Speed up Using Parallel ProcessingProcessing

Real programs achieve less than the perfect speedup indicated by the dotted line.

8th Lecture 6COP-4991: Component-Based Software Development

Parallel Computer Parallel Computer ArchitecturesArchitectures

(a) On-chip parallelism. (b) A coprocessor. (c) A multiprocessor.

(d) A multicomputer. (e) A grid.

8th Lecture 7COP-4991: Component-Based Software Development

Instruction-Level ParallelismInstruction-Level Parallelism

(a) A CPU pipeline. (b) A sequence of VLIW instructions. (c) An instruction stream with bundles marked.

8th Lecture 8COP-4991: Component-Based Software Development

MultiprocessorsMultiprocessors

(a) A multiprocessor with 16 CPUs sharing a common memory.

(b) An image partitioned into 16 sections, each being analyzed by a different CPU.

8th Lecture 9COP-4991: Component-Based Software Development

MulticomputersMulticomputers

(a) A multicomputer with 16 CPUs, each with its own private memory.

(b) The bit-map image of Fig. 8-17 split up among the 16 memories.

8th Lecture 10COP-4991: Component-Based Software Development

Taxonomy of Parallel Taxonomy of Parallel Computers (1)Computers (1)

Flynn’s taxonomy of parallel computers.

8th Lecture 11COP-4991: Component-Based Software Development

Taxonomy of Parallel Taxonomy of Parallel Computers (2)Computers (2)

A taxonomy of parallel computers.

8th Lecture 12COP-4991: Component-Based Software Development

UMA Multiprocessors Using Crossbar UMA Multiprocessors Using Crossbar SwitchesSwitches

(a) An 8 × 8 crossbar switch. (b) An open crosspoint. (c) A closed crosspoint.

8th Lecture 13COP-4991: Component-Based Software Development

NUMA MultiprocessorsNUMA Multiprocessors

A NUMA machine based on two levels of buses. The Cm* was

the first multiprocessor to use this design.

8th Lecture 14COP-4991: Component-Based Software Development

BlueGene (1)BlueGene (1)

The BlueGene/L custom processor chip.

8th Lecture 15COP-4991: Component-Based Software Development

BlueGene (2)BlueGene (2)

The BlueGene/L. (a) Chip. (b) Card. (c) Board. (d) Cabinet. (e) System.

8th Lecture 16COP-4991: Component-Based Software Development

Google (1)Google (1)

Processing of a Google query.

8th Lecture 17COP-4991: Component-Based Software Development

Google (2)Google (2)

A typical Google

cluster.

8th Lecture 18COP-4991: Component-Based Software Development

AgendaAgenda

Motivation

Grid Computing Overview

Grid Middleware

LA Grid

8th Lecture 19COP-4991: Component-Based Software Development

Grid ComputingGrid Computing

Grid computing is an emerging computing model that – tries to solve large-scale computation problems – by taking advantage of many networked computers – to model a virtual computer architecture – that is able to distribute process execution – across a parallel infrastructure.

Source: www.wikipedia.org

8th Lecture 20COP-4991: Component-Based Software Development

Ian Foster and Carl KesselmanIan Foster and Carl Kesselman

“A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities.” 1998

“The sharing that we are concerned with is not primarily file exchange but rather direct access to computers, software, data, and other resources, as is required by a range of collaborative problem solving and resource-brokering strategies emerging in industry, science, and engineering. This sharing is, necessarily, highly controlled, with resource providers and consumers defining clearly and carefully just what is shared, who is allowed to share, and the conditions under which sharing occurs. A set of individuals and/or institutions defined by such sharing rules form what we call a virtual organization.” 2000

8th Lecture 21COP-4991: Component-Based Software Development

A Grid Checklist

coordinates resources that are not subject to centralized control …

… using standard, open, general-purpose protocols and interfaces …

… to deliver nontrivial qualities of service.

Virtual Organizations– Group of individuals or institutions defined by sharing rules to share

the resources of “Grid” for a common goal.– Example: Application service providers, storage service providers,

databases, crisis management team, consultants.

8th Lecture 22COP-4991: Component-Based Software Development

The Grid isn’t a new conceptThe Grid isn’t a new concept

Using multiple distributed resources to cooperatively work on a single application has been around for decades– Networked OS (70s)– Distributed OS (80s and 90s)– Heterogeneous Computing http://www.acis.ufl.edu/hcw2006/– Parallel Distributed Computing– Metacomputing http://www.cnds.jhu.edu/research/metacomputing/

8th Lecture 23COP-4991: Component-Based Software Development

How is a grid different?How is a grid different?

Grids focus on site autonomy

Grids involve heterogeneity

Grids involve more resources than just computers and networks

Grids focus on the user

8th Lecture 24COP-4991: Component-Based Software Development

Grid ComputingGrid Computing

A dynamic multi-institutional network of computers that come together to share resources for the purpose of coordinated problem solving.

resource

application

institutional boundary

Achieved through:

1. Open general-purpose protocols

2. Standard interfaces

8th Lecture 25COP-4991: Component-Based Software Development

So, what is a Grid again?!So, what is a Grid again?!

Simply put, a Grid is a congregation of different sites collaborating to increase productivity

For example, Grid3

A total of 35 sites

Over 3500 CPUsA total of 35 sites

Over 3500 CPUs

8th Lecture 26COP-4991: Component-Based Software Development

Broad Division of GridBroad Division of Grid

Data Grids– Managing and

manipulating large amounts of data.

– Main objective is to share large amounts of data that is otherwise impossible with out the grid

Compute Grids – For compute-intensive

tasks. – Emphasis is on the

federation of CPU cycles and distribution of compute intensive tasks

There is no consensus on these categorization and it only aids in understanding the requirements

8th Lecture 27COP-4991: Component-Based Software Development

Examples of Distributed Apps.Examples of Distributed Apps.

High Energy Physics applications – Monte Carlo simulations– CMS experiment

Finding interesting astronomical patterns– Sloan Digital Sky Survey

Coastal ocean monitoring and predicting– SURA Coastal Ocean Observing and Prediction (SCOOP)

Prime number generator– Cracking DES

Cannot be done on a single machine You want to divide the application and run it on a

distributed and decentralized environment

8th Lecture 28COP-4991: Component-Based Software Development

Why do you want a grid?Why do you want a grid?

Different perspectives– User: I want to run my scientific application on the grid so that I can

get results in 10 hours instead of 10 days

– Organization: Our next big experiment will generate tera-bytes of data and we want to distribute, share and analyze the data

– Organization: We want to tap into the existing grids and share resources

8th Lecture 29COP-4991: Component-Based Software Development

A User PerspectiveA User Perspective

I need– More CPU cycles– More disk space– More bandwidth– Better software tools– All of the above

Alternatives to grid– Simple CPU cycle stealer– Simple SRM (Storage Resource

Manager)

Run my app in 10 hrs that usually takes 10 days on my pentium

8th Lecture 30COP-4991: Component-Based Software Development

Sys admin perspectiveSys admin perspective

How do I distribute the load on the machines? How do I reduce the overhead on the central server How do I manage local and remote users? What should be the policies?

I got root !

8th Lecture 31COP-4991: Component-Based Software Development

Organizational PerspectiveOrganizational Perspective

Federation of scientists – distributing, sharing and analyzing data

Tapping into existing grids Cost-effective: A grid can be built from commodity software

and hardware without spending millions on the next super duper computer.

Reliability: If a site fails, we can simply move our jobs to another site (this can be seen as a user perspective as well)

Where do you want to run your job today?

8th Lecture 32COP-4991: Component-Based Software Development

Distributed App. Distributed App. RequirementsRequirements

Requires– A lot of resources– Reservation of resources at a particular time– Monitoring of status of the submitted jobs to multiple sites– Storage that is not easily available at a single place

8th Lecture 33COP-4991: Component-Based Software Development

Grid Building BlocksGrid Building Blocks

Computational Clusters Storage Devices Networks Grid Resources and Layout:

– User Interfaces– Computing Elements– Storage Elements– Monitoring Infrastructure…

Some slides from Jorge Rodriguez’s presentation on “Building, Monitoring and Maintaining a Grid”

8th Lecture 34COP-4991: Component-Based Software Development

Dell Cluster at UFlorida’s High Performance Center

Computer ClustersComputer Clusters

Cluster Management“frontend”

Tape Backup robots

I/O Servers typically RAID fileserver

Disk Arrays

The bulk are Worker Nodes

A few Headnodes, gatekeepers and

other service nodes

8th Lecture 35COP-4991: Component-Based Software Development

A Typical Cluster InstallationA Typical Cluster Installation

Network Switch

Pentium III

Pentium III

Pentium III

Head Node/Frontend Server

Pentium III

Worker Nodes

WANWAN

Cluster Management• OS Deployment• Configuration• Many options

ROCKS (kickstart)OSCAR (sys imager)Sysconfig

• •

Computing Cycles Data Storage Connectivity

I/O Node + Storage

8th Lecture 36COP-4991: Component-Based Software Development

Layout of Typical Grid SiteLayout of Typical Grid Site

Computing Fabric

Grid MiddlewareGrid Level Services

++

=>

A Grid Site

=>VDTVDT

OSGOSG

ComputeElement

StorageElement

User Interface

Authz server

Monitoring Element

Monitoring Clients Services

Data Management

Services

Grid Operations

The Gr id

8th Lecture 37COP-4991: Component-Based Software Development

~1200 node workflow, 7 levelsMosaic of M42 created onthe Teragrid using Pegasus

A Small Montage WorkflowA Small Montage Workflow

A Typical Grid Application A Typical Grid Application Workflow Workflow

8th Lecture 38COP-4991: Component-Based Software Development

Simple Expectations from the Simple Expectations from the GridGrid

Simply put, we need the grid to do the following operations for each transformation:– Find the input datasets– Apply the transformations (process the input)– Store the output datasets

and publish its “presence” so that collaborating scientists can find it

8th Lecture 39COP-4991: Component-Based Software Development

Qualities expected from the Qualities expected from the gridgrid

And of course, we would like these operations to be performed:– Efficiently

As quickly as possible

– Seamlessly for easy collaboration

– Fairly fair to all collaborators

– Securely security against loss (fault tolerance), unauthorized access

8th Lecture 40COP-4991: Component-Based Software Development

AgendaAgenda

Motivation

Grid Computing Overview

Grid Middleware

LA Grid

8th Lecture 41COP-4991: Component-Based Software Development

Grid MiddlewareGrid Middleware

In an effort to view the ‘Grid as a Workstation’, a set of grid software and services act as middleware between the user and the grid of machines.

These services can be roughly categorized as follows:– Security services– Information Services– Data Management– Job Management– Virtual Data System

8th Lecture 42COP-4991: Component-Based Software Development

GLOBUS TOOLKIT 4 – GT4GLOBUS TOOLKIT 4 – GT4

Open source toolkit developed by The Globus Alliance that allows us to build Grid applications.

Organized as a collection of loosely coupled components. Consists of services, programming libraries, and

development tools.

High-level services – Resource Monitoring and Discovery Service– Job Submission Infrastructure– Security Infrastructure– Data Management Services

8th Lecture 43COP-4991: Component-Based Software Development

GT4 ComponentsGT4 Components

8th Lecture 44COP-4991: Component-Based Software Development

Services offered in a GridServices offered in a Grid

Resource Managemen

t Services

Data Management

Services

Information Services

Security Services

8th Lecture 45COP-4991: Component-Based Software Development

Security ServicesSecurity Services

Forms the underlying communication medium for all the services

Secure Authentication and Authorization Single Sign-on

– User need not explicitly authenticate himself every time a service is requested

Uniform Credentials Ex: GSI (Globus Security Infrastructure)

8th Lecture 46COP-4991: Component-Based Software Development

User Proxy

Creates a proxy for single-sign on

A

Plain unix authentication

GSI enabled GRAM

B

Kereberos authentication

GSI enabled GRAM

8th Lecture 47COP-4991: Component-Based Software Development

GSI certificateGSI certificate

A GSI certificate includes four primary pieces of information:– A subject name, which identifies the person or object that the

certificate represents. – The public key belonging to the subject. – The identity of a Certificate Authority (CA) that has signed the

certificate to certify that the public key and the identity both belong to the subject.

– The digital signature of the named CA.

A third party (a CA) is used to certify the link between the public key and the subject in the certificate. In order to trust the certificate and its contents, the CA's certificate must be trusted. The link between the CA and its certificate must be established via some non-cryptographic means, or else the system is not trustworthy.

8th Lecture 48COP-4991: Component-Based Software Development

Grid ProxyGrid Proxy

Once your user certificate is in place, you need to create a grid proxy which is used for accessing the Grid

In Globus, you can do this using – grid-proxy-init

A proxy is like a temporary ticket to use the Grid, default in the above case being 12 hours.

Once this is done, you should be able to run “grid jobs”– globus-job-run site-name /bin/hostname

8th Lecture 49COP-4991: Component-Based Software Development

Gridmap fileGridmap file

A gridmap file at each site maps the grid id of a user to a local id– The grid id of the user is his/her subject in the grid user certificate– The local id is site-specific; – multiple grid ids can be mapped to a single local id

Usually a local id exists for each VO participating in that grid effort

– The local ids are then used to implement site specific policies Priorities etc.

8th Lecture 50COP-4991: Component-Based Software Development

GridmapGridmap file entry file entry The gridmap-file is maintained by the site administrator Each entry maps a Grid DN (distinguished name of the user; subject name) to

local user names

##Distinguished Name Local username#

“/DC=org/DC=doegrids/OU=People/CN=Laukik Chitnis 712960” ivdgl“/DC=org/DC=doegrids/OU=People/CN=Richard Cavanaugh 710220” grid3“/DC=org/DC=doegrids/OU=People/CN=JangUk In 712961” ivdgl“/DC=org/DC=doegrids/OU=People/CN=Jorge Rodriguez 690211” osg

8th Lecture 51COP-4991: Component-Based Software Development

Grid MonitoringGrid Monitoring

A grid is complex and quite big– To efficiently use it, monitoring of the resources is needed

Why?– To check the availability of different grid sites– Discovery of different grid services– To check the status of “jobs”– Maintain information on “health” of the different sites for informed

decision making scheduling

8th Lecture 52COP-4991: Component-Based Software Development

Type of InformationType of Information

The information can be broadly categorized as– Static, and– Dynamic

Static information about a site includes– Its resource tallies

Number of worker nodes, processors Storage capacities Architecture and Operating systems

– Path of default staging area for grid users $app, $data

8th Lecture 53COP-4991: Component-Based Software Development

Dynamic InformationDynamic Information

The dynamic content includes– The number of jobs running on each site– The CPU utilization of different worker nodes– Overall site “availability”

Such time-varying information is more critical for efficient scheduling of grid jobs

Monitoring such information presents the question of trade-off between accuracy (pertinence) and intrusion by the monitoring activities in the processor time share.

8th Lecture 54COP-4991: Component-Based Software Development

Data ManagementData Management

Grids are usually used for analyzing and manipulating large amounts of data

Data management services provide a flexible mechanism to move and share data

Ex: GridFTP, RLS (Replica Location Service)

8th Lecture 55COP-4991: Component-Based Software Development

Data ManagementData Management

Motivating factors– Large number of data files

Distributed across different sites

– Big files! ~TB, PB??

Data is a first-class citizen in the Grid!

8th Lecture 56COP-4991: Component-Based Software Development

GridFTPGridFTP

Globus-url-copy GridFTP-compliant client from the Globus team Copy files from one URL to another URL

– One URL is usually a gsiftp:// URL– Another URL is usually a file:/ URL– To move a file from remote GridFTP-enabled server to local

machine

8th Lecture 57COP-4991: Component-Based Software Development

globus-url-copyglobus-url-copy

To put file onto server reverse URLsglobus-url-copy file:/home/lchitnis/file1

gsiftp://grinpc03.phys.ufl.edu/data/file1

By default 1 data channel used– monitor performance using –vb flag

$ globus-url-copy -vb gsiftp://grinpc03.phys.ufl.edu/ppadala/grid/file1 file:/tmp/file1 9437184 bytes 658.09 KB/sec avg 512.95

KB/sec inst

8th Lecture 58COP-4991: Component-Based Software Development

Performance tuningPerformance tuning Multiple channels dramatically boosts transfer rate$ globus-url-copy -vb -p 4 gsiftp://ldas-

cit.ligo.caltech.edu:15000/usr1/grid/largefile file:/tmp/largefile

523960320 bytes 5814.25 KB/sec avg 5568.27 KB/sec inst

Still faster by using large TCP windows$ globus-url-copy -vb -p 4 -tcp-bs 1048576 gsiftp://ldas-

cit.ligo.caltech.edu:15000/usr1/grid/largefile file:/tmp/largefile

514392064 bytes 6609.67 KB/sec avg 8639.71 KB/sec inst

Still faster by using large memory buffers$ globus-url-copy -vb -p 4 -bs 1048576 -tcp-bs 1048576

gsiftp://ldas-cit.ligo.caltech.edu:15000/usr1/grid/largefile file:/tmp/largefile

523304960 bytes 7300.56 KB/sec avg 9311.99 KB/sec inst

Examples in this chapter adapted from David Gehrig’s presentation on “Grid Data Management”

8th Lecture 59COP-4991: Component-Based Software Development

Job Management ServicesJob Management Services

Provide a uniform, standard interface to remote resources including CPU, Storage and Bandwidth

Main component is the remote job manager

Ex: GRAM (Globus Resource Allocation Manager)

8th Lecture 60COP-4991: Component-Based Software Development

Job Management on a GridJob Management on a Grid

User

The Grid

VO

VO

VO

VO

Condor

PBS

LSF

fork

GRAM

Narration: note the different local schedulers

Site A

Site B

Site C

Site D

8th Lecture 61COP-4991: Component-Based Software Development

Commands to run a jobCommands to run a job

globus-job-run– globus-job-run runs in the foreground and defaults to sending

output to your terminal. – In its basic form, it is roughly equivalent to rsh, but has

considerably more functionality for running complex jobs on the Grid.

globus-job-submit– globus-job-submit is for submitting jobs to a remote batch job

scheduler such as LSF or the Portable Batch System (PBS). – With globus-job-submit, you can submit a job, log out, and log back

in later to collect the output. That is, globus-job-submit runs in the background and defaults to sending output to the machine running the command.

– Retrieve output with globus-job-get-output, and then clean up with globus-job-clean.

8th Lecture 62COP-4991: Component-Based Software Development

Commands to run jobs on gridCommands to run jobs on grid

globusrun– The globusrun command runs specifications written in the Globus

Resource Specification Language (RSL).

– globusrun can run jobs either in the foreground or background, and can send output to your terminal or to the machine running the command.

– The trend in Globus software development is toward considering globusrun as middleware, which can be used by application specific shell scripts to manage job submission.

– In fact, globus-job-run and globus-job-submit are simply shell scripts that use globusrun for job submission, but present a simpler interface to users.

8th Lecture 63COP-4991: Component-Based Software Development

AgendaAgenda

Motivation

Grid Computing Overview

Grid Middleware

LA Grid

8th Lecture 64COP-4991: Component-Based Software Development

WHAT IS LA GRID?WHAT IS LA GRID?

“First-ever comprehensive computing grid to link faculty, students, and researchers from institutions across the United States, Latin America and Spain to collaborate on complex industry applications for business and societal needs. ”

http://lagrid.fiu.edu/http://lagrid.fiu.edu/

8th Lecture 65COP-4991: Component-Based Software Development

LA-GRID @ CIS.FIULA-GRID @ CIS.FIU

Globus-enabled hosts:– ip-comm.cs.fiu.edu– la-blade-01.cs.fiu.edu– la-blade-02.cs.fiu.edu– la-blade-03.cs.fiu.edu– la-blade-04.cs.fiu.edu– la-blade-05.cs.fiu.edu– la-blade-06.cs.fiu.edu– la-blade-08-ppc.cs.fiu.edu– la-blade-09-ppc.cs.fiu.edu– tsunami-linux.cs.fiu.edu– starscream.cs.fiu.edu

8th Lecture 66COP-4991: Component-Based Software Development

Resources as of July 2006 Resources as of July 2006

Resources as of July 2006

8th Lecture 67COP-4991: Component-Based Software Development

GETTING READY FOR LAGRIDGETTING READY FOR LAGRID

Globus Identity.Get a Globus Identity certificate issued by the Certificate Authority.http://www.cs.fiu.edu/~esj/globus.html

Security Enrollment.Enroll as a Secure Globus User with Eric Johnson.

Setup environment

8th Lecture 68COP-4991: Component-Based Software Development

How to use Globus@SCISHow to use Globus@SCIS The directory /etc/grid-security exists on all SCIS machines

that are grid enabled

The following should be added to your .cshrc file toensure that your environment is correctly set up for Globus.

if ( -d /etc/grid-security ) then setenv GLOBUS_LOCATION /depot/globus-4 setenv LD_LIBRARY_PATH $GLOBUS_LOCATION/lib:$LD_LIBRARY_PATH ins2path $GLOBUS_LOCATION/bin ins2path $GLOBUS_LOCATION/sbin setenv MANPATH $GLOBUS_LOCATION/man:$MANPATH if ( `uname -m` == "ppc64" ) then

setenv JAVA_HOME /opt/ibm/java2-ppc-50 else

setenv JAVA_HOME /depot/J2SE-1.5 endif

endif

8th Lecture 69COP-4991: Component-Based Software Development

Globus Authentication ModelGlobus Authentication Model

Users have a Globus Identity certificate which issigned by the local certificate authority.

Each system participating will have a mappingof globus ID to local user name.

Each system must recognize the certificate authoritythat signed a users certificate.

Here at SCIS we recognize certificate signed by us, and those signed by other LA-GRID sites.

8th Lecture 70COP-4991: Component-Based Software Development

How to create and use an How to create and use an Identity Identity (1)(1)

After setting up your environment as specified above, logout and then log in again and run the below command to generate a personal grid identity certificate.

grid-cert-request

This will create the following files in $HOME/.globus

usercert_request.pem (request to sign certificate)userkey.pem (private key - encrypted)usercert.pem (public key - signed)

8th Lecture 71COP-4991: Component-Based Software Development

How to create and use an How to create and use an Identity Identity (2)(2)

After you have created the request then you need to mail it to the localcertificate authority:

cat $HOME/.globus/usercert_request.pem | mail [email protected]

Then the CA (Mr. Eric Johnson) will mail you back a signed certificate which you will want to put into $HOME/.globus/usercert.pem

(it can take up to a day for the CA to process the request)

8th Lecture 72COP-4991: Component-Based Software Development

Commands to log in / logoutCommands to log in / logout grid-proxy-init

– This "logs you into" the globus system.

grid-proxy-info – Use this to see your status.

grid-proxy-destroy – Use this to log out.

How to test – When logged into a globus enabled hosts and logged into globus system:

globus-url-copy -vb -dbg gsiftp://OTHERGLOBUSHOST.cs.fiu.edu/dev/zero file:///dev/null

– REPLACE OTHERGLOBUSHOST with host name of another globus host. You should see no errors.

8th Lecture 73COP-4991: Component-Based Software Development

How to deploy jobsHow to deploy jobs

Here is a simple test run on the local machine. – -s option says to connect stdout and stderr to this local

process.

globusrun-ws -submit -s -c /bin/hostname

globusrun-ws -submit -S -f test1.rsl globusrun-ws -submit -S -F https://HOSTNAME:8443/wsrf/services/ManagedJobFactoryService -f test1.rsl

globusrun-ws -submit -S -f test2.rsl globusrun-ws -submit -S -F https://HOSTNAME:8443/wsrf/services/ManagedJobFactoryService -f test2.rsl

8th Lecture 74COP-4991: Component-Based Software Development

test1.rsltest1.rsl This copies over and executable (/bin/echo) and runs it with two arguments.

stdout and stderr are stored to files with those names.– This will only run on Intel arch machines.

<job><executable>my_echo</executable><directory>${GLOBUS_USER_HOME}</directory><argument>Hello</argument><argument>World!</argument><stdout>${GLOBUS_USER_HOME}/stdout</stdout><stderr>${GLOBUS_USER_HOME}/stderr</stderr><fileStageIn> <transfer> <sourceUrl>gsiftp://lion.cs.fiu.edu:2811/bin/echo</sourceUrl> <destinationUrl>file:///${GLOBUS_USER_HOME}/my_echo</destinationUrl> </transfer></fileStageIn><fileCleanUp> <deletion> <file>file:///${GLOBUS_USER_HOME}/my_echo</file> </deletion></fileCleanUp>

</job>

8th Lecture 75COP-4991: Component-Based Software Development

test2.rsltest2.rsl This copies over a binary executable and runs it.

– stdout and stderr are stored to files with those names.– This will only run on Intel arch machines.

<job><executable>/bin/hostname</executable><directory>${GLOBUS_USER_HOME}</directory><stdout>${GLOBUS_USER_HOME}/stdout</stdout><stderr>${GLOBUS_USER_HOME}/stderr</stderr><fileStageIn> <transfer> <sourceUrl>gsiftp://la-blade-01.cs.fiu.edu:2811/bin/echo</sourceUrl> <destinationUrl>file:///${GLOBUS_USER_HOME}/my_echo</destinationUrl> </transfer></fileStageIn><fileCleanUp> <deletion> <file>file:///${GLOBUS_USER_HOME}/my_echo</file> </deletion></fileCleanUp>

</job>

8th Lecture 76COP-4991: Component-Based Software Development

ReferencesReferences State and Events for Web Services: A Comparison of Five WS-Resource

Framework and WS-Notification Implementations. M. Humphrey, G. Wasson, K. Jackson, J. Boverhof, M. Rodriguez, Joe Bester, J. Gawor, S. Lang, I. Foster, S. Meder, S. Pickles, and M. McKeown, 4th IEEE International Symposium on High Performance Distributed Computing (HPDC-14), Research Triangle Park, NC, 24-27 July 2005.

C. Lee and D. Talia. "Grid programming models: Current tools, issues, and directions.", In Grid Computing: Making The Global Infrastructure a Reality, F. Berman, A. Hey, and G. Fox, editors, John Wiley & Sons, 2003.

“Enabling Peer-to-Peer Interactions for Scientific Applications on the Grid, ” V. Matossian* and M. Parashar, Proceedings of the 9th International Euro-Par Conference (Euro-Par 2003), Lecture Notes in Computer Science, Editors: H. Kosch, L. Boszormenyi, H. Hellwagner, Springer-Verlag, Klagenfurt, Austria, Vol. 2790.

Grids: Top Ten Questions. J.M. Schopf and B. Nitzberg, Scientific Programming, special issue on Grid Computing, 10(2):103 - 111, August 2002. 

Berry, A. Djaoui, A. Grimshaw, B. Horn, F. Maciel, F. Siebenlist, R. Subramaniam, J. Treadwell, J. Von Reich. Informational Document, Global Grid Forum (GGF), January 29, 2005.