Resources on Parallel Patterns


Pattern Collection


  • Multilevel Grid Pattern [ pdf ] [ doc ]
  • Multi-Domain Pattern [ pdf ] [ doc ]
  • Adaptive Mesh Refinement Pattern [ pdf ] [ doc ]
  • Wavefront Pattern (Dynamic Programming) [ pdf ] [ doc ]
  • Communication Characteristics [ pdf ] [ doc ]
  • Odd-Even Communication Group Pattern [ pdf ] [ doc ]
  • Transpositional Communication Group Pattern [ pdf ] [ doc ]
  • Loosely Synchronous Pattern [ doc ]
  • Event-Driven Pattern [ doc ]
  • Separation of Concerns in Parallel Patterns [ pdf ] [ doc ]

 

Parallel Skeletons and Framework


  • "Design Patterns for Parallel Programming", S. Siu, et al. [ pdf ]
  • "Composing Parallel Applications Using Design Patterns", Stephen Siu, et al. [ pdf ]
  • "The Performance of Parallel Algorithmic Skeletons", H Deldarie, et al. [ pdf ]
  • "Parallel Programming Using Skeleton Functions", J Darlington, et al. [ pdf ]
  • "Stages and Transformations in Parallel Programming", Sergei Gorlatch, et al. [ pdf ]
  • "Towards the Classification of Algorithmci Skeletons", Duncan Campbell, et al. [ pdf ]
  • "A Case-Based Parallel Programming Systems", Katsuhiro Yamazaki, et al. [ pdf ]
  • "Architectural Patterns for Parallel Programming", Jorge Ortega, et al. [ pdf ]
  • "Pattern-based Parallel Programming", S. Bromling, et al. [ pdf ]
  • "Using Generative Design Patterns to Generate Parallel Code for a Distributed Memory Environment", Kai Tan, et al. [ pdf ]
  • "Parallel Design Pattern for Computational Biology and Scientific Computing Applications", Weiguo Liu, et al. [ pdf ]
  • "A Generic Parallel Pattern-based System for Bioinformatics", Weiguo Liu, et al. [ pdf ]
  • "Automatic Code Generation from Design Patterns", Frank Budinsky, et al. [ pdf ]
  • "Why Not Use a Pattern-based Parallel Programming System?", John Anvik, et al. [ pdf ]
  • "Building Parallel Applications using Design Patterns", Dhrubajyoti Goswami, et al. [ pdf ]
  • "Architectural Skeletons: The Re-Usable Building Blocks for Parallel Applications", Bhrubajyoti Goswami, et al. [ pdf ]
  • "An Experiment to Measure the Usability of Parallel Programming Systems", Duane Szafron, et al. [ pdf ]

 

Parallel Pattern Language


  • "Parallel Programming with a Pattern Language", Berna Massingill, et al. [ pdf ]
  • "Patterns for Finding Concurrency for Parallel Application Programs", Berna Massingill, et al. [ pdf ]
  • "More Patterns for Parallel Application Programs", Berna Massingill, et al. [ pdf ]
  • "Patterns for Parallel Application Programs", Berna Massingill, et al. [ pdf ]

 

N-Body Simulation: Particle Mesh (Multidomain Pattern)


  • "NAMD Simulator" [ ppt ]
  • "NAMD: Biomolecular Simulation on Thousands of Processors", James Phillips, et al. [ pdf ]
  • "Long-Range Interactions in Many-Particle Simulation", Paul Gibbon, Godehard Sutmann [ pdf ]
  • "Ewald and Multipole Methods for periodic N-Body Problems", John A. Board. Jr, et al. [ pdf ]
  • "Distributed Particle-Mesh Ewald: A Parallel Ewald Summation Method", Technical Report 96-002, Duke University [ pdf ]
  • "A Note on N-Body Computations with Cutoffs", Marc Snir [ pdf ]

 

Climate Model: Spectral Transform Method (Multidomain Pattern)


  • "Design and Performance of a scalable Parallel Community Climate Model", John Drake, et al. [ pdf ]
  • "Parallelizing the Spectral Transform Method", Patric Worley and John Drake [ pdf ]
  • "Parallelizing the Spectral Transform Method - Part II", David Walker, et al. [ pdf ]
  • "Parallel Algorithms for the Spectral Transform Method", Ian Foster and Patric Worley [ pdf ]

 

