Design Issues for Parallel Computers
Architectural LevelsThis paper explores issues affecting the performance of a particular style of parallel computer system. In considering such issues, it is important to distinguish between different levels of the system architecture.Broadly speaking, computer systems are designed at three levels. The first, usually thought of as the lowest level, is that of the hardware architec- North-Holland Future Generations Computer Systems 3 (1987) [285][286][287][288][289][290][291][292][293][294][295][296][297] ture and its associated machine-code. This is often referred to as the machine level. The next, intermediate level is that of the so-called high-level programming language, from which machine-code is generated. This is often referred to as the language level. Most often, this is not at a sufficiently high level to express specific applications in a convenient way. Consequently, the highest level, known as the applications level, is constructed for particular application areas on top of the language level. The interface to this level is a kind of 'very-high-level', applications-oriented language.As far as the end-user of a computer system is concerned, performance at the applications level is most important. However, as this varies significantly according to the particular application, and in a somewhat unpredictable fashion, most attempts at evaluating performance are made at the two lower levels. This paper broadly conforms to this pattern, but an attempt is made to relate the performance assessment to a specific set of applications, the so-called scientific problems, which involve a substantial amount of numerical calculation.
Parallel WorkloadParallel system performance is predominantly determined by design decisions made at the machine and language levels. The most critical of these decisions concern the nature, identification, distribution and control of the parallel workload.Different basic models of parallel computation can create workloads of a fundamentally different nature. For example, although many parallel programs are written as systems of communicating parallel processes, there is a critical distinction between systems that implement the communication using shared memory and those that use direct message-passing. The workload in the former involves accesses to a hardware third party (the shared memory) that are not necessary in the latter. Also, there is an important difference between such process-based schemes, which split the overall workload into coarse-grain chunks, and systems, such as dataflow, that segregate work into very fine-grain components. The former re- 0376-5075788753.50 © 1988, Elsevier Science Publishers B.V. (North-Holland)