Benchmark

Description

Source Code

Notes

Group

BarnesHut

Implements the BarnesHut method to simulate the
interaction of a system of bodies (Nbody problem). A general description
of the BarnesHut method can be found HERE.

barnes.tar.gz

README.barnes


Cholesky

Performs blocked Cholesky Factorization on a sparse matrix. The implementation
contained in SPLASH2 is described HERE.

cholesky.tar.gz

README.cholesky


FMM

The FMM application implements a parallel adaptive Fast Multipole Method
to simulate the interaction of a system of bodies (Nbody problem). A
description of this implementation can be found HERE.

fmm.tar.gz

README.fmm


LU

Factors a dense matrix into the product of a lower
triangular and an upper triangular matrix. The factorization uses
blocking to exploit temporal locality on individual submatrix elements.
The algorithm used in this implementation is described HERE.

lu.tar.gz

README.lu

Stef and Hoifung

Ocean

Simulates largescale ocean movements based on eddy and
boundary currents, and is an enhanced version of the SPLASH Ocean code.
A description of the functionality of this code can be found HERE.

ocean.tar.gz

README.ocean


Radiosity

Computes the equilibrium distribution of light in a scene
using the hierarchical diffuse radiosity method. A description of the
sequential hierarchical radiosity method can be found HERE.

radiosity.tar.gz

README.radiosity

Shobhit and Pravin

Radix

Implements an integer radix sort based on the method
described HERE.

radix.tar.gz

README.radix

Nodira and Yaw

Raytrace

Renders a threedimensional scene onto a twodimensional
image plane using optimized ray tracing. A hierarchical uniform grid
is used to represent the scene for efficient access, and early ray
termination and antialiasing are implemented. The best description
of the algorithm can be found HERE.

raytrace.tar.gz

README.raytrace

Yael and Ravi

VolRend

Renders a threedimensional volume onto a twodimensional
image plane using an optimized ray casting technique developed by
Marc Levoy. A hierarchical octree data structure is used to represent
the scene for efficient access, and early ray termination and antialiasing
are implemented. The best description of the algorithm can be found HERE.

volrend.tar.gz

README.volrend

Jenny and Indri

Water

Solves the same molecular dynamics Nbody problem as the
original Water code in SPLASH (which is called WATERNSQUARED in
SPLASH2), but uses a different algorithm. In particular, it imposes a
3D spatial data structure on the cubical domain, resulting in a 3D
grid of boxes. Every box contains a linked list of the molecules
currently in that box (in the current timestep). The advantage of the
spatial grid is that a process that owns a box in the grid has to look
at only its neighboring boxes for molecules that might be within the
cutoff radius from a molecule in the box it owns. This makes the
algorithm O(n) instead of O(n^2). For small problems (upto several
hundred to a couple of thousand molecules) the overhead of the spatial
data structure is not justified and WATERNSQUARED might solve the
problem faster. But for large systems this program is much better.
That is why we provide both, since both small and large systems are
interesting in this case.

water.tar.gz

README.waterspatial
README.waternsquared

Scott and Colin
