2.5 Selecting a Good Architecture Requires Research

There are many software architectures that support concurrency. The correct architecture needs to be matched with the WBS (Work Breakdown Structure) of a piece of software. Not all parallel and distributed architectures are created equal. While some distributed architectures would work fine in a Web environment, they would fail immediately in a real-time environment. For instance, distributed architectures that support long latency times that would be acceptable in a Web environment are unacceptable for many real-time environments. Compare the distributed processing in a Webbased e-mail system to the distributed processing that takes place with banking ATMs (automated teller machines). Latency that is present in many e-mail systems would simply be unacceptable in real-time systems such as ATMs. Certain distributed architectures (some asynchronous models) manage latency times better than others. Care must also be taken to select the proper parallel processing architectures. For instance, vector processing techniques may work well for certain mathematical and simulation problems, but are ineffective when applied to multiagent planning algorithms. Table 2-2 shows commonly found software architectures that support parallel and distributed programming.

The four basic models listed in Table 2-2 and their variations provide the basic foundations for all the concurrency architectures (i.e., agent, blackboard, object-oriented) that we discuss in this book. It is necessary to become familiar with each of these models and their applications to parallel and distributed programming. We provide an introduction to these models and the bibliography contains material that covers more advanced treatment of each of these models. It is best to find the natural or inherent parallelism in the work being done or in the solution to a problem. The architecture chosen should match this natural or inherent parallelism as closely as possible. For instance, the parallelism in a solution may be better described using a peer-to-peer model, where all workers are considered equal, as opposed to a boss worker model, where there is a master process managing all the other processes as subordinates .

Table 2-2. Commonly Found Software Architectures that Support Parallel and Distributed Programming

Model

Architecture

Distributed Programming

Parallel Programming

Host node also called

  • master/slave

  • boss/worker

  • loosely (client server)

Master control tasks that monitors and delegates work to subordinate tasks.

Peer or node only

All tasks are basically equal and work is distributed evenly.

 

Vector processing loosely pipeline or array processing

One worker for each element of the array or stage in the pipeline.

Tree (parent “child)

Dynamically generated workers in a parent “child relationship. Useful in these types of algorithms:

  • recursion

  • recursion

  • AND/OR

  • tree processing



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