Air Speed Velocity (ASV) benchmarking for the UXarray Python Package
UXarray's benchmarks are stored in the package repository (not in this one), which should first be cloned.
git clone https://github.com/UXARRAY/uxarray.git
The benchmarks and configuration files are located in the benchmarks
directory.
cd benchmarks
asv
needs to be installed locally in order to run any benchmarks.
pip install asv
You should now be able to run asv
. The command below will run each benchmark once.
>> asv run --quick
Below is an example output generated by running
asv run --bench quad_hexagon --quick
· Creating environments
· Discovering benchmarks
· Running 4 total benchmarks (1 commits * 1 environments * 4 benchmarks)
[ 0.00%] · For uxarray commit 5410c4f0 <main>:
[ 0.00%] ·· Benchmarking virtualenv-py3.11-netcdf4-pip+pyfma-setuptools_scm-xarray
[12.50%] ··· quad_hexagon.QuadHexagon.peakmem_open_dataset 278M
[25.00%] ··· quad_hexagon.QuadHexagon.peakmem_open_grid 275M
[37.50%] ··· quad_hexagon.QuadHexagon.time_open_dataset 29.8±0ms
[50.00%] ··· quad_hexagon.QuadHexagon.time_open_grid 20.0±0ms
asv profile benchmark_file.BenchmarkClass.benchmark_method
For parameterized benchmarks, you can profile a single parameter using the following:
todo
To visualuze the results, ...
asv profile benchmark_file.BenchmarkClass.benchmark_method --gui=snakeviz
By default, asv
will pull the changes from the most recent committ from whichever branch is indicated by the "branches"
variable in the asv.conf.json
file.
First, uxarray
should be installed locally in editable mode.
pip install -e .
To run benchmarks using the local changes, we can pass through the -python=same
parameter, which will use the current enviroment and not create a new one.
asv run --python=same
Coming soon!