Asserting the utility of CO2P3S using the Cowichan Problem Set

https://doi.org/10.1016/j.jpdc.2005.05.029Get rights and content

Abstract

Parallel programming environments provide a way for programmers to reap the benefits of parallelism, while reducing the effort required to create parallel applications. The CO2P3S parallel programming system is one such tool that uses a pattern-based approach to express concurrency. Using the Cowichan Problems, we demonstrate that CO2P3S contains a rich set of parallel patterns for implementing a wide variety of applications running on shared-memory or distributed-memory hardware. An example of these parallel patterns, the Search-Tree pattern, is described and it is shown how the pattern was used to solve the Fifteen Puzzle problem. Code metrics and performance results are presented for the Cowichan applications to show the usability of the CO2P3S system and its ability to reduce programming effort, while producing programs with reasonable performance.

Section snippets

John Anvik received a Masters degree in Computer Science from the University of Alberta in 2002. His work examined the use of generative design patterns for shared-memory parallel programs. Following his Masters degree, John worked on a bioinformatics research project and taught undergraduate courses at the University of Alberta. He is currently a PhD student at the University of British Columbia working in the Software Practices Lab.

References (31)

  • J. Anvik, S. MacDonald, D. Szafron, J. Schaeffer, S. Bromling, K. Tan, Generating parallel programs from the wavefront...
  • J. Anvik, Asserting the utility of CO2P3S using the Cowichan Problems, Master's Thesis, Department of Computing...
  • B. Bacci et al.

    P3L: A structured high level programming language and its structured support

    Concurrency Practice Exp.

    (1995)
  • H.E. Bal et al.

    Orca: A language for parallel programming of distributed systems

    IEEE Trans. Software Eng.

    (March 1992)
  • A. Beguelin, J. Dongarra, A. Giest, R. Manchek, K. Moore, HeNCE: A heterogeneous network computing environment,...
  • P. Boncz, Parallelizing the crossword generation game in Orca, Student Project Report, Vrije Universiteit Amsterdam,...
  • D.S. Bouman, Parallelizing a skyline matrix solver using Orca, Student project Report, Vrije Universiteit Amsterdam,...
  • S. Bromling, Meta-programming with parallel design patterns, Master's Thesis, Department of Computing Science,...
  • S. Bromling, S. MacDonald, J. Anvik, J. Schaeffer, D. Szafron, K. Tan, Pattern-based parallel programming, Proceedings...
  • F.J. Budinsky et al.

    Automatic code generation from design patterns

    IBM Systems J.

    (1996)
  • M. Cole

    Algorithmic Skeletons: A Structured Approach to the Management of Parallel Computations

    (1988)
  • TogetherSoft Corporation, TogetherSoft ControlCenter tutorials: Using design...
  • R.S. de Boer, Parallel thinning and skeletonization using Orca, Student Project Report, Vrije Universiteit Amsterdam,...
  • G. Dutton, (Ed.), Harvard Papers on Geographic Information Systems: vol. 6—Spatial Algorithms: Efficency in Theory and...
  • E. Gamma et al.

    Design Patterns: Elements of Reusable Object-Oriented Software

    (1995)
  • Cited by (0)

    John Anvik received a Masters degree in Computer Science from the University of Alberta in 2002. His work examined the use of generative design patterns for shared-memory parallel programs. Following his Masters degree, John worked on a bioinformatics research project and taught undergraduate courses at the University of Alberta. He is currently a PhD student at the University of British Columbia working in the Software Practices Lab.

    Jonathan Schaeffer is a professor of Computing Science at the University of Alberta. He is a Canada Research Chair and an iCORE Chair. His research interests are in artificial intelligence and parallel/distributed computing. He is best known for his work on computer games. He is the creator of the checkers program Chinook, the first program to win a human world championship in any game. He is a co-founder of BioTools (bioinformatics software and the popular Poker Academy) and Chenomx (medical diagnostic software).

    Duane Szafron is a Professor of Computing Science and Vice Dean of the Faculty of Science at the University of Alberta. He has been doing object-oriented computing research since 1980, including language design, language implementation, programming environments and parallel computing. He is also doing research in bioinformatics and computer games. He teaches object-oriented computing courses to students at all levels, from first year through graduate school. He is one of the founders of two University of Alberta spin-off companies: BioTools, a developer of bioinformatics software and the popular Poker Academy poker software, and Chenomx, a developer of medical diagnostic software.

    Kai Tan received a Masters degree in Computer Science in 2002. He did work on pattern-based distributed and parallel programming and developed a distributed environment for the CO2P3S system. He currently works as a software developer for a storage virtualization company in Edmonton, Alberta.

    View full text