Parallel Hardware and Parallel Software
It’s perfectly feasible for specialists in disciplines other than computer science and computer engineering to write parallel programs. However, in order to write effi-cient parallel programs, we do need some knowledge of the underlying hardware and system software. It’s also very useful to have some knowledge of different types of parallel software, so in this chapter we’ll take a brief look at a few topics in hardware and software. We’ll also take a brief look at evaluating program performance and a method for developing parallel programs. We’ll close with a discussion of what kind of environment we might expect to be working in, and a few rules and assumptions we’ll make in the rest of the book.
This is a long, broad chapter, so it may be a good idea to skim through some of the sections on a first reading so that you have a good idea of what’s in the chapter. Then, when a concept or term in a later chapter isn’t quite clear, it may be helpful to refer back to this chapter. In particular, you may want to skim over most of the material in “Modifications to the von Neumann Model,” except “The Basics of Caching.” Also, in the “Parallel Hardware” section, you can safely skim the material on “SIMD Systems” and “Interconnection Networks.”