next up previous
Next: Terms of Use Up: CLUSTEREASY: The Parallel Computing Previous: Fourier Transforms


Accuracy Tests of CLUSTEREASY

CLUSTEREASY solves the same equations as LATTICEEASY and produces the same outputs in the same format. Nonetheless, if you run the same model and parameters with the two programs you will find that the results differ. There are several reasons why this occurs. First, the initial amplitudes and phases of the modes in LATTICEEASY are set using random numbers. In CLUSTEREASY each processor generates and uses a separate random number sequence for the initial conditions, so the initial amplitudes and phases of the modes will be different for different numbers of processors. Second, LATTICEEASY uses FFTEASY for Fourier Transforms while CLUSTEREASY uses FFTW. In principle the two routines should produce identical output, but in practice they have different (but comparable) roundoff errors. Third, the calculations of gradient energy and potential energy both involve averaging quantities over the lattice. When this is done in parallel the order of some operations in this averaging is done differently, which again leads to slightly different roundoff errors. Without expansion this fact only affects the energy output function, while in runs with expansion the field evolution is also slightly affected.

When all of these effects are put together, the final numbers that appear in the output files at the end of a run can look completely different in serial and parallel runs, or in two parallel runs with different numbers of processors. Nonetheless, all of these sets of data should be physically valid. Recall that the field evolution being simulated by LATTICEEASY is a representative sample from an ensemble of possible physical realizations of the fields, as encoded in the random initial conditions. In all of the tests we have run all physical quantities (energies, occupation numbers, etc.) come out the same in all runs, whereas details such as the locations of peaks in the field distribution generally do not come out the same. We have done extensive tests to verify that the differences between serial and parallel runs (or parallel runs with different numbers of processors) are equivalent to the differences that come from doing two identical runs with different random number seeds.

Finally, however, we should note the one actual difference in the output of LATTICEEASY and CLUSTEREASY. The option sliceaverage (described in the LATTICEEASY documentation above) is sometimes disabled in CLUSTEREASY. Specifically, if $slicedims<NDIMS$ then the slices are all computed on a single processor and sliceaverage is enabled as usual, but if $slicedims=NDIMS$ then the slices come from multiple processors and averaging won't be done.


next up previous
Next: Terms of Use Up: CLUSTEREASY: The Parallel Computing Previous: Fourier Transforms

Go to The LATTICEEASY Home Page
Go to Gary Felder's Home Page
Send email to Gary Felder at gfelder@email.smith.edu
Send email to Igor Tkachev at Igor.Tkachev@cern.ch

This documentation was generated on 2008-01-21