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.
Zhao, Yu, "Parallel Design Patterns and Program Performance" (2014). Mathematics, Statistics, and Computer Science Honors Projects. 36.
© Copyright is owned by author of this document