Presentation: "A Pattern Language for Parallel Programming"
Friday 14:00 - 15:00
Parallel programming is not just a new library or a new set of language features. It is a new way of designing and programming, and often requires new algorithms. Thus, the pattens of parallel programming are different from traditional programming patterns. I'll describe my work, with a large group of other people, on a pattern language for parallel programming. This pattern language starts with large-scale software architecture patterns and algorithmic patterns, which set the stage for parallelism but are mostly independent of it.
Then it includes patterns about parallel algorithm strategy, which is the main place where parallelism is introduced. There are a large number of lower level patterns that are used to implement these algorithms, including programming styles like SIMD or SPMD, data structures like shared queues and distributed arrays, and coordination patterns like barriers, mutual exclusion, or transactions. Sometimes these patterns are built-in to a language or a library, but often they are implemented by an application. In either case, you need to know these patterns if you are going to use them or to understand systems that use them.
Our pattern language is large, so I will not be able to teach it to you in one hour. Parallel programming is hard, so it would be surprising if I could However, I will explain the overall structure, what kinds of problems it solves, and tell you how you can learn more about it.
The web site for our pattern language is here
Keywords: Multicore, C++, Java, Threaded Building Blocks.data parallelism
: Developers interested in parallel programming who want to understand its impact on their software architecture
Ralph Johnson, Co-author of Design Patterns and led the development of the first automated refactoring tool.
Ralph Johnson is a co-author of the now-legendary book, "Design
Patterns" (Addison-Wesley, 1995).
He is on the faculty of the Department of Computer Science at the
University of Illinois, where he is the leader of the UIUC
patterns/Software Architecture Group and active in the Illinois
Universal Parallel Computing Research Center. He wrote the first paper
that used the word "refactoring", and his research group developed the
first automated refactoring tools. He also has explored the use of
the "Adaptive Object Model" architectural style for building domain
models. His current interest is in documenting patterns for parallel programming and in tools for automating large-scale software changes.