Classification of Architectural Patterns for Parallel Programming

Architectural patterns for parallel programming can be classified following the characteristics of parallel systems as the classification criteria. Pancake [Pan96], Foster [Fos94], and Carriero and Gelernter [CG88] have studied and proposed classifications according to the characteristics of parallel applications, and their relation with performance. All of them agree that in parallel programming, the nature of the problem to be solved is tightly related to the structure and behaviour of the program that solves it.

Architectural patterns for parallel programming are defined and classified according to the requirements of order of data and operations, and the nature of their processing components.

Requirements of order dictate the way in which parallel computation has to be performed, and therefore, impact on the software design. Following this, it is possible to consider that most parallel applications fall into one of three forms of parallelism: functional parallelism [Fos94], domain parallelism [Fos94], and activity parallelism [CG88], which depend on the requirements of order of operations and data in the problem.

The nature of processing components is another classification criteria that can be used for parallel systems. Generally, components of parallel systems perform coordination and processing activities. Considering only the processing characteristic of the components, parallel systems are classified as homogenous systems and heterogeneous systems, according to the same or different processing nature of their components. This nature exposes properties that have tangible effects on their number in the system and the kind of communications among them.

Based on these classification criteria, this paper presents five architectural patterns commonly used in parallel systems programming:

 

Functional Parallelism

Domain Parallelism

Activity Parallelism

Heterogeneous Processing

Pipes and Filters

 

 

Shared Resource

 

Homogeneous Processing

Parallel Hierarchies

 

Communicating Sequential Elements

Manager-Workers

 

Table 1: Architectural patterns classification.


Contact Information

Jorge Luis Ortega Arjona.

E-mail jortega-arjona@acm.org