Proceedings Article10.1145/781498.781532
Using generative design patterns to generate parallel code for a distributed memory environment
Kai Tan,Duane Szafron,Jonathan Schaeffer,John Anvik,Steve MacDonald +4 more
- 11 Jun 2003
- Vol. 38, Iss: 10, pp 203-215
TL;DR: This paper describes generalizing CO2P3S to generate distributed-memory parallel solutions and uses generative design patterns to take an application specification and use it to generate parallel application code that achieves good performance in shared memory and distributed memory environments.
read more
Abstract: A design pattern is a mechanism for encapsulating the knowledge of experienced designers into a re-usable artifact. Parallel design patterns reflect commonly occurring parallel communication and synchronization structures. Our tools, CO2P3S (Correct Object-Oriented Pattern-based Parallel Programming System) and MetaCO2P3S, use generative design patterns. A programmer selects the parallel design patterns that are appropriate for an application, and then adapts the patterns for that specific application by selecting from a small set of code-configuration options. CO2P3S then generates a custom framework for the application that includes all of the structural code necessary for the application to run in parallel. The programmer is only required to write simple code that launches the application and to fill in some application-specific sequential hook routines. We use generative design patterns to take an application specification (parallel design patterns + sequential user code) and use it to generate parallel application code that achieves good performance in shared memory and distributed memory environments. Although our implementations are for Java, the approach we describe is tool and language independent. This paper describes generalizing CO2P3S to generate distributed-memory parallel solutions.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Patent
Automated Partitioning of a Computation for Parallel or Other High Capability Architecture
Ted James Biggerstaff
- 31 Jan 2009
TL;DR: In this paper, a method and a system for transformation-based program generation using two separate specifications as input: an implementation neutral specification of the desired computation and a specification of execution platform is presented.
128
An adaptive extension library for improving collective communication operations
TL;DR: An adaptive extension library is presented that combines the advantage of using a portable MPI library with the ability to optimize the performance of specific collective communication operations in isolation as well as in the context of application programs.
55
•Proceedings Article
Structured parallel programming with deterministic patterns
Michael McCool
- 14 Jun 2010
TL;DR: The approach to parallelism described in this document includes both collective "data-parallel" patterns such as map and reduce as well as structured "task-par Parallel patterns" such as pipelining and superscalar task graphs, which addresses issues of both data access and parallel task distribution in a common framework.
Rethinking the pipeline as object-oriented states with transformations
Steve MacDonald,Duane Szafron,Jonathan Schaeffer +2 more
- 26 Apr 2004
TL;DR: This paper details a transformation that allows programs written in a pipeline style to execute using the master/slave structure and demonstrates by performance results from two applications.
Testing Software Assets of Framework-Based Product Families During Application Engineering Stage
Jehad Al Dallal,Paul G. Sorenson +1 more
TL;DR: A testing model that considers retesting framework assets during the application engineering stage is proposed and a test-case-reusing technique is introduced to identify uncovered framework use cases and cover them by reusing the test cases already built during the framework domain engineering stage.
References
•Book
Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma,Richard Helm,Ralph E. Johnson,John Vlissides +3 more
- 01 Jan 1994
TL;DR: The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns, which most experienced OOP designers will find out they've known about patterns all along.
24.8K
OpenMP: an industry standard API for shared-memory programming
TL;DR: At its most elemental level, OpenMP is a set of compiler directives and callable runtime library routines that extend Fortran (and separately, C and C++ to express shared memory parallelism) and leaves the base language unspecified.
3.8K
•Book
MPI: The Complete Reference
Marc Snir,Steve W. Otto,David W. Walker,Jack Dongarra,Steven Huss-Lederman +4 more
- 01 Jan 1996
TL;DR: MPI: The Complete Reference is an annotated manual for the latest 1.1 version of the standard that illuminates the more advanced and subtle features of MPI and covers such advanced issues in parallel computing and programming as true portability, deadlock, high-performance message passing, and libraries for distributed and parallel computing.
2.8K
Linda in context
TL;DR: How can a system that differs sharply from all currently fashionable approaches score any kind of success?
1.5K
•Journal Article
Designing reusable classes
Ralph E. Johnson,Brian Foote +1 more
TL;DR: This paper describes what it is like to design systems in Smalltalk and how classes are developed so that they will be reusable.
Related Papers (5)
Timothy G. Mattson,Beverly A. Sanders,Berna L. Massingill +2 more
- 10 Sep 2004
John Darlington,Yike Guo,Hing Wing To,Jin Yang +3 more
- 01 Aug 1995