# Presentation: 661195

## Combating Complexity: High-Level Abstractions for High-Performance Distributed Environments

- Kate Keahey

- Kate Keahey

- 9/29/00

## Inspiration“Galaxies Collide on the I-WAY”

- Kate Keahey

- 9/29/00

## Motivation

- Hardware potential for solving complex problems increases
- We need a breakthrough in software technologies to match it
- Example: higher-level languages versus assembly languages
- Why did higher-level languages succeed?
- What trade-offs are acceptable?

- Kate Keahey

- 9/29/00

## Issues

- A general infrastructure
- PARDIS, Ligature, PAWS
- Efficient and convenient abstractions
- Collective objects, and distributed data structures
- Integrating Performance
- Ligature
- Standards
- Common Component Architecture (CCA)
- Execution Environments
- Computational Grids
- Applications

- Kate Keahey

- 9/29/00

## PARDIS

- Start with existing standards (CORBA)
- ORB-based system where objects interact through CORBA IDL interfaces

***IDL***
***specification***

- Kate Keahey

- 9/29/00

## PARDIS: Extensions to CORBA

- _New Concepts:_
- SPMD (Collective) object associated with a set of threads performing services accepted by all of these threads
- Collective invocations
- Asynchronous requests and futures
- Data representation issues:
- IDL: distributed sequences and sequences dsequence<double,64,(BLOCK, CYCLIC)
- distribution templates for both sides of interaction

- Kate Keahey

- 9/29/00

## PARDIS: Evaluating the Abstraction

- Exposing a “parallel” interface to an object allows us to transfer data in parallel
- Comparison of two kinds of interaction:
- Through a “sequential” interface
- Data is gathered on one node at source and scattered at destination
- Through a “parallel” interface
- Given the application-specific knowledge of distribution the data can be mapped directly between N threads of the client and M threads of the server (the MxN problem)

- Kate Keahey

- 9/29/00

## PARDIS: Efficiency of SPMD Objects

- invocation using an array of complex elements
- 4-node client 8-node server
- one network connection
- Not only faster but also scalable
- “Parallel transfer” in GridFTP terms

- Kate Keahey

- 9/29/00

## PARDIS: Efficiency (cntd.)

- marshalling mainly responsible for better performance
- SPMD objects offer a scalable solution

- Kate Keahey

- 9/29/00

## PARDIS: Efficiency (cntd.)

- interaction between subclusters
- multiple connections
- connection time mainly responsible for better performance
- “striped transfer” in GridFTP terms

- Kate Keahey

- 9/29/00

## PARDIS: Comparison

- Kate Keahey

- 9/29/00

## Ligature: Components and Performance

- Ensuring high-performance
- Efficient implementation
- Performance Information
- Inputs, outputs, and their relationship: contracts
- Performance & QoS annotations
- Scheduling targets
- Real-time responsiveness, high performance, accuracy, cost
- multischeduling
- Resources (levels of scheduling)
- hardware
- runtime resources
- component resources

- Kate Keahey

- 9/29/00

## Ligature: Hardware-Level Scheduling

- Architectures: SGI, Intel, Alpha
- Networks: GigE, Myrinet, Quadrics, Giganet
- OS: Unix-type systems, Windows
- Special hardware: graphics cards/IR pipes, display environments, special instruments

- Kate Keahey

- 9/29/00

## Ligature: Runtime Level Scheduling

- How can we collaborate with the run-time system of a component?
- not all run-time systems are responsive
- Runtime interfaces
- default: not required
- a set of functions provided by the system for use by the framework

- Kate Keahey

- 9/29/00

## Ligature: Component-Level Scheduling

- B1 is faster than B2, but requires redistributing data; what is faster A&B1 or A&B2?
- How do we need to parameterize data to estimate performance?

- Kate Keahey

- 9/29/00

## Tools and Techniques

- Performance data harvesting
- Testing harness
- Performance constraints language and annotations
- Putting it all together: an optimizing compiler
- rules expressing dependencies between components
- applications: filter reduction, sparing resource use, etc.

- Kate Keahey

- 9/29/00

## The DOE Common Component Architecture

- A specification for a CA for large-scale scientific computation
- ANL, LLNL, SNL, PNNL, ORNL, LANL, University of Utah, Indiana University
- Key concepts
- An Interface Definition Language (IDL) to support scientific data types
- A concept of a collective component and a “parallel data object”
- Component Composition Model
- Component Services

- Kate Keahey

- 9/29/00

## CCA Component Interaction Model

- Components can be connected through “ports” such that one component invokes the services of the other
- Two types of “Ports”
- Provides Ports – implements an interface
- Uses Ports – uses an interface
- A uses port and provides port of the same type can be linked
- They form a functional contract of a component needed for orchestration

- Uses port

- Provides Port

- Kate Keahey

- 9/29/00

## Collective Ports and Components

- Work done in the context of PAWS and CCA
- Collective Ports
- Ports associated with a set of processes rather than just one process
- Collective Component
- Component associated with a set of processes
- Translation components
- Perform translation from one data format to another in order to enable components to interact
- Popular translation component: MxN

- Kate Keahey

- 9/29/00

## Collective Ports

- Collective invocation criticized for lack of flexibility and associated performance loss
- Solution: abstract the guarantees to the user as a set of policies
- invocation acceptance (argument-based, invocation-based)
- synchronization guarantees (synchronous, asynchronous)
- non-distributed arguments delivery (each, every)
- Policies give the programmer a set of assumptions to work with
- Easy customization with reasonable defaults
- Similar to CORBA POA.

- Kate Keahey

- 9/29/00

## Integration of Invocation and Data Transfer

- Issues
- Should a translation component be a framework service or user-provided component?
- must be _flexible_
- convinence factor is important
- Implementing a “cast” mechanism in a framework
- A translation component is invoked by the framework but can be provided by the user
- A translation component can be a composition of subcomponents
- A framework can include a library of common translation components (such as MxN)
- Optimization can be performed automatically by a rule-based compiler

- Kate Keahey

- 9/29/00

## Applications and New Directions

- Applications
- The National Fusion Collaboratory
- Strong QoS requirements
- Supernova Physics
- Open Grid Services Architecture (OGSA)
- How does OGSA relate to CCA?
- Building the execution environment
- Resource management, scheduling and monitoring

- Kate Keahey

- 9/29/00

## Summary

- Innovations are needed in many fields:
- Programming models and environments; new emerging technologies
- Execution environments (computational Grids)
- standards will enable us to produce databases of components we can share
- abstractions will facilitate application construction and allow us to develop them faster
- component-related optimization techniques will ensure efficiency

- Kate Keahey

- 9/29/00