Folding@home Open Source FAQ

Table of Contents

Introduction

FAH is built from several open source tools, namely Gromacs (http://www.gromacs.org), TINKER (http://dasher.wustl.edu), and AMBER (http://amber.scripps.edu) for MD packages and MPICH for MPI (http://www-unix.mcs.anl.gov/mpi/mpich/). If you're interested in checking out these codes, you should feel free to download them and check them out. One can compile a SMP version of Gromacs by using the latest Gromacs with MPICH. This would reproduce the SMP clients we have on FAH.

What about the client?

We have not outsourced the client for several reasons, relating to client reliability and other issues. However, we've come up with a compromise -- we have been developing a plug in architecture to allow people to write open source code that we can plug into our client. Our first plug in setup is for the Graphics client (see the Graphics client OpenGL kit below).

Graphics client OpenGL kit

Our client OpenGL kit is now available. The purpose of this is for OpenGL programmers to be able to us make graphic modes for the Folding@home client, and viewers. If you are an OpenGL programmer, download the .zip file, and read the README.TXT for instructions. Visit the Graphics Playground forum to discuss, ask questions, and show off your work.

http://www.stanford.edu/~beberg/FAH-OpenGL-Kit-1.zip

Isn't Gromacs a GPL'd code? Where's the source for your mods?

Folding@home has been granted a non-commercial, non-GPL license for Gromacs, so we are not required to release our source. We have analogous license for the other core codes. The copyright owners of any GPL code (in this case the owners are the Gromacs development team) can distribute the same piece of software with difference licenses in parallel. See the GPL FAQ for more info on this. However, we will release our patches back to the Gromacs tree (and have discussed this extensively with the Gromacs team).

We are also working to release our GPU code and other aspects of FAH mods in a new open library called OpenMM. You can learn more about that here: https://simtk.org/home/openmm

Technical info: compiling Gromacs

Here's some instructions. Note that if you are not currently familiar with MPI or Gromacs or molecular dynamics, we won't be able to provide support or information about how any of this works -- especially since if we did, we may have to give you a PhD in computational chemistry after all is said and done! All of these aspects are fairly complex, so this isn't for the faint of heart, but here goes

  • go to http://www.gromacs.org, click on download on the top, and then the source code button on the side
  • click on the most recent download available, although ideally you'd get it straight from the CVS (http://wiki.gromacs.org/index.php/CVS_HowTo) -- that's the version we use
  • we would strongly suggest you look at the Gromacs code before doing any more of this. If you feel you can understand the code in great detail, then try to build it. If it seems like a complex mess to you, it's likely not worth the effort to go on further. Just building gromacs is pretty complex, but that's nothing compared to actually developing the code. As a test to see if you understand how the code works, see if you can modify it in order to add a new command to the MDP file.
  • Follow the directions in the INSTALL file. The short version is
./configure
make
make install
  • one can run without FFTW to get a basic idea, but FFTW will be useful for some parts.
  • To build this as an SMP client would, you will need a version of MPI. We use MPICH2 (http://www-unix.mcs.anl.gov/mpi/mpich2/). You will need to compile this or use existing libraries. In order to build Gromacs with MPICH. For instance, if you want to compile only the mdrun executable with parallel MPI support:
make clean
./configure --enable-mpi
make mdrun
make install-mdrun
  • you should now have a working gromacs installation. The key binary to use is mdrun. If you're using MPI, you want to use "mpiexec mdrun". You can test this code with benchmark calculations from ftp://ftp.gromacs.org/pub/benchmarks/gmxbench-3.0.tar.gz . These example calculations will give you something to run. Note that you will not be able to run FAH files directly as we have modified aspects of the Gromacs file formats in order to suit our specific needs. However, the villin example in the benchmarks file is fairly close to much of what we would run.
  • check out the Gromacs test set as well (http://wiki.gromacs.org/index.php/Test-set)

There are many subtle aspects missing in the general outline above, so one really must read the README and INSTALL files in Gromacs as well as the docs for MPICH -- the description above is meant to be more of a big picture outline than a complete set of instructions.

For More Information, Please See:

Last Updated on January 24, 2008, at 06:09 AM