O'Reilly logo

Patterns for Parallel Software Design by Jorge Luis Ortega-Arjona

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 7. Parallel Software Design

'Learning the answer to a problem does not provide a full idea of the resolution process, since there is always a step from which several questions arises.'

George Polya, How to solve it

A parallel program is 'the specification of a set of processes executing simultaneously, and communicating among themselves in order to achieve a common objective' (see Section 2.1). This definition is obtained from the original research work on parallel programming provided by E.W. Dijkstra [Dij68], C.A.R. Hoare [Hoa78], P. Brinch-Hansen [Bri78] and many others, who established the basis for parallel programming today. The current use of parallel computers implies that parallel software is increasingly important. From clusters to supercomputers, success depends heavily on the design skills of software developers. Obtaining a parallel program from an algorithmic description is the main objective of parallel software design.

This chapter introduces a pattern-based parallel software design method, which makes use of the software patterns from Chapters 3, 4, and 5 to develop the coordination, communication and synchronization of a parallel software system. This method was used in Chapter 6 when developing the two examples. This chapter explains the method in detail, providing explanation of the steps taken when designing a parallel application. The description of the steps is complemented by the development of a further example: the Two-Dimensional Heat Equation, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required