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
  • jacobi3D
  • rb2D
  • rb3D
  • 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: Cray T3E IBM SP2 (soon)

    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.