Hi--
I still think the test runner is your best bet. It doesn't need Enzo to be the thing that changes. If your changing hardware or kernels in a way that you think will change the answers, this will pick up those changes. It takes care of running the tests, extracting the results using yt, and comparing to your 'gold standard' that you made before you started changing things. It saves you the hassle of learning yt, and deciding what properties of Enzo to measure, what appropriate tolerances are. These are non-trivial decisions to make, Enzo is a pretty complicated piece of code, and different components will tax hardware in different ways; having more than one test will be better for your verification. We've already taken care of those decisions for you. From the enzo-dev/run directory, do the following:
Set up your standard, like this:
test_runner.py --run-suffix=FiducialTest --suite=quick --local --local-dir=/scratch/wherever --answer-name=FiducialGoldStandard --answer-store
then after you change your hardware and kernel, run
test_runner.py --run-suffix=Test1 --suite=quick --local --local-dir=/scratch/wherever --answer-name=FiducialGoldStandard
The major difference is that for the first, you give it '--answer-store.' That stores the answers to the tests.
Then the output is in /scratch/wherever/<hash>_Test1, where <hash> is the mercurial hash. Every time you change your system, re-run with Test1 replaced by something that indicates your change.
That being said, if you're really interested in learning yt, go here:
You also may be interested in examining the results of the performance with the performance timers, which are described here:
d.