Magistracy Department of Donetsk National Technical University

Computer science faculty

Department of applied mathematics and informatics

Parallel programming patterns

Overview and characteristics

Application

Links

Automated systems software specialty

Individual task

Parallel programming patterns

Application

Russian version

Parallel program model

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].

Parallel Program Model

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


Main page