Papers

Home Contents Bibliography Errata Papers Other Publications

 

A brief overview of the current pattern language described in our book.

New:  Berna L. Massingill, Timothy G. Mattson, and Beverly A. Sanders " Reengineering for Parallelism:  An Entry Point for PLPP (Pattern Language for Parallel Programming) for Legacy Applications "    Proceedings of the Twelfth Pattern Languages of Programs Workshop (PLoP 2005), 2005.

The following  papers discuss an earlier version of the pattern language.   

Conference and journal papers

Berna L. Massingill, Timothy G. Mattson, and Beverly A. Sanders; "Patterns for Parallel Application Programs"; Proceedings of the Sixth Pattern Languages of Programs Workshop (PLoP 1999), 1999; http://jerry.cs.uiuc.edu/~plop/plop99/proceedings/.

We present three selected patterns from our pattern language, selected from the Algorithm Structure design space.  These patterns are used after the problem has been analyzed to identify the exploitable concurrency. The EmbarrassinglyParallel pattern is used when the problem can be decomposed into a set of independent tasks. The SeparableDependencies pattern can be used when dependencies between tasks can be pulled outside the concurrent execution by replicating data prior to the concurrent execution and then combining the replicated data afterwards. The GeometricDecomposition pattern is used when the problem space can be decomposed into discrete subspaces and the problem solved by first exchanging information among subspaces and then concurrently computing solutions for the subspaces.

 

Berna L. Massingill, Timothy G. Mattson, and Beverly A. Sanders; "Patterns for Finding Concurrency for Parallel Application Programs"; Proceedings of the Seventh Pattern Languages of Programs Workshop (PLoP 2000), 2000; http://jerry.cs.uiuc.edu/~plop/plop2k/proceedings/proceedings.html.

Patterns from the FindingConcurrency design space are described. These patterns form the starting point for novice parallel programmers and guide them through the process of identifying exploitable concurrency in a problem and designing a high-level algorithm to take advantage of this concurrency.

 

Berna L. Massingill, Timothy G. Mattson, and Beverly A. Sanders; "More Patterns for Parallel Application Programs"; Proceedings of the Eighth Pattern Languages of Programs Workshop (PLoP 2001), 2001; http://jerry.cs.uiuc.edu/~plop/plop2001/accepted_submissions/accepted-papers.html.

Three patterns from the Algorithm Structrue design space are described.   The ChooseStructure pattern addresses the question of how to select an appropriate pattern from this design space. The DivideAndConquer pattern is used when the problem can be solved by recursively dividing it into subproblems, solving each subproblem independently, and then recombining the subsolutions into a solution to the original problem. The PipelineProcessing pattern is used when the problem can be decomposed into ordered groups of tasks connected by data dependencies.

 

Berna L. Massingill, Timothy G. Mattson, and Beverly A. Sanders; "Some Algorithm Structure and Support Patterns for Parallel Application Programs": Proceedings of the Ninth Pattern Languages of Programs Workshop (PLoP 2002), 2002; http://jerry.cs.uiuc.edu/~plop/plop2002/proceedings.html.

We outline the overall structure of the pattern language and present selected patterns from the AlgorithmStructure and SupportingStructures design space.

 

Berna L. Massingill, Timothy G. Mattson, and Beverly A. Sanders; "Additional Patterns for Parallel Application Programs": Proceedings of the Tenth Pattern Languages of Programs Workshop (PLoP 2003), 2003; http://jerry.cs.uiuc.edu/~plop/plop2003/Papers/.

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.

 

Berna L. Massingill, Timothy G. Mattson, and Beverly A. Sanders; "A Pattern Language for Parallel Application Programs"; Proceedings of the Sixth International Euro-Par Conference (Euro-Par 2000); 2000; longer version available as UF CISE TR 99-022, described below.

An overview of the pattern language 

 

Berna L. Massingill, Timothy G. Mattson, and Beverly A. Sanders; "Parallel Programming with a Pattern Language"; International Journal on Software Tools for Technology Transfer, volume 3 issue 2; 2001.

In this paper we describe our pattern language, present two example patterns, and sketch a case study illustrating the design process using the pattern language.

Technical reports

Berna L. Massingill, Timothy G. Mattson, and Beverly A. Sanders; "A Pattern Language for Parallel Application Programming"; UF CISE TR 99-022.

An overview of our pattern language. We describe its overall structure, present a complete example of one of our patterns, and show how it can be used to develop a parallel global optimization application.

09 November, 2005