Parallel Design Patterns and Program Performance
Yu Zhao
Abstract
Open-access reader
Yu Zhao
Abstract
Open-access reader
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.
A significance statement is not available in the OpenAlex record.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
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