Parallel implementation of the n-body problem, using the parallel pattern library in C#
Description: The advent of multi-core machines has brought parallel programming
into the maintstream of programming technology. However, most parallel
programming models developed in the past are fairly low level and
require detailed tuning in order to efficiently exploit the
computational power of several processors.
A promising approach to parallel programming is the development of
high-level abstractions that encapsulate patterns for parallel
computation. Such patterns, first introduced as skeletons by Cole ,
have proven to be very useful and flexible. One concrete example is
the MapReduce skeleton used by Google to perform massively
data-parallel computations .
A library that supports a range of such patterns is Microsoft's
Parallel Patterns Library for C# [3,4]. The goal of this project is to
implement one realistic, high-performance application in C# and to
use the above pattern library to support parallel execution. The
performance of the application should be assessed on the departmental
multi-core machines and compared with related applications in other
languages. The primary candidate application is the n-body problem, which
simulates the interactions between n moving bodies in 3D space, using
a Barnes-Hut implementation .