The correctness of the computation, within this benchmark framework, cannot
and need not be proven. The original program being a widely used Energy
Sciences code, its correctness although not mathematically proven, is fully
established (thru comparison with real physical experiments) and completely
* approved* by all concerned control authorities. However, the code has
been certified * only* for a limited set of hardwares: the 60-bits CDC
machines, the
IBM S/370 series and the Cray 1S, eg. the accuracy of the computation, a
critical factor, is * only* established for these machines. A contrario and subsequently, this accuracy has been instrumental in discriminating,
temporarily or definitely, the use of some compilers, or some compiler's
versions or optimization levels ...

The transformation of the original code into the actual benchmark is proceeded when it was established that only a single value, yet very sensitive and significant, needs to be kept that is enough to certify about the exactness and the accuracy of the computation: the number of iterations (aka. time steps) corresponding to a given amount of simulation time.

simulation time | 35 seconds | 50 seconds | 100 seconds | 999 seconds | 10000 seconds |

data set | DAT35 | DAT50 | DAT100 | DAT999 | DAT10K |

# of iterations | 954 | 5485 | 20391 |

It was then decided that the number of iterations should not deviate from the accepted values by more than 2%. Since then it is observed that the number of iterations distribution peaked at these values well within 2%. This becomes the correctness criteria of the benchmark.