The Challenges

There are three basic challenges to writing parallel or distributed programs:

  1. Identifying the natural parallelism that occurs within the context of a problem domain.

  2. Dividing the software appropriately into two or more tasks that can be performed at the same time to accomplish the required parallelism.

  3. Coordinating those tasks so that the software correctly and efficiently does what it is supposed to do.

These three challenges are accompanied by the following obstacles to concurrency:

Data race

Deadlock detection

Partial failure

Latency

Deadlock

Communication failures

Termination detection

Lack of global state

Multiple clock problem

Protocol mismatch

Localized errors

Lack of centralized resource allocation

This book explains what these obstacles are, why they occur, and how they can be managed.

Finally, several of the mechanisms we use for concurrency use TCP/IP as a protocol. Specifically the MPI (Message Passing Interface) library, PVM (Parallel Virtual Machine) library, and the MICO (CORBA) library. This allows our approaches to be used in an Internet/Intranet environment, which means that programs cooperating in parallel may be executing at different sites on the Internet or a corporate intranet and communicating through message passing. Many of the ideas serve as foundations for infrastructure of Web services. In addition to the MPI and PVM routines, the CORBA objects we use can communicate from different servers accross the Internet. These components can be used to provide a variety of Internet/intranet services.



Parallel and Distributed Programming Using C++
Parallel and Distributed Programming Using C++
ISBN: 0131013769
EAN: 2147483647
Year: 2002
Pages: 133

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net