CGD Kernel Applications
A few kernel applications are
presented to showcase CGD. Many SPMD algorithms are easily mapped to the
CGD programming model, the result being code that is both readable and
concise. Most optimizations can be done by changing decompositions and
a few decomposition rules, thus leaving most code unchanged.
Examples
- Stencil : A standard 2D PDE solver for heat
dissipation. Optimizations include communication aggregation and communication - computation overlapping.
- FFT 2D : A standard 2D Fast Fourier Transform based on block column and block row decompositions.
- Matrix : A standard matrix multiplication algorithm based on 2D, block column, and block row decompositions.
Benchmarks
- NPB FT : The FT NASA parallel benchmark
solves a 3D PDE using spectral methods. The most computation intensive
sections compute X,Y,Z-wise FFTs on local domains, while the most
communication intensive steps are the X-Y and Y-Z transpositions for 2D
domain decompositions. Optimizations include communication - computation overlapping.
- Barnes-Hut : The Splash2 benchmark computes the interaction between N bodies as time evolves. Each time iteration requires rebalancing a tree containing all particles, computing interactions hierarchically, moving particles, and updating the particle tree.