Multigrid and Adaptive Mesh Refinement


  • "Parallel Numerical Methods - Multigrid", Michael Heath [ pdf ]
  • "Multi-Level Adaptive Solutions to Boundary-Value Problems", Achi Brandt [ pdf ]
  • "Parallel and Multilevel Algorithms for Computational Partial Differential Equations", Peter Jimack [ pdf ]
  • "Parallel Multigrid Solver for 3D Unstructured Finite Element Problems", Mark Adams, et al. [ pdf ]
  • "A Survey of Error Indicators and Error Estimates for Hyperbolic Problems", M. Laforest, et al. [ pdf ]
  • "Distributed Dynamic Data-Structures for Parallel Adaptive Mesh-Refinement", Manish Parashar, et al. [ pdf ]
  • "An Infrastructure for Parallel Adaptive Mesh-Refinement Techniques", Manish Parashar, et al. [ pdf ]
  • "ZPL Implementation of AMR Algorithm for Elastic Wave Propagation", Hongyu Wu, et al. [ pdf ]

 

Models of Parallel Programs and Computation


  • "Survey on Next-Generation Programming Models", [ ppt ]
  • "Titanium Language Reference Manual" [ pdf ]
  • "Titanium: A Java Dialect for High Performance Computing" [ pdf ]
  • "Overview of the Global Arrays Parallel Software Development Toolkit" [ pdf ]
  • "Programming in UPC: Tutorial" [ pdf ]
  • "UPC Language Specifications V1.1.1" [ pdf ]
  • "Introduction to Co-Array Fortran" [ pdf ]
  • "Definition of the F-- Extension to Fortran 90", Robert Numrich [ pdf ]
  • "Co-Array Fortran for Parallel Programming", Robert Numrich [ pdf ]
  • "Goto's Considered Harmful", Edsger Dijkstra [ pdf ]
  • "Send-Receive Considered Harmful: Myths and Realities of Message Passing", Sergei Gorlatch [ pdf ]
  • "A Bridging Model for Parallel Computation", Leslie Valiant [ pdf ]
  • "BSP Programming" [ pdf ]
  • "Direct Bulk Synchronous Parallel Algorithms", Alexandros Gerbessiotis, et al. [ pdf ]
  • "Programming Parallel Algorithms", Guy Blelloch [ pdf ]
  • "Implementation of a Portable Nested Data-Parallel Language", Guy Blelloch, et al. [ pdf ]
  • "A Programmers Guide to ZPL", Lawrence Snyder [ pdf ]
  • "Regions: An Abstraction for Expressing Array Computation", Bradford Chamberlin [ pdf ]
  • "Charm++ Language" [ pdf ]
  • "Converse Manual" [ pdf ]
  • "Converse Extensions Library" [ pdf ]
  • "Charm++ and Converse Libraries" [ pdf ]
  • Collaboration with LRI, France -- Conjugate Gradient in Converse Runtime [ cg.c ]
  • Collaboration with LRI, France -- CG Description [ ppt ]

 

Separation of Concerns / Dynamic Instrumentation


  • "Reinventing Explicit Parallel Programming for Improved Engineering of High Performance Computing Software", Anthony Skjellum, et al. [ pdf ]
  • "Discussing Aspects of AOP", Tzilla Elrad, et al. [ pdf ]
  • "Composing Crosscutting Concerns using Composition Filters", Lodewijk Bergmans, et al. [ pdf ]
  • "Aspect-Oriented Programming with Adaptive Methods", Karl Lieberherr, et al. [ pdf ]
  • "Using Multidimensional Separation of Concerns to (Re)shape Evolving Software", Harold Ossher, et al. [ pdf ]
  • "Multi-Dimensional Separation of Concerns and The Hyperspace Approach", Harold Ossher, et al. [ pdf ]
  • "Using AspectJ to Separate Concerns in Parallel Scientific Java Code", Bruno Harbulot, et al. [ pdf ]
  • "Automatic Performance Analysis of Parallel Programs", A. Espinosa, et al. [ pdf ]
  • "The Paradyn Parallel Performance Measurement Tools", Barton Miller, et al. [ pdf ]
  • "Interactive Binary Instrumentation", Chadd Williams, et al. [ pdf ]