parcels
parcels copied to clipboard
Benchmarking Suite
Establishing and documenting a standard benchmark suite for Parcels would bring an active focus to performance within the Parcels project.
This benchmarking suite could include whole simulation tests, as well as tests that target specific parts of the codebase (e.g., particle file writing, as would be important in #1661). Note that tests relating to MPI should be realistic whole simulation tests as the loading of fieldsets and locations of particles have a significant impact on performance.
Ideally:
Have a suite of tests that can run on CI (when requested via a change in PR label) testing various core parts of the codebase, saving and uploading a waterfall report for the execution time and memory use for each function (such as those generated by sciagraph as well as IO.
Known tools:
- The Python Profilers
-
asv
on Conda (used in numpy and scipy) (this is used by the xarray team) -
pytest-benchmark
on Conda - Sciagraph (commercial software)
The benchmarks should be run on a machine with consistent resources (large simulations can be run on Lorenz at IMAU which has significant resources and access to hydrodynamic forcing for realistic simulations).
Related: