KeLP Code for the Curious

KeLP facilitates the design of reusable software. In this spirit we are providing our users with source codes that may be used as starting points for your applications.

Currently 14 applications are available via the URL http://www-cse.ucsd.edu/groups/hpcl/scg/kelp/KeLP1.3_src/examples/

jacobi2D_noAPI

jacobi3D_basic

rb3D

NAS-FT

region3_init

jacobi2D_useAPI

jacobi3D_contig

rb3D_MPI

SUMMA

region3_move

 complex

jacobi3D_manhattan

NAS-MG

SUMMA_MPI

region3_xcut

 

jacobi2D
Solves the 2D Poisson Equation using Jacobi's method (found in the KeLP distribution) There are two versions.
  
  jacobi2D_noAPI
uses the DOCK library for data decomposition
  jacobi2D_useAPI
uses the mgrid API described in the KeLP User's guide
 
jacobi3D
Solves 3D Poisson Equation using Jacobi's method. There are 3 versions:
  
  jacobi3D_basic
is the simplest version and you should start with this one before exploring how to optimize communication through direct MotionPlan manipulation (this is described in the KeLP technical reports.)
  jacobi3D_manhattan
Manhattan stencil optimization - modifies MotionPlan.
  jacobi3D_contig
Contiguous face optimization - modifies MotionPlan.
 
rb3D
Solves Poisson's equation using Gauss-Seidel's method with Red/Black ordering. Includes extensive benchmarking code an performance optimizations. There is also a hand code MPI version called rb3D_MPI
The rb3D program supports various command line options to configure processor geometries and so on. Click HERE for an explanation of command line options and output format, but also look at the source code for the details. Note that there are two cache blocking factors, and only 2 processor geometry specifiers.
 
NAS-MG
Solves an elliptic equation in 3D dimensions using multigrid v-cycles.
 
NAS-FT
Solves the 3D heat equation using a Fourier method.
 
SUMMA
Performs a blocked matrix multiply using the SUMMA algorithm by van de Geijn et al. at Univ. Texas at Austin. There is also a hand-coded version (a modified version of code made publicly available by van de Geijn) called SUMMA_MPI
 
region3_init   region3_move   region3_xcut
These are small tutorial programs that will be documented in the KeLP User's guide. (Watch for an update)
 
complex
Simple example of instantiating complex templates. Computes amplitude and phase of the complex array, executes a block-cyclic shift of the data and prints the results.

Running your program

Develop your code on a workstation and collect timing measurements on the platform of your choice. Supported platforms include

A port to Sun HPC is in progress.


Maintained by The KeLP Webmaster. Last modified: 11/05/99 01:58:24 PM Copyright © 1999, 2000, Scott B. Baden.