3.1. 3.1 Parallel Pipes and Filters

The Parallel Pipes and Filters pattern extends the original Pipes and Filters pattern [POSA1] [Sha95] [SG96] with aspects of functional parallelism. Each parallel component simultaneously performs a different step of the computation, following a precise order of operations on ordered data that is passed from one computation stage to another as a flow through the whole structure [OR98]. Functional parallelism is the form of parallelism that involves problems whose computation can be described in terms of a series of simultaneous time-step ordered operations, on a series of ordered values or data, with predictable organization and interdependencies. As each step represents a change of the input value or effect over time, a high amount of communication between components in the solution (in the form of a flow) should be considered. Conceptually, a single data value or transformation is performed repeatedly [CG88] [Fos94] [Pan96] [OR98].

3.1.1. Example: Graphics Rendering

In image processing, graphics rendering is a jargon phrase that has come to mean 'the collection of operations necessary to project a view of an object or a scene onto a view surface'. In common applications for the film and video industry, rendering a special effect scene of ten seconds using a standard resolution of 2048 × 1536 pixels takes up to 130 hours of processing time when using the C programming language on a single high-end Macintosh or PC platform [HPCN98]. The input ...

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.