Additional Patterns for Parallel Application Programs * Berna L. Massingill Timothy G. Mattson Beverly A. Sanders § Abstract We are developing a pattern language to guide the programmer through the entire process of developing a parallel application program. The pattern language includes patterns that help find the concurrency in the problem, patterns that help find the appropriate algorithm structure to exploit the concurrency in parallel ex- ecution, and patterns describing lower-level implementation issues. Other pat- terns in the pattern language can be seen at http://www.cise.ufl.edu/ research/ParallelPatterns. In this paper, we briefly outline the overall structure of the pattern language and present selected patterns from the group of patterns that represent different strategies for exploiting concurrency once it has been identified. 1 Introduction We are developing a pattern language for parallel application programs. The goal of the pattern language is to lower the barrier to parallel programming by guiding the pro- grammer through the entire process of developing a parallel program. In our vision of parallel program development, the programmer brings into the process a good under- standing of the actual problem to be solved, then works through the pattern language, eventually obtaining a detailed design or even working code. The pattern language is organized into three design spaces, each corresponding to one major phase in the design-and-development process: The FindingConcurrency design space includes high-level patterns that help find the concurrency in a problem and decompose it into a collection of tasks. These * Copyright c 2003, Berna L. Massingill. Permission is granted to copy for the PLoP 2003 conference. All other rights reserved. Department of Computer and Information Science and Engineering, University of Florida, Gainesville, FL; blm@cise.ufl.edu (current address: Department of Computer Science, Trinity University, San Antonio, TX; bmassing@trinity.edu). Intel Corporation; timothy.g.mattson@intel.com. § Department of Computer and Information Science and Engineering, University of Florida, Gainesville, FL; sanders@cise.ufl.edu. 1