First of all, thank you for raising the issue, @Leena and confirming @sdahl.
I went through and ran the u-dx356 suite four times.
Twice with the SPACK-executable (identical inputs) (top row: run 1, run 2, then the difference), and twice with the suite-built executable (identical inputs) (bottom row: run 1, run 2, then the difference).
The SPACK-built executable runs (top row) had differing results between runs, confirming the reproducibility issue you raised.
The suite-built executable runs though produced identical results (bottom row). I do my testing on the suite-built executable and have verified this many times.
** Please note, the statistics shown are from the difference plots.
Here is a screenshot of a zoomed in portion of the SPACK-built run difference plot.
It was a known issue that outputs from the SPACK-built executable run did not match the outputs from the suite-built run (and this was being looked into by members of the ACCESS-NRI team). However, it was not known that the SPACK-built runs were producing inconsistent results between runs.
For your purposes, you can produce reproducible results by using a suite-built executable.
It takes about 10-minutes to build an executable, so you don’t want to have to do that every time. In practice we build the executable once, then use the same executable for subsequent runs.
To build the executable the first time go to:
Suite conf → Nesting Suite → General run option → BUILD_MODE.
Set
BUILD_MODE = Build a new executable.
The next time you run, set
BUILD_MODE = Use an executable made by a previous run of this suite.
You can thenceforth use that setting for subsequent runs as long as you don’t delete the executable.
In the meantime, I will feedback the issue to the team that built the SPACK executable.
Best regards,
@cbengel