This page is for downloading software packages that I distribute. Sandia's molecular dynamics code LAMMPS now has its own download page.
Select the package you want via the circular check-button, click the "Download Now" button, and your browser should download a gzipped tar file. Unpack it with the following commands, and look for a README to get you started.
gunzip file.tar.gz tar xvf file.tar
Follow the links for more information on the individual packages.
Some of this software is distributed freely; some is copyrighted open-source software distributed under the terms of the GNU Public license.
There have been ~6700 downloads from this page and another ~20,500 from the LAMMPS download page since Sept 2004.
ParaDyn is a parallel F77 code that implements all the features of the popular serial EAM code for metals and metal alloys known as DYNAMO. DYNAMO was written by two of the EAM originators, Stephen Foiles and Murray Daw. ParaDyn's parallelism is based on the atom- and force-decomposition algorithms discussed on this page and in the 1993 MRS paper listed below.
Nearly all of ParaDyn's functionality is now in LAMMPS, which runs 2-4x faster than ParaDyn both on a single processor and in parallel. This is due to force computations and neighbor list building being implemented in a different way. So only download ParaDyn if you're sure it's what you want.
ParaDyn overviewParallel Molecular Dynamics With the Embedded Atom Method, S. J. Plimpton and B. A. Hendrickson, in Materials Theory and Modelling, edited by J. Broughton, P. Bristowe, and J. Newsam, MRS Proceedings 291, Pittsburgh, PA, 1993, p 37. (abstract) (postscript) (ps.gz)
These are 3 parallel Lennard-Jones codes discussed in the 1995 J Comp Phys paper listed below. Each code performs the same computations, but implements either a atom-, force-, or spatial-decomposition algorithm. The algorithms are discussed briefly on this page and fully in the paper. These codes were written before MPI was around, so the codes have their own message-passing libraries with a wrapper on a vanilla MPI send and receive that was added later.
Documentation for LJ codesFast Parallel Algorithms for Short-Range Molecular Dynamics, S. J. Plimpton, J Comp Phys, 117, 1-19 (1995). (abstract) (postscript) (ps.gz)
Pizza.py is a loosely integrated collection of tools, written in Python, many of which provide pre- and post-processing capability for the LAMMPS molecular dynamics package. There are tools to create input files, convert between file formats, process log and dump files, create plots, and visualize and animate simulation snapshots. Software packages that are wrapped by Pizza.py, so they can be invoked from Python, include GnuPlot, MatLab, Raster3d, and RasMol.
Pizza.py home pageI wrote an optimized version of this HPCC benchmark using a synchronous hypercube-style all2all algorithm. It enables scalable GUPS performance on large numbers of processors. The tar file includes files for a simple stand-alone code for quick testing, as well as modules that can be incorporated into the HPCC harness for running an official benchmark test.
The algorithm is described briefly on this page and fully in this paper:
A Simple Synchronous Distributed-Memory Algorithm for the HPCC RandomAccess Benchmark, S. J. Plimpton, R. Brightwell, C. Vaughan, K. Underwood, M. Davis, Proc of Cluster 2006 - IEEE International Conf on Cluster Computing, Sept 2006. (abstract) (pdf)
Download menu (top of this page)I worked with a UNM biology student, Gavin Conant, to parallelize the MIT WhiteHead Institue linkage analysis code GeneHunter. This page gives all the details as does the paper below. Gavin did the bulk of this work and supports the modified code.
Download menu (top of this page)Parallel Genehunter: Implementation of a Linkage Analysis Package for Distributed-Memory Architectures, G. C. Conant, S. J. Plimpton, W. Old, A. Wagner, P. R. Fain, T. R. Pacheco, and G. Heffelfinger, Journal of Parallel and Distributed Computing, 63, 674-682 (2003). (abstract) (pdf) (pdf.gz)
I've written some 2d and 3d parallel complex-to-complex FFTs that we use in various applications. More details are discussed on this page.
The parallel FFTs in the tar file you download are implemented in C, and can be called from C, C++, or Fortran (there are Fortran example driver routines in the file). The parallel FFTs require you to link with a 1d on-processor FFT library. This can be a native library or a portable one like FFTW.
Documentation for parallel FFTsThis is a small C++ program (one file) that converts text files into HTML files. The text files can contain simple a few simple formatting and markup commands that get converted into appropriate HTML syntax.
I wrote this tool because I am more productive using a text editor (emacs) to write vanilla text than trying to write HTML or use a browser's WYSIWYG composer tool with an editor I don't like. Anna Reese wrote the table capabilities in txt2html.
All the WWW pages on my site, the LAMMPS site, and the LAMMPS documentation were converted to HTML via txt2html. As you view any of those pages, you can see what the underlying text file looks like, by changing the .html suffix of the URL you are browsing to .txt (not the same as viewing the source of the HTML file). An example is given below.
Curiously, looking at the .txt version of the page you are currently on (download.html), or the doc and example files for the txt2html itself, are not great examples of the simple syntax of .txt files that the tool recognizes. This is because they have to contain a lot of native HTML to fool a browser into displaying HTML itself or displaying the download form up above.
Documentation for txt2html