I created and released a report that is a collection of our previous small-scale validation cases for MFIX-Exa. (Thanks to Kuipers’ group, from which all of the data in this version come from.)
In addition to collecting and refreshing the inputs, it was built into a regression test harness which produces the PDF (if successful). I intend to run this for every release. This month’s 25.10 being the first version, which I just added to the release notes:
If you have any suggestions for improvement or additional cases that should be considered, please suggest them on here. Keep in mind I would like to keep these tests “small scale” in the sense that they can be run “overnight” and can be post-processed easily for automation.
thanks
Thanks for sharing Will! A couple of questions/suggestions:
- What is the criteria to decide if the regression test is successful? Do you compare numerical results between the upcoming release and the previous one, or do you have a global measure of the error with experimental data?
- Are all of these tests run in serial on a CPU? If so, would it make sense to compare with parallel runs and GPU runs? It may be good to include the time to solution for each case.
- Are you planning to distribute the input files in the tarball? I see a bunch of benchmarks in
mfix-exa/benchmarks but they look different (and there are more than what is listed in the readme file).
Thanks for the replies Will,
- I guess I just got tripped on “it was built into a regression test harness which produces the PDF (if successful)”. The “if successful” must apply to generating the PDF, not if the test harness passes. I think manual observation, once per release is sufficient.
- OK, I would be interested to see (at some point) how the GPU run compares with MPI CPU, both in terms of accuracy and speed.
- That’s fine, it is not urgent. Thanks for documenting these validation cases!
Correct on 1. The biggest thing I’m missing in this v1 is error checking. There is no error checking. If everything runs correctly, then it should post process fine and spit out this PDF. If something screws up, I have no way of knowing it other than seeing if there are any figures in the generated doc. And, actually, as I found out this week, I think most if not all cases will generate the figures anyway they will just be missing simulation data. This happened on the first run through for the goldschmidt case because 2 of the 10 cases failed to run at all due to an MPI failure on Joule. I almost didn’t even notice it because the data in that figure is a little busy anyway.