Why Not Use a Pattern-Based Parallel Programming System?
Parallel programming environments provide a way for users to reap the benefits of parallelism, while reducing the effort required to create parallel applications. The CO2P3S parallel programming system is one such tool, using a pattern-based approach to express concurrency. This paper demonstrates that the CO2P3S system contains a rich set of parallel patterns for implementing a wide variety of applications running on shared-memory or distributed-memory hardware. Code metrics and performance results are presented to show the usability of the CO2P3S system and its ability to reduce programming effort, while producing programs with reasonable performance.
KeywordsDesign Pattern Parallel Programming Parallel Application Code Metrics Pattern Template
Unable to display preview. Download preview PDF.
- 1.Anvik, J.: Asserting the utility of COPS using the Cowichan Problems. Master’s thesis, Department of Computing Science, University of Alberta (2002)Google Scholar
- 2.Bromling, S.: Meta-programming with parallel design patterns. Master’s thesis, Department of Computing Science, University of Alberta (2002)Google Scholar
- 3.Cole, M.: Algorithmic Skeletons: A Structured Approach to the Management of Parallel Computations. MIT Press, Cambridge (1988)Google Scholar
- 4.Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
- 5.Goswami, D., Singh, A., Priess, B.: Architectural skeletons: The re-usable building-blocks for parallel applications. In: Parallel and Distributed Processing Techniques and Applciations (PDPTA 1999), pp. 1250–1256 (1999)Google Scholar
- 6.MacDonald, S.: From Patterns to Frameworks to Parallel Programs. PhD thesis, Department of Computing Science, University of Alberta (2001)Google Scholar
- 8.Wilson, G.: Assessing the usability of parallel programming systems: The Cowichan problems. In: IFIP Working Conference on Programming Environments for Massively Parallel Distributed Systems, pp. 183–193 (1994)Google Scholar