Running Validations

Having cloned the repository, start by building, compiling and running a test in a build directory of your choice, as you would for a performance test.

Example: Condensation0d Validation in Serial

You can build and compile this example from the root of your performance_testing_cleo directory. See running the performance tests for more instructions.

_Note:_ Before compiling the example you may need to activate data output for the test case by changing the Observer returned by the `inline Observer auto create_observer` function in your executables main_[xxx].cpp file. E.g. uncomment the lines leading to return obssd >> obs1 >> obs0; and comment out the line return NullObserver{};

#. Then you could perform one normal run with e.g. ./builds/serial/condensation0d/cond0d ./builds/serial/tmp/cond0d/config_1_128_1_0.yaml

(it is recomended that you create the output directory before running the model). Or you can run the example with Kokkos performance tool(s), e.g.

$ ./scripts/bash/run_profiling.sh \
  /work/bm1183/m300950/bin/envs/perftests/bin/python \
  /home/m/m300950/performance_testing_cleo \
  /work/bm1183/m300950/performance_testing_cleo/builds \
  cond0d \
  kerneltimer.spacetimestack.memoryevents.memoryusage \
  TRUE \
  serial openmp cuda threads
  1. Finally plot the results with the validation script, e.g.

    $ ./scripts/bash/validation.sh \
      /work/bm1183/m300950/bin/envs/perftests/bin/python \
      /home/m/m300950/CLEO \
      /home/m/m300950/performance_testing_cleo \
      /work/bm1183/m300950/performance_testing_cleo/builds \
      cond0d \
      1 128 1 0 \
      sol.zarr setup.txt \
      serial openmp cuda threads