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
|
Getting Started Guide
Introduction
-
Application Approaches
-
What is a Resource on the Grid?
-
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.
|