next up previous
Next: Using Pelegant efficiently Up: Running a simulation with Previous: Running Pelegant with MPI

Validating the result

The simulations above were finished in around 1 minute for Pelegant and 10 minutes for elegant on the AMD Athlon nodes of the weed cluster in APS. To convince ourselves the results of the two versions of elegant are same, one can compare the output files with the sddsdiff command, which should be available in the SDDS toolkit. For example, to examine the particle coordinates at interior points, we can type:

sddsdiff manyParticles_p.w2 manyParticles_s.w2

which should return that two results are identical.

Validating a parallel program against a uniprocessor program with the requirement of bitwise identical result is notoriously difficult [2], as we may meet some new problems raised from parallel computing, such as different ordering of summations, non-scalable random number generator. Although the simulation results with the discrepancies should conform to IEEE 754 within some tolerance, more consistent results can be expected with more accurate numerical algorithm, such as Kahan's summation formula [3], which has been employed in both serial and parallel versions of elegant.

We ran a regression test of 92 cases and validated the results of Pelegant with elegant. As the random number sequences generated by one CPU and multiple CPUs usually are not same, some test examples can't be validated by comparing the results of elegant and Pelegant. Those examples have been validated either by mathematical formulae or their physical meaning.


next up previous
Next: Using Pelegant efficiently Up: Running a simulation with Previous: Running Pelegant with MPI
Robert Soliday 2011-02-01