Code
GeomOct
GeomOct is a Geometry Generator, which splits a cubic region into octrees. It is being used by our group to evaluate preconditioners for various geometries. The code is written in C++, using templates. It is modular, and meant to be fairly extensible. We hope that you find the code useful, and that it saves you some effort. GeomOct documentation, generated through Doxygen, is viewable online. Code coverage results are also viewable online. The current set of features includes:
- Generation of trees using an arbitrary splitting criterion.
- Visualization with PyMol. The code generates .pdb files for use with PyMol.
- Storage of data on both cells and corners.
- Methods to iterate over all corners of the octrees.
- Methods to iterate over all nodes of the octrees.
- Unit tests to verify behavior. Needs the CppUnit library.
- No memory leak, or strange memory access. Regularly checked against Valgrind.
- Complete documentation, written using doxygen.
- Well-documented, readable code.
- Lots of comments.
- Automated building using autoconf and automake. Should run under nearly any platform.
- Extremely well tested code. Code coverage checked with lcov automatically.
- Freely distributable. Code is available under the GNU Public License, version 2.
Download the latest version of the code: octree-0.80.tar.gz. octree-0.80.zip. This code was last updated on Mon Jul 2 11:57:05 PDT 2007. We welcome comments, bug reports, and bug fixes. This code is under development right now, so feel free to mail me feature requests. Please send comments to Vikram at vik@cs.ucsb.edu.
Videos of a cut away 3D octree mesh (of a sphere) are available here. We also have a mesh of a grid obtained by generating the vaidya preconditioner on the symmetric matrix here.
psort
PSORT [download] is a parallel sorting code for distributed and shared memory architectures. It uses MPI for communication, and is designed to minimize the volume of communication. It has been tested on terabyte datasets with up to 256 processors. It does not use sampling to locate splitters, and hence no prior knowledge of the probability distribution is required. It provides several options for splitting, sequential sorting and merging. A sample sort is also included. The code is available freely for personal non-commercial and research use.
cSSCA
SSCA#2 is a part of the Synthetic Scalable Concise Applications benchmkark suite. The SSCAs are a new set of benchmarks designed by the DARPA/DOE High Productivity Computer Systems program to complement existing benchmarks. It is a graph analysis benchmark comprising of a data generator and 4 kernels which operate on the graph. The benchmark is designed to have very little locality so that the memory subsystems are tested. In case of a parallel implementation, the non-locality causes a lot of remote memory lookups.
cSSCA#2 is a concise implementation of SSCA#2 in MATLAB and Star-P - a parallel implementation of the matlab programming language.
This page was last updated on Mon Jul 2 11:58:10 PDT 2007