This chapter introduced a pattern-based parallel software design method that guides the development of complete parallel software applications, starting with the need for high performance with a problem description, and finishing with a complete parallel software system. The method includes all the design, and some parts of the implementation, in the form of software patterns used to coordinate parallel software.
A good software design method determines whether a solution to a given problem can be found early in the development process. Not all problems, and particularly, not all parallel programming problems, have a solution. Perhaps only one of several programming problems will yield a successful parallel solution. Since the cost and effort expended on failed attempts must be recovered from the successful one, it is important that the cost of failure is made as small as possible. The pattern-based parallel software design method helps to achieve this goal.