Go to the top of the NLANR/DAST web site

AAD | Advisor | Autobuf v2.0 | Multicast Beacon | BIMA | Iperf | NextINet | Tools | Web100 | All Projects


Search this site with Google

About:
- DAST
- NLANR
- FAQ
- Staff
- Contact DAST

End User Tools and Projects
- NextINet
- Advanced Applications
Database

- DAST Projects/Tools
- Network Performance
and Measurement Tools

End User Support
- Getting Started Guide
- Networking Glossary
- Other Projects/Organizations
- Funding Opportunities

Documents
- Guides/Tutorials
- Papers/Articles
- Presentations
- Reference Books

WebCT Courses
- Tuning Applications

Events
- NLANR/DAST Training
- NLANR Packets Calendar
- Idesk Travel Schedule

News
- Press Releases
- Alliance Data Link
- I2 Newswire Archives

Reports & Statistics
- Monthly Updates and QSRs
- Abilene "Weather Map"
- Web Server Stats

Contents

Introduction

Connections

Performance

Methods

Examples

Resources

Glossary

Getting Started Guide
Introduction

  1. Application Approaches
  2. What is a Resource on the Grid?
  3. Distributed Application Examples
The information provided in this guide is designed to help you become familiar with the world of distributed applications. Before you start reading, we need to explain a few concepts.
Regular computing
can be defined as using a single computer (which may contain one or more processors) with its own memory and locally-located disk space to execute a task. Using a PC to do word processing or using a 128-node SGI Origin2000 system to compute conditions of the early universe are both examples of regular computing.
 
Distributed computing
can be defined as accessing multiple resources over a high-performance network to execute a task. Of particular interest in this document is gaining access to resources over a high-performance network such as Abilene or vBNS. For example, you could make use of two or more computers in different locations to work on the same problem, or have one computer do your computations and immediately stream results to another computer for post-processing and visualization. Another example of a distributed application would be making use of a remote scientific instrument such as an electron microscope using an interface on your personal workstation.

1. Application Approaches

Broadly speaking, there are three basic approaches used today to get work done on high-performance computers:
Traditional computing
Many of you do this sort of computing. You are doing traditional computing if you run single applications on one machine with input data provided locally and storing the output locally for later use. Such programs can be quite complex and use many processors, some using shared memory within the machines, and others using explicit methods to divide up their work among processors. Two examples of traditional computing methods for explicitly dividing work are Parallel Virtual Machine (PVM) and Message Passing Interface (MPI). These methods are also used to produce the client-server, master-slave, and similar applications approach.

 
Client-Server computing
This is a broad name for an approach that covers a wide range of applications. In distributed computing, the term includes applications referred to as "message passing." The characteristic they share is that a central program running on one machine (the server) parcels out work to other machines (the clients) by some mechanism. In some cases, such as online transaction applications, the clients simply provide an interface and only minor computing while the bulk of the computing is done by the server. In many high-performance applications using MPI, PVM, Unix Sockets or other communications interfaces, the central server application is a controller that tries to evenly parse out the work to be done on the clients available.

 
Grid computing
This is the newest type of computing, which involves using resources in a coordinated way across wide-area networks. In the Methods Section of this guide, you will explore three different approaches used to coordinate resources (Legion, CORBA, and Globus) in contrast with the older method of using TCP/IP and Unix Sockets directly to control remote resources. Grid in this case refers not only to the wide-area networks connecting resources, but the resources themselves and the services provided by lower-level infrastructure.

2. What is a Resource on the Grid?

A resource as defined in the context of Grid applications is basically any system that you want to use in your work that can be accessed via a network. High-end computers, distributed mass-storage systems, scientific instruments, display devices, desktop computers, and data repositories are a few examples of resources you may wish to use in your work. Many of these resources are expensive, rare, or unique and may only be accessible to you in a remote fashion.

Currently there is no simple way to find a list of available resources on the Grid. The best way for you to start, especially regarding access to an expensive remote instrument, is to ask colleagues in your field. Another idea is to contact your local computing support organization (e.g., your campus computing office) to check on services and let them know what you would like to be able to access. We hope this concept is more clear after you read the rest of this guide.

The Globus Project (explained in Methods) maintains a Grid Information Service that centrally lists all sites that are providing resources via Globus or have users who want to use the system. Large compute, storage, and other resources available at the NSF's PACI sites are listed on the Alliance and NPACI websites. Both consortiums expect to offer these resources via Globus soon.

3. Distributed Application Examples

Each of the four examples below show how the concept of distributed applications can be interpreted and implemented differently.
  • Using traditional methods, you might manually schedule time on a remote scientific instrument and collect the data locally. You might then transfer that file to a data repository manually using ftp. When the file is in place, you could use it as input to a simulation or post-processing program on a high-performance computer, again storing the output manually to an archive. You might then want to retrieve your data from the archive to display in an immersive environment or simply do basic visualization. In a fully-functioning Grid system, all of these resources could be scheduled and accessed in a coordinated way, requiring less effort from you on the intermediate steps to your finished product.

  •  
  • Remote collaboration methods provide you with means of interacting with your colleagues using audio, video, and shared applications. Such distributed applications are being developed by commercial and non-profit groups for use on the emerging landscape of high-speed networks. A shared, fully-immersive collaboration application will require much in the way of networking resources.

  •  
  • "Hero" applications are generally large simulations that would not be able to be run in a reasonable time given the computing resources at only one high-performance computing center. Linking resources at multiple centers via high-speed connections lets you make use of a larger aggregate computing resource to do one large simulation.

  •  
  • Efficiently using large computing resources can also be accomplished using Grid computing. A central monitor of resources on the Grid will be able to tell if certain computing resources are idle, and quickly submit queued jobs there to run, all without user intervention. In this manner, expensive resources such as large high-performance computers will be used more efficiently.

Contents

Introduction

Connections

Performance

Methods

Examples

Resources

Glossary


Contact DASTBlank Space Last reviewed: December 31, 1969
NLANR || Applications Support || Engineering Support || Measurement and Network Analysis