# Presentation: 528518

## GriPhyN Virtual Data SystemGrid Executionof Virtual Data Workflows

- Mike Wilde
- Argonne National Laboratory
- Mathematics and Computer Science Division

## Grid3 – The Laboratory

- Supported by the National Science Foundation and the Department of Energy.

## Grid3 – Cumulative CPU Daysto ~ 25 Nov 2003

## Grid2003: ~100TB data processedto ~ 25 Nov 2003

## Functional View of Virtual Data Management   

- Location based on
- metadata attributes

- Location of one or
- more physical replicas

- State of grid resources,
- performance measurements
- and predictions

** **

## Outline

- Pegasus Introduction
- Pegasus and Other Globus Components
- Pegasus’ Concrete Planner
- Future Improvements

## Grid Applications

- Increasing in the level of complexity
- Use of individual application components
- Reuse of individual intermediate data products
- Description of Data Products using Metadata Attributes
- Execution environment is complex and very dynamic
- Resources come and go
- Data is replicated
- Components can be found at various locations or staged in on demand
- Separation between
- the application description
- the actual execution description

## Slide 8

## Pegasus:Planning for Execution in Grids

- Maps from abstract to concrete workflow
- Algorithmic and AI based techniques
- Automatically locates physical locations for both components (transformations and data)
- Use Globus Replica Location Service and the Transformation Catalog
- find appropriate resources to execute
- Via Globus Monitoring and Discovery Serivce
- Reuse existing data products where applicable
- Publishes newly derived data products
- RLS, Chimera virtual data catalog

## Slide 10

## Replica Location Service

- Pegasus uses the RLS to find input data

- LRC

- LRC

- LRC

- RLI

- Pegasus uses the RLS to register new data products

## Use of MDS in Pegasus 

- MDS provides up-to-date Grid state information
- Total and idle job queues length on a pool of resources (condor)
- Total and available memory on the pool
- Disk space on the pools
- Number of jobs running on a job manager
- Can be used for resource discovery and selection
- Developing various task to resource mapping heuristics
- Can be used to publish information necessary for replica selection
- Developing replica selection components

## Abstract Workflow Reduction

- The output jobs for the Dag are all the leaf nodes
- i.e. f, h, I
- Each job requires 2 input files and generates 2 output files.
- The user specifies the output location.

## Optimizing from the point of view of Virtual Data

- Job e

- Job g

- Job h

- Job d

- Job a

- Job c

- Job f

- Job i

- Job b

- Jobs d, e, f have output files that have been found in the Replica Location Service.
- Additional jobs are deleted.
- All jobs (a, b, c, d, e, f) are removed from the DAG.

## Planner picks execution and replica locations

**Job e**

**Job g**

**Job h**

**Job d**

**Job a**

**Job c**

**Job f**

**Job i**

**Job b**

- adding transfer nodes for the input files for the root nodes

- Plans for staging data in

## Staging data out and registering new derived products in the RLS

**KEY**
- The original node
- Input transfer node
- Registration node
- Output  transfer node
- Node deleted by Reduction algorithm

**Job e**

**Job g**

**Job h**

**Job d**

**Job a**

**Job c**

**Job f**

**Job i**

**Job b**

- Staging data out and registering new derived products in the RLS

## The final executable DAG

## Pegasus Components

- Concrete Planner and Submit file generator (gencdag)
- The Concrete Planner of the VDS makes the logical to physical mapping of the DAX taking into account the pool where the jobs are to be executed (execution pool) and the final output location (output pool).
- Java Replica Location Service Client (rls-client & rls-query-client)
- Used to populate and query the globus replica location service.

## Pegasus Components (cont’d)

- XML Pool Config generator (genpoolconfig)
- The Pool Config generator queries the MDS as well as local pool config files to generate a XML pool config which is used by Pegasus.
- MDS is preferred for generation pool configuration as it provides a much richer information about the pool including the queue statistics, available memory etc.
- The following catalogs are looked up to make the translation
- Transformation Catalog (tc.data)
- Pool Config File
- Replica Location Services
- Monitoring and Discovery Services

## Transformation Catalog (Demo)

- Consists of a simple text file.
- Contains Mappings of Logical Transformations to Physical Transformations.
- Format of the tc.data file
- #poolid   logical tr       physical tr                    env
- isi          preprocess    /usr/vds/bin/preprocess VDS_HOME=/usr/vds/;
-  All the physical transformations are absolute path names.
- Environment string contains all the  environment variables required in order for the  transformation to run on the execution pool.
- DB based TC in testing phase.

## Pool Config (Demo)

- Pool Config is an XML file which contains information about various pools on which DAGs may execute.
- Some of the information contained in the Pool Config file is
- Specifies the various job-managers that are available on the pool for the different types of condor universes.
- Specifies the GridFtp storage servers associated with each pool.
- Specifies the Local Replica Catalogs where data residing in the pool has to be cataloged.
- Contains profiles like environment hints which are common site-wide.
- Contains the working and storage directories to be used on the pool.

