'Some people may think the dissection technique just sketched a rather indirect and tortuous way of reaching one's goals. My own feelings are perhaps best described by saying that I am perfectly aware that there is no Royal Road to Mathematics, in other words, that I have only a very small head and must live with it. I, therefore, see the dissection technique as one of the rather basic patterns of human understanding and think it worthwhile to try to create circumstances in which it can be most fruitfully applied.'
E.W. Dijkstra, Programming Considered as a Human Activity, IFIP Congress, New York, 1965.
This chapter presents two broader examples that involve the steps of the pattern-based parallel software design method to be introduced in Chapter 7, and span many of the software patterns that are presented in Chapter 3, Chapter 4 and Chapter 5. The objective is to show two full examples of the application of these software patterns to common problems that require a high-performance solution.
The first example in this chapter develops a parallel solution for an image processing application. This is based on a blood vessel segmentation algorithm. Section 6.1 describes the problem in general terms, the algorithm and the use of the parallel software design method to obtain a parallel solution to the problem.
The second example is based on an adaptive Eulerian (grid-based) magneto-hydrodynamic application. Section 6.2 describes the problem, an algorithmic ...