The parallel programming model assumes MIMD processor architecture and operating system that supports process
creation and message passing among the processes. In this model, a parallel program is represented by a directed
graph [1, p. 5].
Each node of graph may be a single process design pattern (i.e. singleton) or multi–process design pattern.
Each node of graph has a set of input and output ports that are used for receiving and sending messages respectively. Output port of
a node is connected to the input port of the connected node. When a node sends a message to one of its output port it
reaches the input port of the connected node which can receive this message. It is allowed the model to remain independent
of the specifics of the underlying message passing model (such as Sockets, MPI or PVM) [1, p. 5–6].
A node in the application graph could be a multi-process structure that abstracts a design pattern. Such a node has one ore more
processes that acts as an interface processes for the node. Only interface processes of the multi-process node directly communicate
with other nodes in the application. The interface of the node is indistinguishable from that of a single process. The interface
processes of a multi-process design pattern hide the inner details of the pattern’s structure and implementation, and present the
interface of a single process to other nodes [1, p. 6].
In the current context parallel pattern abstraction is similar to the design pattern. The design patterns abstract parallel program
structuring techniques, allowing developers to create parallel applications in a rapid and easy manner [1, p. 7].
Complex parallel programs might be written as a combination (composition) of parallel programming patterns. When using a design
pattern developer only deals with communication that is application related. Every design pattern is designed in a similar way in the
sense that it implements an arbitrary complex parallel solution strategy [1, c. 8].
Литература:
Stephen Siu. Composing parallel applications using design patterns / Resources on Parallel Patterns
(PDF)
Источник: Resources on Parallel Patterns /
Parallel Skeletons and Framework / Composing parallel applications using design patterns
|