2014•DigitalCommons-Macalester (Macalester College)Open access

Parallel Design Patterns and Program Performance

Yu Zhao

Open full text 0 citations

Abstract

With the rapid advancement of parallel and distributed computing (PDC), three types of hardware and their corresponding software (hardware-software pairs) are becoming more and more popular: Distributed Memory Systems with the Message Passing Interface (MPI) library, Shared Memory Systems with the OpenMP library and Co-processor Systems with a general purpose parallel computing library. Alongside the development of both hardware and software aspects of PDC, the process of designing parallel programs has also improved significantly over the years. A consequence of this is that researchers have been able to describe many parallel design patterns, which are recurring solutions to well-known problems within a well-defined context. This study connects the parallel design patterns with program performance on hardware-software pairs together by investigating how the former affects the latter. In particular, given a program written for a particular hardware-software pair and that contain certain design patterns, can we decide which patterns are likely to have positive effects on the performance of the program? This paper concludes by offering insight into how parallel design patterns could be used to improve parallel software development environments.

Open-access reader

About this research paper

What this paper is about

With the rapid advancement of parallel and distributed computing (PDC), three types of hardware and their corresponding software (hardware-software pairs) are becoming more and more popular: Distributed Memory Systems with the Message Passing Interface (MPI) library, Shared Memory Systems with the OpenMP library and Co-processor Systems with a general purpose parallel computing library. Alongside the development of both hardware and software aspects of PDC, the process of designing parallel programs has also improved significantly over the years. A consequence of this is that researchers have been able to describe many parallel design patterns, which are recurring solutions to well-known problems within a well-defined context. This study connects the parallel design patterns with program performance on hardware-software pairs together by investigating how the former affects the latter. In particular, given a program written for a particular hardware-software pair and that contain certain design patterns, can we decide which patterns are likely to have positive effects on the performance of the program? This paper concludes by offering insight into how parallel design patterns could be used to improve parallel software development environments.

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

With the rapid advancement of parallel and distributed computing (PDC), three types of hardware and their corresponding software (hardware-software pairs) are becoming more and more popular: Distributed Memory Systems with the Message Passing Interface (MPI) library, Shared Memory Systems with the OpenMP library and Co-processor Systems with a general purpose parallel computing library. Alongside the development of both hardware and software aspects of PDC, the process of designing parallel programs has also improved significantly over the years. A consequence of this is that researchers have been able to describe many parallel design patterns, which are recurring solutions to well-known problems within a well-defined context. This study connects the parallel design patterns with program performance on hardware-software pairs together by investigating how the former affects the latter. In particular, given a program written for a particular hardware-software pair and that contain certain design patterns, can we decide which patterns are likely to have positive effects on the performance of the program? This paper concludes by offering insight into how parallel design patterns could be used to improve parallel software development environments.

Key concepts: Computer science, Program Design Language, Programming language

Related papers

Back to paper searchBrowse research topicsOriginal source
Parallel Design Patterns and Program Performance — Research Paper | ScholarLens