Chapter 2. The Challenges of Parallel and Distributed Programming

"The idea that you should really indicate the exact values of any physical quantity ” temperature, density, potential field strength or whatever ... is a bold extrapolation."

Erwin Shrodinger, Causality and Wave Mechanics

In this Chapter

  • The Big Paradigm Shift

  • Coordination Challenges

  • Sometimes Hardware Fails and Software Quits

  • Too Much Parallelization or Distribution Can Have Negative Consequences

  • Selecting a Good Architecture Requires Research

  • Different Techniques for Testing and Debugging are Required

  • The Parallel or Distributed Design Must Be Communicated

  • Summary

In the basic sequential model of programming, a computer program's instructions are executed one at a time. The program is viewed as a recipe and each step is to be performed by the computer in the order and amount specified. The designer of the program breaks up the software into a collection of tasks . Each task is performed in order, and each task must wait its turn . Every program is perceived as having a beginning, middle, and end. The designer or developer envisions each program as a linear progression of tasks. Not only must the tasks march in single file, but the tasks are related so that if the first task cannot complete its work for some reason then the second task may never start. In other words, each task is made to wait on the result of the previous task's work before it can execute. In the sequential model tasks are often serially interdependent. This means that A needs something from B, B needs something from C, C needs something from D, and so on. If B fails for some reason, then C and D will never execute. In a sequential world the developer is accustomed to designing the software to perform step 1 first, then step 2, then step 3. This sequential model is so entrenched in the software design and development process that many programmers find it hard to see things any other way. The solution to every problem, the design of every algorithm, and the layout of every data structure all rely on the computer accessing each instruction or piece of data one at a time.



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