## Pool config

- Two Ways to construct the Pool Config File.
- Monitoring and Discovery Service
- Local Pool Config File (Text Based)
- Client tool to generate Pool Config File
- The tool genpoolconfig is used to query the MDS and/or the local pool config file/s to generate the XML Pool Config file.

## Gvds.Pool.Config (Demo)

- This file is read by the information provider and published into MDS.
- Format
- gvds.pool.id : <POOL ID>
- gvds.pool.lrc : <LRC URL>
- gvds.pool.gridftp : <GSIFTP URL>@<GLOBUS VERSION>
- gvds.pool.gridftp : gsiftp://sukhna.isi.edu/nfs/asd2/gmehta@2.4.0
- gvds.pool.universe : <UNIVERSE>@<JOBMANAGER URL>@< GLOBUS VERSION>
- gvds.pool.universe : transfer@columbus.isi.edu/jobmanager-fork@2.2.4
- gvds.pool.gridlaunch : <Path to Kickstart executable>
- gvds.pool.workdir : <Path to Working Dir>
- gvds.pool.profile : <namespace>@<key>@<value>
- gvds.pool.profile : env@GLOBUS_LOCATION@/smarty/gt2.2.4
- gvds.pool.profile : vds@VDS_HOME@/nfs/asd2/gmehta/vds

## Properties (Demo)

- Properties file define and modify the behavior of Pegasus.
- Properties set in the $VDS_HOME/properties can be overridden by defining them either in $HOME/.chimerarc or by giving them on the command line of any executable.
- eg. Gendax –Dvds.home=path to vds home......
- Some examples follow but for more details please read the sample.properties file in $VDS_HOME/etc directory.
- Basic Required Properties
- vds.home  : This is auto set by the clients from the environment variable $VDS_HOME
- vds.properties : Path to the default properties file
- Default  : ${vds.home}/etc/properties

## Concrete Planner Gencdag (Demo)

- The Concrete planner takes the DAX produced by Chimera and converts into a set of condor dag and submit files.
- Usage : gencdag --dax <dax file> --p <list of execution pools>  [--dir <dir for o/p files>] [--o <outputpool>] [--force]
- You can specify more then one execution pools. Execution will take place on the pools on which the executable exists. If the executable exists on more then one pool then the pool on which the executable will run is selected randomly.
- Output pool is the pool where you want all the output products to be transferred to. If not specified the materialized data stays on the execution pool

## Future Improvements

- A sophisticated concrete planner with AI technology
- A sophisticated transformation catalog with a DB backend
- Smarter scheduling of workflows by deciding whether the workflow is compute intensive or data intensive.
- In-time planning.
- Using resource queue information and network bandwidth information to make a smarter choice of resources.
- Reservation of Disk Space on remote machines

## Pegasus Portal

## Tutorial Outline

- Introduction: Grids, GriPhyN, Virtual Data
-    (5 minutes)
- The Chimera system (25 minutes)
- The Pegasus system (25 minutes)
**Summary (5 minutes)**

## Summary: GriPhyN Virtual Data System

- Using Virtual Data helps in reducing time and cost of computation.
- Services in the Virtual Data Toolkit
- Chimera. Constructs a virtual plan
- Pegasus. Constructs a concrete grid plan from this virtual plan.
- Some current applications of the virtual data toolkit -

## 					Astronomy

- Montage (NASA and NVO) (B. Berriman, J. Good, G. Singh, M. Su)
- Deliver science-grade custom mosaics on demand
- Produce mosaics from a wide range of data sources (possibly in different spectra)
- User-specified parameters of projection, coordinates, size, rotation and spatial sampling.

- Mosaic created by Pegasus based Montage from a run of the M101 galaxy images on the Teragrid.

## Montage Workflow

- 1202 nodes

## BLAST: set of sequence comparison algorithms that are used to search sequence databases for optimal local alignments to a query 

- BLAST: set of sequence comparison algorithms that are used to search sequence databases for optimal local alignments to a query

- Lead by Veronika Nefedova (ANL) as part of the PACI Data Quest Expedition program

- 2 major runs were performed using Chimera and Pegasus:
- 60 genomes (4,000 sequences each),
- In 24 hours processed Genomes selected from DOE-sponsored sequencing projects
- 67 CPU-days of processing time delivered
- ~ 10,000 Grid jobs
- >200,000 BLAST executions
- 50 GB of data generated
- 2) 450 genomes processed
- Speedup of 5-20 times were achieved because the compute nodes we used efficiently by keeping the submission of the jobs to the compute cluster constant.

## For further information

- Globus Project:  www.globus.org
- Chimera : www.griphyn.org/chimera
- Pegasus: pegasus.isi.edu
- MCS: www.isi.edu/~deelman/MCS