The first benchmark illustrates a ``typical toy problem'', grid computation. The computation consists of solving the Poisson equation on a two dimensional grid using finite difference operators and a simple conjugate gradient method without preconditioning. Though this problem is very simple, it does illustrate important properties of the runtime system associated with an important class of computations.
In the program, we have used an early prototype of our
DistributedGrid collection class.
In addition, we have also used a common blocking technique that is often
used to increase the computational granularity.
The method used here is to make the grid size by
and
set the grid elements to be subgrids of size
by
;
.
The heart of the algorithm is a Conjugate Gradient iteration without
any preconditioning.
Communication occurs only in a function called which applies the
finite difference operator and in the dot product function,
.
In
, the communication is all based on nearest neighbors and in the
function the communication is all based on tree reductions.