KeLP Code for the Curious (v 1.0)
NB: New KeLP user's should be using the code examples for
version K1.2.x. KeLP1.0 is becoming obsolete.
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, 4 codes are available:
- jacobi2D
- Solves the 2D Poisson Equation using Jacobi's method (found in the
KeLP distribution) There are two versions.
- noAPI
-
uses the DOCK library for data decomposition and is found in
http://www.cse.ucsd.edu/groups/hpcl/scg/kelp/Code_1.0/jacobi2D/noAPI.
- useAPI
- uses the mgrid API described in the KeLP User's
guide and is found in
http://www.cse.ucsd.edu/groups/hpcl/scg/kelp/Code_1.0/jacobi2D/useAPI.
- jacobi3D
- Solves 3D Poisson Equation using Jacobi's method. There are 3 versions:
- 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.)
The code is found in
http://www.cse.ucsd.edu/groups/hpcl/scg/kelp/Code_1.0/jacobi3D/basic.
-
manhattan
-
Manhattan stencil optimization - modifies MotionPlan.
The code is found in
http://www.cse.ucsd.edu/groups/hpcl/scg/kelp/Code_1.0/jacobi3D/manhattan.
- contig
-
Contiguous face optimization - modifies MotionPlan.
The code is found in
http://www.cse.ucsd.edu/groups/hpcl/scg/kelp/Code_1.0/jacobi3D/contig.
- rb2D
- Solves Laplace's equation
using Gauss-Seidel's method
with Red/Black ordering.
Includes extensive benchmarking code an performance optimizations
The rb2D source is found in the directory
http:./Code_1.0/rb2D and you may also download a gzipped tar file
in
http:./Code_1.0/rb2D.tar.gz
-
The rb2D program supports various
command line options to configure processor geometries and so on, which
are similar to those employed in rb3D.
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 is only one cache blocking
factor, and only 1 processor geometry specifier in two dimensions.
- rb3D
- Solves Laplace's equation
using Gauss-Seidel's method
with Red/Black ordering.
Includes extensive benchmarking code an performance optimizations
The rb3D
source is found in the directory
http:./Code_1.0/rb3D and you may also download a gzipped tar file
in
http:./Code_1.0/rb3D.tar.gz
-
The rb3D program supports various
command line options to configure processor geometries and so on, which
are similar to those employed in rb2D.
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.
Running your program
Develop your code on a workstation and
collect timing measurements of your running codes
on the platform of your choice (we support most platforms, a Linux
port is not yet available, but let us know if you need it)
Currently supported mainframes are:
On the Cray T3E
Be sure that the two environment variables
SCACHE_D_STREAMS and
MPI_BUFFER_MAX are cleared as shown or your message passing
performance may suffer.
You can do this by putting the following lines in your .cshrc
file:
# Be sure and run with the next two environment variables cleared to 0
# Turn off streams
setenv SCACHE_D_STREAMS 0
# Don't internally buffer messages
setenv MPI_BUFFER_MAX 0
If you have any problems, see the URL
http://www.npaci.edu/News
for up-to-date T3E info,
or the URL http://www.npaci.edu/T3E
for online T3E documentation.
On the IBM SP2
We are in the process of installing this at SDSC.
You may also download the software from the source distribution and
install it your self. Installation is painless and takes about an hour.
Be sure and read the instructions about installing the API and DOCK,
which
you will need to run the code we've provided.
Maintained by
Scott B. Baden.
Last modified:
Mon Apr 5 21:16:16 PDT 1999
Copyright © 1999, Scott B. Baden.