SciTools / iris

A powerful, format-agnostic, and community-driven Python package for analysing and visualising Earth science data
https://scitools-iris.readthedocs.io/en/stable/
BSD 3-Clause "New" or "Revised" License
626 stars 283 forks source link

Performance Shift(s): `b8f554f7` #6118

Open github-actions[bot] opened 1 month ago

github-actions[bot] commented 1 month ago

Benchmark comparison has identified performance shifts at:

Please review the report below and take corrective/congratulatory action as appropriate :slightly_smiling_face:

:stopwatch: Performance Benchmark Report: b8f554f7

Performance shifts ``` | Change | Before [c88b4076] | After [b8f554f7]
| Ratio | Benchmark (Parameter) | |----------|------------------------------|---------------------------|---------|-------------------------------------------------------| | + | 3.74±0.1ms | 5.52±0.9ms | 1.48 | load.ugrid.DataRealisation.time_realise_data(200000) | | + | 165.2 | 214.6 | 1.3 | save.NetcdfSave.track_addedmem_netcdf_save(600, True) | ```
Full benchmark results ``` Benchmarks that have stayed the same: | Change | Before [c88b4076] | After [b8f554f7]
| Ratio | Benchmark (Parameter) | |----------|------------------------------|---------------------------|---------|------------------------------------------------------------------------------------------------| | | 53.6±0.8ms | 53.3±0.7ms | 0.99 | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(False) | | | 54.5±0.6ms | 54.0±0.4ms | 0.99 | aggregate_collapse.Aggregation.time_aggregated_by_COUNT(True) | | | 189±2ms | 190±1ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(False) | | | 190±2ms | 190±2ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_FAST_PERCENTILE(True) | | | 36.5±0.3ms | 36.5±0.3ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(False) | | | 36.9±0.5ms | 37.0±0.1ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_GMEAN(True) | | | 36.2±0.4ms | 36.3±0.4ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(False) | | | 37.4±0.4ms | 37.2±0.4ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_HMEAN(True) | | | 46.1±0.4ms | 46.4±0.7ms | 1.01 | aggregate_collapse.Aggregation.time_aggregated_by_MAX(False) | | | 46.9±0.5ms | 46.8±0.7ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_MAX(True) | | | 120±0.9ms | 119±0.7ms | 0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(False) | | | 120±1ms | 120±1ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_MAX_RUN(True) | | | 50.9±0.8ms | 50.6±0.7ms | 0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(False) | | | 51.4±0.5ms | 51.3±0.6ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_MEAN(True) | | | 36.5±0.3ms | 36.2±0.4ms | 0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(False) | | | 36.8±0.3ms | 36.8±0.4ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_MEDIAN(True) | | | 46.6±0.7ms | 46.0±0.4ms | 0.99 | aggregate_collapse.Aggregation.time_aggregated_by_MIN(False) | | | 46.9±0.3ms | 46.8±0.4ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_MIN(True) | | | 1.30±0.01s | 1.31±0.01s | 1.01 | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(False) | | | 1.31±0.01s | 1.30±0.01s | 1 | aggregate_collapse.Aggregation.time_aggregated_by_PEAK(True) | | | 668±10ms | 672±10ms | 1.01 | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(False) | | | 666±20ms | 671±7ms | 1.01 | aggregate_collapse.Aggregation.time_aggregated_by_PERCENTILE(True) | | | 34.4±0.2ms | 35.0±0.5ms | 1.02 | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(False) | | | 35.0±0.4ms | 35.4±0.6ms | 1.01 | aggregate_collapse.Aggregation.time_aggregated_by_PROPORTION(True) | | | 61.2±0.4ms | 61.6±1ms | 1.01 | aggregate_collapse.Aggregation.time_aggregated_by_RMS(False) | | | 62.4±0.6ms | 63.0±0.9ms | 1.01 | aggregate_collapse.Aggregation.time_aggregated_by_RMS(True) | | | 65.4±1ms | 65.4±0.8ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(False) | | | 65.7±0.8ms | 65.9±0.9ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_STD_DEV(True) | | | 60.6±0.9ms | 60.4±0.6ms | 1 | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(False) | | | 61.2±0.6ms | 61.5±0.4ms | 1.01 | aggregate_collapse.Aggregation.time_aggregated_by_VARIANCE(True) | | | 19.7±0.3ms | 19.5±0.2ms | 0.99 | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(False) | | | 23.1±0.5ms | 23.1±0.4ms | 1 | aggregate_collapse.Aggregation.time_collapsed_by_COUNT(True) | | | 129±1ms | 129±1ms | 1 | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(False) | | | 143±1ms | 143±0.6ms | 1 | aggregate_collapse.Aggregation.time_collapsed_by_FAST_PERCENTILE(True) | | | 17.9±0.3ms | 17.9±0.3ms | 1 | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(False) | | | 21.5±0.2ms | 21.7±0.3ms | 1.01 | aggregate_collapse.Aggregation.time_collapsed_by_GMEAN(True) | | | 17.9±0.6ms | 17.9±0.3ms | 1.01 | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(False) | | | 21.6±0.9ms | 21.7±0.2ms | 1 | aggregate_collapse.Aggregation.time_collapsed_by_HMEAN(True) | | | 18.6±0.7ms | 18.3±0.2ms | 0.98 | aggregate_collapse.Aggregation.time_collapsed_by_MAX(False) | | | 22.0±0.7ms | 22.0±0.4ms | 1 | aggregate_collapse.Aggregation.time_collapsed_by_MAX(True) | | | 34.6±0.5ms | 34.3±0.3ms | 0.99 | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(False) | | | 38.0±0.6ms | 37.4±1ms | 0.99 | aggregate_collapse.Aggregation.time_collapsed_by_MAX_RUN(True) | | | 18.9±0.7ms | 19.0±0.4ms | 1 | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(False) | | | 22.3±0.3ms | 22.5±0.3ms | 1.01 | aggregate_collapse.Aggregation.time_collapsed_by_MEAN(True) | | | 18.4±0.3ms | 18.5±0.2ms | 1.01 | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(False) | | | 22.1±0.3ms | 22.0±0.2ms | 0.99 | aggregate_collapse.Aggregation.time_collapsed_by_MEDIAN(True) | | | 18.3±0.2ms | 18.3±0.2ms | 1 | aggregate_collapse.Aggregation.time_collapsed_by_MIN(False) | | | 22.1±0.3ms | 21.9±0.3ms | 0.99 | aggregate_collapse.Aggregation.time_collapsed_by_MIN(True) | | | 547±2ms | 552±4ms | 1.01 | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(False) | | | 552±3ms | 557±5ms | 1.01 | aggregate_collapse.Aggregation.time_collapsed_by_PEAK(True) | | | 148±0.8ms | 149±0.8ms | 1 | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(False) | | | 166±0.9ms | 166±1ms | 1 | aggregate_collapse.Aggregation.time_collapsed_by_PERCENTILE(True) | | | 17.6±0.5ms | 17.6±0.2ms | 1 | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(False) | | | 21.1±0.09ms | 21.3±0.5ms | 1.01 | aggregate_collapse.Aggregation.time_collapsed_by_PROPORTION(True) | | | 20.7±0.4ms | 21.2±0.4ms | 1.02 | aggregate_collapse.Aggregation.time_collapsed_by_RMS(False) | | | 24.6±0.3ms | 24.6±0.5ms | 1 | aggregate_collapse.Aggregation.time_collapsed_by_RMS(True) | | | 21.0±0.6ms | 20.9±0.3ms | 0.99 | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(False) | | | 24.4±0.2ms | 24.5±0.3ms | 1 | aggregate_collapse.Aggregation.time_collapsed_by_STD_DEV(True) | | | 20.3±0.1ms | 20.4±0.2ms | 1.01 | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(False) | | | 24.0±0.7ms | 24.1±0.2ms | 1.01 | aggregate_collapse.Aggregation.time_collapsed_by_VARIANCE(True) | | | 82.7±0.7ms | 81.9±0.7ms | 0.99 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(False) | | | 83.2±0.8ms | 82.9±0.5ms | 1 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_MEAN(True) | | | 94.3±0.7ms | 94.5±0.6ms | 1 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(False) | | | 95.0±0.8ms | 94.9±0.5ms | 1 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_RMS(True) | | | 58.1±0.6ms | 58.2±0.5ms | 1 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(False) | | | 58.8±0.9ms | 58.2±0.5ms | 0.99 | aggregate_collapse.WeightedAggregation.time_w_aggregated_by_SUM(True) | | | 29.0±0.4ms | 29.1±0.5ms | 1 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(False) | | | 32.7±0.5ms | 32.5±0.4ms | 0.99 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_MEAN(True) | | | 31.4±0.6ms | 30.8±0.6ms | 0.98 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(False) | | | 34.8±0.6ms | 34.2±0.3ms | 0.98 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_RMS(True) | | | 26.0±0.4ms | 25.5±0.4ms | 0.98 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(False) | | | 29.3±0.3ms | 29.1±0.1ms | 0.99 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_SUM(True) | | | 326±3ms | 320±3ms | 0.98 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(False) | | | 340±3ms | 341±3ms | 1 | aggregate_collapse.WeightedAggregation.time_w_collapsed_by_WPERCENTILE(True) | | | 1.12±0.01ms | 1.12±0.01ms | 1 | cube.CubeCreation.time_create(False, 'construct') | | | 397±4μs | 403±6μs | 1.01 | cube.CubeCreation.time_create(False, 'instantiate') | | | 946±20μs | 940±10μs | 0.99 | cube.CubeCreation.time_create(True, 'construct') | | | 572±8μs | 583±6μs | 1.02 | cube.CubeCreation.time_create(True, 'instantiate') | | | 220±2ms | 219±1ms | 0.99 | cube.CubeEquality.time_equality(False, False, 'all_equal') | | | 111±0.7ms | 112±1ms | 1.01 | cube.CubeEquality.time_equality(False, False, 'coord_inequality') | | | 231±2ms | 230±2ms | 1 | cube.CubeEquality.time_equality(False, False, 'data_inequality') | | | 16.5±0.2μs | 16.2±0.2μs | 0.99 | cube.CubeEquality.time_equality(False, False, 'metadata_inequality') | | | 307±2ms | 307±2ms | 1 | cube.CubeEquality.time_equality(False, True, 'all_equal') | | | 199±1ms | 199±2ms | 1 | cube.CubeEquality.time_equality(False, True, 'coord_inequality') | | | 315±2ms | 310±8ms | 0.98 | cube.CubeEquality.time_equality(False, True, 'data_inequality') | | | 16.7±0.1μs | 16.5±0.4μs | 0.99 | cube.CubeEquality.time_equality(False, True, 'metadata_inequality') | | | 221±3ms | 221±3ms | 1 | cube.CubeEquality.time_equality(True, False, 'all_equal') | | | 111±1ms | 111±2ms | 1 | cube.CubeEquality.time_equality(True, False, 'coord_inequality') | | | 230±4ms | 231±2ms | 1 | cube.CubeEquality.time_equality(True, False, 'data_inequality') | | | 52.7±0.4μs | 52.3±0.3μs | 0.99 | cube.CubeEquality.time_equality(True, False, 'metadata_inequality') | | | 302±4ms | 308±3ms | 1.02 | cube.CubeEquality.time_equality(True, True, 'all_equal') | | | 198±2ms | 198±3ms | 1 | cube.CubeEquality.time_equality(True, True, 'coord_inequality') | | | 315±2ms | 320±3ms | 1.02 | cube.CubeEquality.time_equality(True, True, 'data_inequality') | | | 54.3±0.7μs | 53.7±0.5μs | 0.99 | cube.CubeEquality.time_equality(True, True, 'metadata_inequality') | | | 655±4μs | 657±5μs | 1 | import_iris.Iris.time__concatenate | | | 178±2μs | 181±3μs | 1.02 | import_iris.Iris.time__constraints | | | 109±1μs | 109±0.5μs | 1 | import_iris.Iris.time__data_manager | | | 92.8±0.2μs | 92.8±0.6μs | 1 | import_iris.Iris.time__deprecation | | | 137±2μs | 136±0.7μs | 0.99 | import_iris.Iris.time__lazy_data | | | 890±8μs | 892±6μs | 1 | import_iris.Iris.time__merge | | | 76.7±0.4μs | 76.8±1μs | 1 | import_iris.Iris.time__representation | | | 482±7μs | 483±2μs | 1 | import_iris.Iris.time_analysis | | | 138±2μs | 138±0.7μs | 1 | import_iris.Iris.time_analysis__area_weighted | | | 112±0.9μs | 108±0.4μs | 0.97 | import_iris.Iris.time_analysis__grid_angles | | | 239±3μs | 240±2μs | 1 | import_iris.Iris.time_analysis__interpolation | | | 186±2μs | 183±1μs | 0.98 | import_iris.Iris.time_analysis__regrid | | | 111±1μs | 110±0.9μs | 0.99 | import_iris.Iris.time_analysis__scipy_interpolate | | | 137±3μs | 136±1μs | 0.99 | import_iris.Iris.time_analysis_calculus | | | 323±3μs | 324±3μs | 1 | import_iris.Iris.time_analysis_cartography | | | 94.7±2μs | 93.5±0.7μs | 0.99 | import_iris.Iris.time_analysis_geomerty | | | 215±6μs | 215±2μs | 1 | import_iris.Iris.time_analysis_maths | | | 97.6±1μs | 96.6±0.4μs | 0.99 | import_iris.Iris.time_analysis_stats | | | 172±3μs | 172±1μs | 1 | import_iris.Iris.time_analysis_trajectory | | | 304±4μs | 304±9μs | 1 | import_iris.Iris.time_aux_factory | | | 83.4±0.5μs | 83.9±0.2μs | 1.01 | import_iris.Iris.time_common | | | 162±3μs | 161±2μs | 0.99 | import_iris.Iris.time_common_lenient | | | 1.32±0.01ms | 1.33±0.01ms | 1.01 | import_iris.Iris.time_common_metadata | | | 131±1μs | 130±0.9μs | 1 | import_iris.Iris.time_common_mixin | | | 1.18±0.01ms | 1.17±0.01ms | 1 | import_iris.Iris.time_common_resolve | | | 196±2μs | 197±2μs | 1.01 | import_iris.Iris.time_config | | | 115±0.8μs | 115±1μs | 0.99 | import_iris.Iris.time_coord_categorisation | | | 361±4μs | 362±2μs | 1 | import_iris.Iris.time_coord_systems | | | 751±8μs | 744±5μs | 0.99 | import_iris.Iris.time_coords | | | 667±10μs | 665±5μs | 1 | import_iris.Iris.time_cube | | | 221±1μs | 223±1μs | 1.01 | import_iris.Iris.time_exceptions | | | 77.5±0.8μs | 76.6±0.4μs | 0.99 | import_iris.Iris.time_experimental | | | 184±1μs | 186±1μs | 1.01 | import_iris.Iris.time_fileformats | | | 249±2μs | 251±1μs | 1.01 | import_iris.Iris.time_fileformats__ff | | | 2.70±0.01ms | 2.70±0.01ms | 1 | import_iris.Iris.time_fileformats__ff_cross_references | | | 78.0±0.4μs | 79.1±0.3μs | 1.01 | import_iris.Iris.time_fileformats__pp_lbproc_pairs | | | 114±0.9μs | 114±0.6μs | 1 | import_iris.Iris.time_fileformats_abf | | | 405±2μs | 402±2μs | 0.99 | import_iris.Iris.time_fileformats_cf | | | 5.41±0.07ms | 5.34±0.05ms | 0.99 | import_iris.Iris.time_fileformats_dot | | | 73.9±0.5μs | 74.4±0.3μs | 1.01 | import_iris.Iris.time_fileformats_name | | | 254±4μs | 255±1μs | 1 | import_iris.Iris.time_fileformats_name_loaders | | | 119±1μs | 118±0.3μs | 0.99 | import_iris.Iris.time_fileformats_netcdf | | | 122±0.8μs | 122±2μs | 1 | import_iris.Iris.time_fileformats_nimrod | | | 212±3μs | 207±3μs | 0.98 | import_iris.Iris.time_fileformats_nimrod_load_rules | | | 778±6μs | 783±10μs | 1.01 | import_iris.Iris.time_fileformats_pp | | | 179±2μs | 182±4μs | 1.02 | import_iris.Iris.time_fileformats_pp_load_rules | | | 132±1μs | 132±0.6μs | 1 | import_iris.Iris.time_fileformats_pp_save_rules | | | 507±4μs | 509±3μs | 1 | import_iris.Iris.time_fileformats_rules | | | 220±1μs | 217±1μs | 0.99 | import_iris.Iris.time_fileformats_structured_array_identification | | | 83.0±0.6μs | 82.6±0.4μs | 1 | import_iris.Iris.time_fileformats_um | | | 159±4μs | 160±2μs | 1 | import_iris.Iris.time_fileformats_um__fast_load | | | 137±1μs | 136±0.6μs | 1 | import_iris.Iris.time_fileformats_um__fast_load_structured_fields | | | 75.5±0.6μs | 75.5±0.5μs | 1 | import_iris.Iris.time_fileformats_um__ff_replacement | | | 81.2±0.6μs | 81.2±0.7μs | 1 | import_iris.Iris.time_fileformats_um__optimal_array_structuring | | | 986±9μs | 977±6μs | 0.99 | import_iris.Iris.time_fileformats_um_cf_map | | | 135±0.5μs | 135±0.9μs | 1 | import_iris.Iris.time_io | | | 173±4μs | 170±2μs | 0.99 | import_iris.Iris.time_io_format_picker | | | 229±3μs | 227±3μs | 0.99 | import_iris.Iris.time_iris | | | 126±0.8μs | 125±0.9μs | 0.99 | import_iris.Iris.time_iterate | | | 8.37±0.06ms | 8.35±0.05ms | 1 | import_iris.Iris.time_palette | | | 2.20±0.04ms | 2.21±0.05ms | 1.01 | import_iris.Iris.time_plot | | | 104±2μs | 104±0.9μs | 1 | import_iris.Iris.time_quickplot | | | 2.18±0.01ms | 2.20±0.01ms | 1.01 | import_iris.Iris.time_std_names | | | 1.74±0.01ms | 1.74±0.01ms | 1 | import_iris.Iris.time_symbols | | | 36.0±1ms | 35.9±1ms | 1 | import_iris.Iris.time_tests | | | 255±3μs | 255±2μs | 1 | import_iris.Iris.time_third_party_cartopy | | | 4.79±0.03ms | 4.79±0.03ms | 1 | import_iris.Iris.time_third_party_cf_units | | | 118±0.4μs | 118±0.6μs | 1 | import_iris.Iris.time_third_party_cftime | | | 2.76±0.01ms | 2.76±0.01ms | 1 | import_iris.Iris.time_third_party_matplotlib | | | 1.07±0ms | 1.06±0.01ms | 1 | import_iris.Iris.time_third_party_numpy | | | 170±1μs | 169±1μs | 1 | import_iris.Iris.time_third_party_scipy | | | 98.8±1μs | 99.7±1μs | 1.01 | import_iris.Iris.time_time | | | 318±6μs | 316±4μs | 1 | import_iris.Iris.time_util | | | 73.2±0.5μs | 73.2±2μs | 1 | iterate.IZip.time_izip | | | 7.96±0.03ms | 8.01±0.06ms | 1.01 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'FF') | | | 23.8±0.3ms | 24.2±0.5ms | 1.02 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'NetCDF') | | | 8.71±0.05ms | 8.73±0.04ms | 1 | load.LoadAndRealise.time_load((1280, 960, 5), False, 'PP') | | | 7.96±0.1ms | 7.94±0.03ms | 1 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'FF') | | | 21.5±0.2ms | 21.5±0.2ms | 1 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'NetCDF') | | | 8.71±0.06ms | 8.74±0.04ms | 1 | load.LoadAndRealise.time_load((1280, 960, 5), True, 'PP') | | | 1.34±0.01s | 1.34±0.01s | 1 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'FF') | | | 21.4±0.2ms | 21.3±0.3ms | 1 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'NetCDF') | | | 1.49±0.01s | 1.50±0.01s | 1 | load.LoadAndRealise.time_load((2, 2, 1000), False, 'PP') | | | 1.34±0.02s | 1.35±0.01s | 1 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'FF') | | | 21.2±0.2ms | 21.2±0.1ms | 1 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'NetCDF') | | | 1.49±0.01s | 1.48±0.02s | 1 | load.LoadAndRealise.time_load((2, 2, 1000), True, 'PP') | | | 3.87±0.02ms | 3.85±0.01ms | 1 | load.LoadAndRealise.time_load((50, 50, 2), False, 'FF') | | | 20.4±0.3ms | 20.2±0.3ms | 0.99 | load.LoadAndRealise.time_load((50, 50, 2), False, 'NetCDF') | | | 4.14±0.02ms | 4.11±0.05ms | 0.99 | load.LoadAndRealise.time_load((50, 50, 2), False, 'PP') | | | 3.93±0.07ms | 3.83±0.01ms | 0.98 | load.LoadAndRealise.time_load((50, 50, 2), True, 'FF') | | | 20.1±0.08ms | 20.2±0.4ms | 1.01 | load.LoadAndRealise.time_load((50, 50, 2), True, 'NetCDF') | | | 4.18±0.07ms | 4.13±0.02ms | 0.99 | load.LoadAndRealise.time_load((50, 50, 2), True, 'PP') | | | 32.9±3ms | 31.7±3ms | 0.96 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'FF') | | | 19.2±0.3ms | 18.6±0.6ms | 0.97 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'NetCDF') | | | 13.2±1ms | 13.6±1ms | 1.03 | load.LoadAndRealise.time_realise((1280, 960, 5), False, 'PP') | | | 25.6±2ms | 27.8±3ms | 1.08 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'FF') | | | 70.2±2ms | 70.5±2ms | 1 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'NetCDF') | | | 25.3±1ms | 25.6±0.9ms | 1.01 | load.LoadAndRealise.time_realise((1280, 960, 5), True, 'PP') | | | 434±2ms | 432±5ms | 0.99 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'FF') | | | 2.95±0.1ms | 2.84±0.06ms | 0.96 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'NetCDF') | | | 443±4ms | 441±5ms | 1 | load.LoadAndRealise.time_realise((2, 2, 1000), False, 'PP') | | | 441±4ms | 444±6ms | 1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'FF') | | | 2.86±0.1ms | 2.90±0.09ms | 1.01 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'NetCDF') | | | 444±6ms | 442±3ms | 0.99 | load.LoadAndRealise.time_realise((2, 2, 1000), True, 'PP') | | | 1.57±0.1ms | 1.56±0.05ms | 1 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'FF') | | | 2.79±0.1ms | 2.88±0.1ms | 1.03 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'NetCDF') | | | 1.59±0.07ms | 1.53±0.09ms | 0.96 | load.LoadAndRealise.time_realise((50, 50, 2), False, 'PP') | | | 1.53±0.07ms | 1.50±0.07ms | 0.98 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'FF') | | | 2.80±0.1ms | 2.85±0.1ms | 1.02 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'NetCDF') | | | 1.65±0.08ms | 1.55±0.06ms | 0.94 | load.LoadAndRealise.time_realise((50, 50, 2), True, 'PP') | | | 368±4ms | 370±2ms | 1 | load.ManyVars.time_many_var_load | | | 8.10±0.06ms | 8.03±0.04ms | 0.99 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'FF') | | | 8.95±0.1ms | 8.86±0.07ms | 0.99 | load.STASHConstraint.time_stash_constraint((1280, 960, 5), 'PP') | | | 1.35±0.01s | 1.35±0.01s | 1 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'FF') | | | 1.53±0.02s | 1.51±0.01s | 0.99 | load.STASHConstraint.time_stash_constraint((2, 2, 1000), 'PP') | | | 3.93±0.06ms | 3.89±0.03ms | 0.99 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'FF') | | | 4.20±0.04ms | 4.24±0.06ms | 1.01 | load.STASHConstraint.time_stash_constraint((2, 2, 2), 'PP') | | | 8.06±0.09ms | 7.94±0.05ms | 0.98 | load.StructuredFF.time_structured_load((1280, 960, 5), False) | | | 4.69±0.05ms | 4.68±0.01ms | 1 | load.StructuredFF.time_structured_load((1280, 960, 5), True) | | | 1.36±0.01s | 1.32±0.01s | 0.97 | load.StructuredFF.time_structured_load((2, 2, 1000), False) | | | 369±6ms | 365±5ms | 0.99 | load.StructuredFF.time_structured_load((2, 2, 1000), True) | | | 3.85±0.04ms | 3.91±0.05ms | 1.02 | load.StructuredFF.time_structured_load((2, 2, 2), False) | | | 3.54±0.03ms | 3.49±0.02ms | 0.99 | load.StructuredFF.time_structured_load((2, 2, 2), True) | | | 146±2ms | 146±1ms | 1 | load.TimeConstraint.time_time_constraint(20, 'FF') | | | 23.3±0.4ms | 23.6±0.4ms | 1.01 | load.TimeConstraint.time_time_constraint(20, 'NetCDF') | | | 161±1ms | 163±2ms | 1.01 | load.TimeConstraint.time_time_constraint(20, 'PP') | | | 29.4±0.5ms | 28.8±0.4ms | 0.98 | load.TimeConstraint.time_time_constraint(3, 'FF') | | | 23.4±0.6ms | 23.1±0.1ms | 0.99 | load.TimeConstraint.time_time_constraint(3, 'NetCDF') | | | 31.7±0.7ms | 31.6±0.6ms | 0.99 | load.TimeConstraint.time_time_constraint(3, 'PP') | | | 17.5±0.2ms | 17.8±0.3ms | 1.02 | load.ugrid.BasicLoading.time_load_file(1) | | | 40.5±0.4ms | 41.4±0.3ms | 1.02 | load.ugrid.BasicLoading.time_load_file(200000) | | | 14.2±0.3ms | 14.6±0.2ms | 1.03 | load.ugrid.BasicLoading.time_load_mesh(1) | | | 21.8±0.4ms | 23.0±0.4ms | 1.05 | load.ugrid.BasicLoading.time_load_mesh(200000) | | | 17.7±0.4ms | 17.5±0.3ms | 0.99 | load.ugrid.BasicLoadingTime.time_load_file(1) | | | 21.0±0.5ms | 20.2±0.4ms | 0.96 | load.ugrid.BasicLoadingTime.time_load_file(200000) | | | 14.2±0.1ms | 14.2±0.2ms | 1 | load.ugrid.BasicLoadingTime.time_load_mesh(1) | | | 16.9±0.2ms | 17.0±0.3ms | 1.01 | load.ugrid.BasicLoadingTime.time_load_mesh(200000) | | | 18.5±0.2ms | 18.7±0.3ms | 1.01 | load.ugrid.Callback.time_load_file_callback(1) | | | 49.1±0.7ms | 50.2±0.9ms | 1.02 | load.ugrid.Callback.time_load_file_callback(200000) | | | 18.4±0.2ms | 18.6±0.5ms | 1.01 | load.ugrid.CallbackTime.time_load_file_callback(1) | | | 22.1±0.6ms | 22.5±0.4ms | 1.02 | load.ugrid.CallbackTime.time_load_file_callback(200000) | | | 2.66±0.06ms | 2.69±0.08ms | 1.01 | load.ugrid.DataRealisation.time_realise_data(10000) | | | 37.9±0.6ms | 37.8±1ms | 1 | load.ugrid.DataRealisationTime.time_realise_data(10000) | | | 798±5ms | 797±4ms | 1 | load.ugrid.DataRealisationTime.time_realise_data(200000) | | | 118±1ms | 118±1ms | 1 | merge_concat.Concatenate.time_concatenate | | | 24.1 | 24.1 | 1 | merge_concat.Concatenate.track_mem_merge | | | 47.3±0.5ms | 47.5±0.4ms | 1 | merge_concat.Merge.time_merge | | | 10.9 | 11.0 | 1.01 | merge_concat.Merge.track_mem_merge | | | 392±2ns | 394±4ns | 1.01 | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(50) | | | 261±3ms | 257±2ms | 0.99 | mesh.utils.regions_combine.CombineRegionsComputeRealData.time_compute_data(500) | | | 0.6 | 0.6 | 1 | mesh.utils.regions_combine.CombineRegionsComputeRealData.track_addedmem_compute_data(50) | | | 57.3 | 57.3 | 1 | mesh.utils.regions_combine.CombineRegionsComputeRealData.track_addedmem_compute_data(500) | | | 14.3±0.2ms | 14.2±0.2ms | 1 | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(50) | | | 15.9±0.5ms | 16.0±0.2ms | 1.01 | mesh.utils.regions_combine.CombineRegionsCreateCube.time_create_combined_cube(500) | | | 0.5 | 0.5 | 1 | mesh.utils.regions_combine.CombineRegionsCreateCube.track_addedmem_create_combined_cube(50) | | | 11.8 | 11.8 | 1 | mesh.utils.regions_combine.CombineRegionsCreateCube.track_addedmem_create_combined_cube(500) | | | 106±1ms | 105±1ms | 0.99 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(50) | | | 698±6ms | 702±5ms | 1 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.time_stream_file2file(500) | | | 1.4 | 1.4 | 1 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.track_addedmem_stream_file2file(50) | | | 92.0 | 92.0 | 1 | mesh.utils.regions_combine.CombineRegionsFileStreamedCalc.track_addedmem_stream_file2file(500) | | | 65.9±0.2ms | 66.3±0.9ms | 1.01 | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(50) | | | 653±4ms | 653±3ms | 1 | mesh.utils.regions_combine.CombineRegionsSaveData.time_save(500) | | | 1.3 | 1.4 | 1.08 | mesh.utils.regions_combine.CombineRegionsSaveData.track_addedmem_save(50) | | | 92.0 | 92.0 | 1 | mesh.utils.regions_combine.CombineRegionsSaveData.track_addedmem_save(500) | | | 2.1752849999999997 | 2.1752849999999997 | 1 | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(50) | | | 216.01528499999998 | 216.01528499999998 | 1 | mesh.utils.regions_combine.CombineRegionsSaveData.track_filesize_saved(500) | | | 6.54±0.04ms | 6.56±0.04ms | 1 | plot.AuxSort.time_aux_sort | | | 76.4±4ms | 76.2±5ms | 1 | regridding.CurvilinearRegridding.time_regrid_pic | | | 144.9 | 144.9 | 1 | regridding.CurvilinearRegridding.track_mem_regrid_pic | | | 98.4±0.8ms | 98.1±0.5ms | 1 | regridding.HorizontalChunkedRegridding.time_regrid_area_w | | | 46.8±1ms | 48.0±2ms | 1.03 | regridding.HorizontalChunkedRegridding.time_regrid_area_w_new_grid | | | 111.6 | 111.6 | 1 | regridding.HorizontalChunkedRegridding.track_mem_regrid_area_w | | | 150.6 | 150.6 | 1 | regridding.HorizontalChunkedRegridding.track_mem_regrid_area_w_new_grid | | | 4.06±0.02ms | 4.06±0.04ms | 1 | save.NetcdfSave.time_netcdf_save_cube(50, False) | | | 71.4±0.3ms | 71.0±0.4ms | 0.99 | save.NetcdfSave.time_netcdf_save_cube(50, True) | | | 51.6±0.8ms | 52.3±0.7ms | 1.01 | save.NetcdfSave.time_netcdf_save_cube(600, False) | | | 558±4ms | 556±3ms | 1 | save.NetcdfSave.time_netcdf_save_cube(600, True) | | | 89.0±0.2ns | 88.9±1ns | 1 | save.NetcdfSave.time_netcdf_save_mesh(50, False) | | | 54.5±0.3ms | 55.3±1ms | 1.01 | save.NetcdfSave.time_netcdf_save_mesh(50, True) | | | 90.4±0.7ns | 90.4±0.3ns | 1 | save.NetcdfSave.time_netcdf_save_mesh(600, False) | | | 491±2ms | 497±3ms | 1.01 | save.NetcdfSave.time_netcdf_save_mesh(600, True) | | | 0.3 | 0.3 | 1 | save.NetcdfSave.track_addedmem_netcdf_save(50, False) | | | 1.6 | 1.7 | 1.06 | save.NetcdfSave.track_addedmem_netcdf_save(50, True) | | | 0.3 | 0.3 | 1 | save.NetcdfSave.track_addedmem_netcdf_save(600, False) | | | 42.0±1ms | 41.7±0.5ms | 0.99 | stats.PearsonR.time_lazy | | | 18.8±0.2ms | 18.8±0.2ms | 1 | stats.PearsonR.time_real | | | 19.6 | 19.5 | 0.99 | stats.PearsonR.track_lazy | | | 17.8 | 17.8 | 1 | stats.PearsonR.track_real | | | 23.6±0.8ms | 23.3±1ms | 0.98 | trajectory.TrajectoryInterpolation.time_trajectory_linear | | | 60.7±0.5ms | 60.4±1ms | 1 | trajectory.TrajectoryInterpolation.time_trajectory_nearest | | | 32.2 | 32.2 | 1 | trajectory.TrajectoryInterpolation.track_trajectory_linear | | | 21.6 | 21.6 | 1 | trajectory.TrajectoryInterpolation.track_trajectory_nearest | Benchmarks that have got worse: | Change | Before [c88b4076] | After [b8f554f7]
| Ratio | Benchmark (Parameter) | |----------|------------------------------|---------------------------|---------|-------------------------------------------------------| | + | 3.74±0.1ms | 5.52±0.9ms | 1.48 | load.ugrid.DataRealisation.time_realise_data(200000) | | + | 165.2 | 214.6 | 1.3 | save.NetcdfSave.track_addedmem_netcdf_save(600, True) | ```

Generated by GHA run 10396204733

pp-mo commented 1 month ago

re: #5981 -- that may address the memory measure, which is so often noise. But it won't explain the time discrepancy of " 1.48 | load.ugrid.DataRealisation.time_realise_data(200000)" On the other hand, the step from workflows 2024.08.0 to 2024.08.1 only changes the pre-commit config, so I guess the time discrepancy must probably be spurious. Worth checking, though ?

trexfeathers commented 1 month ago

@pp-mo what this perhaps DOES show is that time_realise_data is too vulnerable to noise?

pp-mo commented 1 month ago

@pp-mo what this perhaps DOES show is that time_realise_data is too vulnerable to noise?

Well that seems reasonable in a way.
But we have lived with it up to now, and if there is severe variability expected in these tests, I don't recall having seen a lot of it before. So perhaps it is a recent phenomenon ?

trexfeathers commented 1 month ago

So perhaps it is a recent phenomenon ?

Agreed, but I don't know why. Dask is changing all the time. Difficult to know what to do - milliseconds would normally be long enough to dial out noise.

trexfeathers commented 2 weeks ago

I was a bit trigger happy linking this one, re-opening