README.txt (siman_mp v1.0, 9/9/2007) This code builds on the GNU Scientific Library implementation of the simulated annealling optimization algorithm described at: http://www.gnu.org/software/gsl/manual/html_node/Simulated-Annealing.html The main contribution is to allow the use of a cluster to speed up the annealing process. Using this C code as a starting point, you should be able to plug in your own objective function and go. As a first step, I recommend working with the serial version: siman_test. This is a slight extension to the sample code that comes with GSL. The objective function can now take a vector argument. When you're ready to brave the world of MPI, the parallel optimizer is in siman_mp.c. The anneallor is configured in exactly the same way as the serial version. The parallelization method used is very simple: It does a large number of independent optimizations using simulated annealing with the same starting point but different random seeds. As long as the initial temperature and step size are high, this is very similar to starting each optimization at a random point in the space. There's a bit more documentation in each of the two source files. NOTE: You may want to try msiman_test and msiman_mp as these two programs use my slightly modified version of the GSL annealor that allows you to specify a dampening factor for the step_size. It doesn't help on the serial example, but does seem to converge a little faster in the parallel example. So you should definitely try different values of the damping factor (including 1.0) for your objective function. Feel free to email me any questions or comments you might have about this code at dmckee@ucla.edu!