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, 6 codes are available:

  • jacobi2D
  • jacobi3D
  • rb3D
  • NAS-MG
  • NAS-FT
  • SUMMA (blocked matrix multiply)
  • 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/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/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/jacobi3D/basic.
    Manhattan
    Manhattan stencil optimization - modifies MotionPlan. The code is found in http://www.cse.ucsd.edu/groups/hpcl/scg/kelp/Code/jacobi3D/manhattan.
    contig
    Contiguous face optimization - modifies MotionPlan. The code is found in http://www.cse.ucsd.edu/groups/hpcl/scg/kelp/Code/jacobi3D/contig.

    rb3D
    Solves Poisson'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/rb3D and you may also down-load a gzipped tar file in http:./Code/rb3D.tar.gz
    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. There is also a hand-coded version in the directory http:./Code/rb3D_MPI, and a gzipped tar file in ./Code/rb3D_mpi.tar.gz.

    NAS-MG
    Solves an elliptic equation in 3D dimensions using multigrid v-cycles. The NAS-MG source is found in the directory http:./Code/NAS-MG and you may also down-load a gzipped tar file in http:./Code/nas-mg.tar.gz
    NAS-FT
    Solves the 3D heat equation using a Fourier method. The NAS-FT source is found in the directory http:./Code/NAS-FT and you may also down-load a gzipped tar file in http:./Code/nas-ft.tar.gz
    SUMMA
    performs a blocked matrix multiply using the SUMMA algorithm by van de Geijn et al. at Univ. Texas at Austin. The SUMMA source is found in the directory http:./Code/SUMMA, and you may also down-load a gzipped tar file in http:./Code/summa.tar.gz. There is also a hand-coded version (a modified version of code made publicly available by van de Geijn) in the directory http:./Code/SUMMA_MPI, and a gzipped tar file in ./Code/summa_mpi.tar.gz.

    Running your program

    Develop your code on a workstation and collect timing measurements on the platform of your choice. Supported platforms include
  • IBM SP2,
  • Linux Beowulf clusters,
  • SGI-CRAY Origin 2000,
  • Solaris workstation clusters running Sun HPC, or MPI-CH.
  • A Cray T3E port is not yet available, but let us know if you need it.


    Maintained by Scott B. Baden. Last modified: Mon Apr 5 21:16:16 PDT 1999 Copyright © 1999, Scott B. Baden.