Chapter 9 – Software

Publisher Summary This chapter focuses on software. The development of usable software for parallel machines has been a bottleneck in the progression of parallel machines into mainstream use. To facilitate the use of these machines, a number of software solutions have been proposed. These solutions include specialized languages for programming multiple processor machines, optimizing compilers that can automatically transform programs to run on high performance machines, software systems that provide message passing capability to cooperatively communicate between multiple processes, along with software systems to ensure reliability of multiprocess computations. One design goal for a programming language for multiple processor machines is to hide the parallelism. The chapter discusses the two software languages: (1) Fortran 90 and (2) C*. The automatic translation of a high level language program into efficient code is one of the most difficult problems for high performance system developers. Many multiple processor computer systems require operating system support for distributed and parallel processing. A number of operating systems have been developed to support distributed systems.