7.3. 7.3 Problem Analysis

Parallel software design proceeds from the statement of a problem (normally expressed in terms of a function and a set of requirements about how to perform such a function) to a form for the parallel organization of components and a set of properties of such a form. The initial step, clearly, is to first understand the problem. Unfortunately this step is often ignored, since many developers want to start programming before they fully understand the problem.

7.3.1. Specification of the Problem

A Specification of the Problem is the first document output by this design method (Figure 7.3). This document should have (a) a description of the data to operate on, (b) a description of the algorithm that operates on such data, (c) contextual information about the parallel platform and the programming language, and (d) specific requirements for performance and cost. This document establishes a reference against which to evaluate the solution. Hence, the descriptions it includes should attempt to answer questions such as 'What is the problem to be solved?', and 'What is the parallel system going to achieve?'

The Specification of the Problem should also answer another important question: 'How do we know whether the parallel system does what it is supposed to do?' A reference or criteria should therefore be defined to verify whether or not the parallel system accomplishes its objectives. This enables the document to be used to create tests to evaluate the parallel ...

Get Patterns for Parallel Software Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.