Patterns need examples. Readers want those examples to be in their favorite programming language, using their favorite libraries or language features for parallelism.
We are going to make a collection of programs. Each program will illustrate some patterns. Each program will be reimplemented for each language/library. For example, we will have versions for Threading Building Blocks in C++ (which is in C++), Scala, Actor Foundry, and some we haven't thought about yet. In the beginning, we'll use programs from Patterns for Parallel Programming, which already has MPI and OpenMP versions of most of the programs, but we'll add more programs as time goes by.
This collection will have many uses. In addition to providing documentation for patterns, it will be a way of evaluating the capability of languages. We might be able to use these for evaluating hardware platforms, as well. We might discover new patterns this way. But first and foremost this will be a way for people to see patterns in their favorite language.
|Application||TBB||Intel Ct||Java||DPJ||Charm++||Actor Language 1||CUDA2|
|Barnes-Hut N-Body Simulation||Barnes-Hut TBB||Barnes-Hut Java|
|1||Which implementation? Scala, Erlang, Actor Foundry, Axum?|
|2||I don't actually have access to a graphics card that can run CUDA so perhaps we should ask the graphics group here to write some of these examples for us.|