next up previous
Next: Obtaining, Compiling, and Running Up: LATTICEEASY Previous: The Staggered Leapfrog Method

CLUSTEREASY: The Parallel Computing Version of LATTICEEASY

CLUSTEREASY is a version of LATTICCEEASY designed to run in parallel on multiple computers. It is written using the the Message Passing Interface (MPI) libraries, which is the standard for parallel computing on distributed memory clusters. To use CLUSTEREASY you will need access to a computer cluster with MPI installed. (You can actually install and run MPI on a single processor machine for testing and debugging purposes, but to get any actual advantage in speed or memory you need to run it on multiple computers. )

If you are using a shared memory system (more than one processor with access to the same physical memory) you do not need to use CLUSTEREASY. Instead you can easily parallelize LATTICEEASY for such systems using the freely available OpenMP libraries. The only changes that you need to make to LATTICEEASY to use OpenMP is to include a new header file and add one line above each of the main evolution loops in evolution.cpp. See the documentation for OpenMP for more details.

The physical equations and computational algorithms used by CLUSTEREASY are the same as they are for LATTICEEASY, so we will assume in this section that you are already familiar with the use of LATTICEEASY. If you have any general questions about using LATTICEEASY you should start with the LATTICEEASY documentation, and then look here for issues specific to the parallel version.

The output of CLUSTEREASY is in the exact same format as it is for LATTICEEASY, so it can be read and plotted with the same plotting routines (e.g. the Mathematica notebooks provided with LATTICEEASY.) You can even use the grid images from a serial run to continue the run in parallel and vice-versa.

The rest of this chapter describes the aspects of CLUSTEREASY that are different from LATTICEEASY. Obtaining, Compiling, and Running CLUSTEREASY describes how to obtain, compile, and run CLUSTEREASY. Implementation Notes describes the algorithm used for parallelization in CLUSTEREASY. Modifying Model Files for Use with CLUSTEREASY explains how to modify LATTICEEASY model files to work with CLUSTERREASY. Customizing CLUSTEREASY describes in more detail the new variables and functions you will need to write (or modify) customized output and/or initialization functions for CLUSTEREASY models. Finally, Accuracy Tests of CLUSTEREASY describes some of the tests that we have performed on CLUSTEREASY and explains why the output of CLUSTEREASY may in some cases look different from the output of LATTICEEASY (and why this shouldn't worry you).

next up previous
Next: Obtaining, Compiling, and Running Up: LATTICEEASY Previous: The Staggered Leapfrog Method

Go to The LATTICEEASY Home Page
Go to Gary Felder's Home Page
Send email to Gary Felder at
Send email to Igor Tkachev at

This documentation was generated on 2008-01-21