Skip to content

Connectivity peakmem benchmarks - #1661

Draft
cmdupuis3 wants to merge 8 commits into
UXARRAY:mainfrom
cmdupuis3:cmd/connectivity_peakmem
Draft

Connectivity peakmem benchmarks#1661
cmdupuis3 wants to merge 8 commits into
UXARRAY:mainfrom
cmdupuis3:cmd/connectivity_peakmem

Conversation

@cmdupuis3

@cmdupuis3 cmdupuis3 commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

Closes #1660

Overview

Two sets of memory benchmarks, tracking allocations in isolation and total peakmem usage.

ConnectivityTracemalloc results from Derecho:

Resolution edge_face edge_node face_face n_nodes_per_face node_edge node_face
480km 204k 980k 888k 24.8k 127k 747k
120km 3.05M 15.5M 14.8M 239k 1.9M 11.9M
30km 68.2M 577M 351M 5.25M 41.9M 249M
15km 273M 2.31G 1.41G 21M 168M 996M
7.5km 1.09G 5.68G 5.29G 83.9M 671M 3.98G
3.75km 4.36G timeout timeout 336M 2.68G 15.9G

(face_edge is a flat 11.4k, face_node is a flat 2.54k)

PR Checklist

General

  • An issue is created and linked
  • Added appropriate labels (if your uxarray repo permissions allow it)
  • Filled out Overview and Expected Usage (if applicable) sections

Testing & Benchmarking

  • Adequate tests are created if there is new functionality
  • Tests are not too basic (such as simply calling a function and nothing else)
  • Tests cover all major paths in your new functions
  • If this PR could affect performance, ran ASV benchmarks and confirmed they show expected behavior (add a new benchmark if necessary)

Documentation

  • Docstrings have been added to all new functions
  • Docstrings have been updated with any function changes

AI Disclosure

AI Usage: Claude Opus 5

  • I take responsibility for all AI-generated content in my PR.
  • I have tested all AI-generated content in my PR.

@cmdupuis3 cmdupuis3 self-assigned this Aug 8, 2026
@cmdupuis3 cmdupuis3 added the benchmarking Related to benchmarks, memory usage, and/or time profiling label Aug 8, 2026
@cmdupuis3 cmdupuis3 added the run-benchmark Run ASV benchmark workflow label Aug 21, 2026
@github-actions

github-actions Bot commented Aug 22, 2026

Copy link
Copy Markdown

ASV Benchmarking

Benchmark Comparison Results

Benchmarks that have stayed the same:

Change Before [5e8021d] After [42fe87b] Ratio Benchmark (Parameter)
1.47±0.02ms 1.47±0.02ms 1.00 bench_connectivity.Connectivity.time_edge_face('120km')
715±10μs 713±10μs 1.00 bench_connectivity.Connectivity.time_edge_face('480km')
194±1ms 192±1ms 0.99 bench_connectivity.Connectivity.time_edge_node('120km')
10.8±0.1ms 10.7±0.06ms 0.99 bench_connectivity.Connectivity.time_edge_node('480km')
381±9μs 378±10μs 0.99 bench_connectivity.Connectivity.time_face_edge('120km')
341±2μs 356±20μs 1.05 bench_connectivity.Connectivity.time_face_edge('480km')
674±4ms 685±4ms 1.02 bench_connectivity.Connectivity.time_face_face('120km')
43.6±0.4ms 42.9±0.5ms 0.98 bench_connectivity.Connectivity.time_face_face('480km')
63.9±8μs 60.5±3μs 0.95 bench_connectivity.Connectivity.time_face_node('120km')
58.1±8μs 57.0±1μs 0.98 bench_connectivity.Connectivity.time_face_node('480km')
407±10μs 394±10μs 0.97 bench_connectivity.Connectivity.time_n_nodes_per_face('120km')
320±10μs 330±10μs 1.03 bench_connectivity.Connectivity.time_n_nodes_per_face('480km')
1.34±0.01ms 1.37±0ms 1.02 bench_connectivity.Connectivity.time_node_edge('120km')
401±10μs 410±6μs 1.02 bench_connectivity.Connectivity.time_node_edge('480km')
79.8±0.9ms 80.0±1ms 1.00 bench_connectivity.Connectivity.time_node_face('120km')
5.05±0.01ms 5.02±0.03ms 1.00 bench_connectivity.Connectivity.time_node_face('480km')
15.5M 15.5M 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_edge_face('120km')
980k 980k 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_edge_face('480km')
15.5M 15.5M 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_edge_node('120km')
980k 980k 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_edge_node('480km')
15.5M 15.5M 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_face_edge('120km')
980k 980k 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_face_edge('480km')
19.3M 19.3M 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_face_face('120km')
1.19M 1.29M 1.08 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_face_face('480km')
2.54k 2.54k 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_face_node('120km')
2.54k 2.54k 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_face_node('480km')
239k 239k 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_n_nodes_per_face('120km')
24.8k 24.8k 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_n_nodes_per_face('480km')
15.5M 15.5M 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_node_edge('120km')
980k 980k 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_node_edge('480km')
11.9M 11.9M 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_node_face('120km')
742k 747k 1.01 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_node_face('480km')
3.05M 3.05M 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_edge_face('120km')
204k 204k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_edge_face('480km')
15.5M 15.5M 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_edge_node('120km')
980k 980k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_edge_node('480km')
11.2k 11.2k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_face_edge('120km')
11.4k 11.4k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_face_edge('480km')
14.7M 14.8M 1.01 bench_connectivity.ConnectivityTracemalloc.track_peakmem_face_face('120km')
2.54k 2.54k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_face_node('120km')
2.54k 2.54k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_face_node('480km')
239k 239k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_n_nodes_per_face('120km')
24.8k 24.8k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_n_nodes_per_face('480km')
1.9M 1.9M 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_node_edge('120km')
127k 127k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_node_edge('480km')
11.9M 11.9M 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_node_face('120km')
742k 747k 1.01 bench_connectivity.ConnectivityTracemalloc.track_peakmem_node_face('480km')
7.78±0.1ms 7.62±0.07ms 0.98 face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc'))
2.64±0.2ms 2.54±0.1ms 0.96 face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc'))
10.3±10s 9.13±10ms ~0.00 face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc'))
2.19±0.02ms 2.16±0.02ms 0.99 face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc'))
57.3k 57.3k 1.00 face_bounds.FaceBounds.track_nbytes_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc'))
12.3k 12.3k 1.00 face_bounds.FaceBounds.track_nbytes_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc'))
123k 123k 1.00 face_bounds.FaceBounds.track_nbytes_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc'))
128 128 1.00 face_bounds.FaceBounds.track_nbytes_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc'))
1.27M 1.27M 1.00 face_bounds.FaceBounds.track_nbytes_grid_with_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc'))
50.1k 50.1k 1.00 face_bounds.FaceBounds.track_nbytes_grid_with_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc'))
1.48M 1.48M 1.00 face_bounds.FaceBounds.track_nbytes_grid_with_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc'))
712 712 1.00 face_bounds.FaceBounds.track_nbytes_grid_with_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc'))
1.96M 1.96M 1.00 face_bounds.FaceBounds.track_peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc'))
1.97M 1.97M 1.00 face_bounds.FaceBounds.track_peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc'))
2.14M 2.14M 1.00 face_bounds.FaceBounds.track_peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc'))
38.3k 38.3k 1.00 face_bounds.FaceBounds.track_peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc'))
337M 336M 1.00 face_bounds.FaceBoundsColdStartRss.peakmem_open_and_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc'))
366M 366M 1.00 face_bounds.FaceBoundsColdStartRss.peakmem_open_and_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc'))
338M 338M 1.00 face_bounds.FaceBoundsColdStartRss.peakmem_open_and_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc'))
337M 337M 1.00 face_bounds.FaceBoundsColdStartRss.peakmem_open_and_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc'))
1.21±0.02μs 1.26±0.03μs 1.04 geometry_kernels.AccucrossKernels.time_accucross
2.80±0.02μs 2.77±0.03μs 0.99 geometry_kernels.AccucrossKernels.time_accucross_pair
441±9ns 441±10ns 1.00 geometry_kernels.EFTPrimitives.time_acc_sqrt_re
436±10ns 430±9ns 0.99 geometry_kernels.EFTPrimitives.time_diff_of_products
386±10ns 376±10ns 0.97 geometry_kernels.EFTPrimitives.time_two_prod
401±20ns 386±10ns 0.96 geometry_kernels.EFTPrimitives.time_two_sum
1.57±0.03μs 1.54±0.02μs 0.98 geometry_kernels.GCAConstLatIntersection.time_accux_constlat_kernel
1.14±0.03μs 1.18±0.04μs 1.04 geometry_kernels.GCAConstLatIntersection.time_gca_const_lat_intersection
2.03±0.04μs 1.94±0.05μs 0.96 geometry_kernels.GCAConstLatIntersection.time_try_gca_const_lat_intersection
3.72±0.04μs 3.83±0.1μs 1.03 geometry_kernels.GCAGCAIntersection.time_accux_gca_kernel
1.41±0.04μs 1.42±0.05μs 1.00 geometry_kernels.GCAGCAIntersection.time_gca_gca_intersection
3.79±0.06μs 3.82±0.06μs 1.01 geometry_kernels.GCAGCAIntersection.time_try_gca_gca_intersection
55.2±1μs 52.1±1μs 0.94 geometry_kernels.OrientPredicates.time_on_minor_arc
1.11±0.02μs 1.08±0.08μs 0.98 geometry_kernels.OrientPredicates.time_orient3d_on_sphere
2.71±0.1ms 2.60±0.01ms 0.96 geometry_samebody.SameBodyConstLat.time_accux_dispatch
1.17±0ms 1.17±0.01ms 1.00 geometry_samebody.SameBodyConstLat.time_accux_kernel
1.73±0.02ms 1.74±0.01ms 1.01 geometry_samebody.SameBodyConstLat.time_fp64_dispatch
147±2μs 147±0.8μs 1.00 geometry_samebody.SameBodyConstLat.time_fp64_kernel
failed failed n/a geometry_samebody_gcagca.SameBodyGcaGca.time_accux_dispatch
failed failed n/a geometry_samebody_gcagca.SameBodyGcaGca.time_accux_kernel
failed failed n/a geometry_samebody_gcagca.SameBodyGcaGca.time_fp64_dispatch
failed failed n/a geometry_samebody_gcagca.SameBodyGcaGca.time_fp64_kernel
823±4ms 828±2ms 1.01 import.Imports.timeraw_import_uxarray
293M 293M 1.00 import.Imports.track_peakmem_import_uxarray
2.73±0.04ms 2.74±0.03ms 1.00 mpas_ocean.CheckNorm.time_check_norm('120km')
2.27±0.03ms 2.28±0.01ms 1.01 mpas_ocean.CheckNorm.time_check_norm('480km')
833±7ms 822±3ms 0.99 mpas_ocean.ConnectivityConstruction.time_face_face_connectivity('120km')
53.9±0.3ms 54.0±1ms 1.00 mpas_ocean.ConnectivityConstruction.time_face_face_connectivity('480km')
654±10μs 663±9μs 1.01 mpas_ocean.ConnectivityConstruction.time_n_nodes_per_face('120km')
593±10μs 607±20μs 1.02 mpas_ocean.ConnectivityConstruction.time_n_nodes_per_face('480km')
5.46±0.03ms 5.47±0.02ms 1.00 mpas_ocean.ConstructFaceLatLon.time_cartesian_averaging('120km')
3.95±0.01ms 3.88±0.02ms 0.98 mpas_ocean.ConstructFaceLatLon.time_cartesian_averaging('480km')
99.9±0.2ms 99.8±0.2ms 1.00 mpas_ocean.ConstructFaceLatLon.time_welzl('120km')
10.7±0.03ms 10.4±0.3ms 0.97 mpas_ocean.ConstructFaceLatLon.time_welzl('480km')
18.2±0.01ms 18.1±0.01ms 1.00 mpas_ocean.ConstructTreeStructures.time_ball_tree('120km')
1.04±0ms 1.04±0ms 1.00 mpas_ocean.ConstructTreeStructures.time_ball_tree('480km')
10.6±0.01ms 10.6±0ms 1.00 mpas_ocean.ConstructTreeStructures.time_kd_tree('120km')
735±5μs 738±10μs 1.00 mpas_ocean.ConstructTreeStructures.time_kd_tree('480km')
579±2ms 580±4ms 1.00 mpas_ocean.CrossSections.time_const_lat('120km', 1)
292±0.8ms 293±2ms 1.01 mpas_ocean.CrossSections.time_const_lat('120km', 2)
151±0.7ms 153±0.9ms 1.01 mpas_ocean.CrossSections.time_const_lat('120km', 4)
527±2ms 530±2ms 1.01 mpas_ocean.CrossSections.time_const_lat('480km', 1)
266±0.8ms 264±3ms 0.99 mpas_ocean.CrossSections.time_const_lat('480km', 2)
137±0.5ms 137±0.3ms 1.00 mpas_ocean.CrossSections.time_const_lat('480km', 4)
357M 357M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('120km', 1)
356M 356M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('120km', 2)
356M 358M 1.01 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('120km', 4)
339M 339M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('480km', 1)
339M 339M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('480km', 2)
339M 339M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('480km', 4)
24.7±0.05ms 24.8±0.1ms 1.00 mpas_ocean.DualMesh.time_dual_mesh_construction('120km')
3.09±0.02ms 3.10±0.05ms 1.00 mpas_ocean.DualMesh.time_dual_mesh_construction('480km')
61.6±7ms 61.3±0.3ms 1.00 mpas_ocean.FaceAreas.time_face_areas('120km')
4.88±5s 7.50±5ms ~0.00 mpas_ocean.FaceAreas.time_face_areas('480km')
229k 229k 1.00 mpas_ocean.FaceAreas.track_nbytes_face_areas('120km')
14.3k 14.3k 1.00 mpas_ocean.FaceAreas.track_nbytes_face_areas('480km')
2.12M 2.12M 1.00 mpas_ocean.FaceAreas.track_peakmem_face_areas('120km')
823k 823k 1.00 mpas_ocean.FaceAreas.track_peakmem_face_areas('480km')
947±10ms 956±5ms 1.01 mpas_ocean.GeoDataFrame.time_to_geodataframe('120km', False)
55.0±0.7ms 55.4±0.5ms 1.01 mpas_ocean.GeoDataFrame.time_to_geodataframe('120km', True)
84.8±2ms 84.1±0.9ms 0.99 mpas_ocean.GeoDataFrame.time_to_geodataframe('480km', False)
5.89±0.05ms 5.92±0.1ms 1.00 mpas_ocean.GeoDataFrame.time_to_geodataframe('480km', True)
175±0.3ms 178±5ms 1.01 mpas_ocean.Gradient.time_gradient('120km')
12.3±0.1ms 12.4±0.2ms 1.00 mpas_ocean.Gradient.time_gradient('480km')
457k 457k 1.00 mpas_ocean.Gradient.track_nbytes_gradient('120km')
28.7k 28.7k 1.00 mpas_ocean.Gradient.track_nbytes_gradient('480km')
5.08M 5.08M 1.00 mpas_ocean.Gradient.track_peakmem_gradient('120km')
328k 328k 1.00 mpas_ocean.Gradient.track_peakmem_gradient('480km')
352M 352M 1.00 mpas_ocean.GradientColdStartRss.peakmem_gradient('120km')
331M 331M 1.00 mpas_ocean.GradientColdStartRss.peakmem_gradient('480km')
372±10μs 383±6μs 1.03 mpas_ocean.HoleEdgeIndices.time_construct_hole_edge_indices('120km')
207±6μs 202±5μs 0.98 mpas_ocean.HoleEdgeIndices.time_construct_hole_edge_indices('480km')
565±10μs 573±9μs 1.01 mpas_ocean.Integrate.time_integrate('120km')
510±20μs 499±4μs 0.98 mpas_ocean.Integrate.time_integrate('480km')
18.4M 18.4M 1.00 mpas_ocean.Integrate.track_nbytes_integrate('120km')
1.2M 1.2M 1.00 mpas_ocean.Integrate.track_nbytes_integrate('480km')
181±1ms 183±1ms 1.01 mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('120km', 'exclude')
182±0.8ms 182±1ms 1.00 mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('120km', 'include')
185±0.8ms 181±0.9ms 0.97 mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('120km', 'split')
14.0±0.1ms 14.1±0.3ms 1.01 mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('480km', 'exclude')
13.8±0.09ms 13.8±0.1ms 1.00 mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('480km', 'include')
13.7±0.07ms 13.7±0.1ms 1.00 mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('480km', 'split')
240±3ms 237±0.2ms 0.99 mpas_ocean.NeighborhoodBuild.time_build('120km', 1.0)
1.27±0s 1.27±0s 1.00 mpas_ocean.NeighborhoodBuild.time_build('120km', 15.0)
490±1ms 491±1ms 1.00 mpas_ocean.NeighborhoodBuild.time_build('120km', 5.0)
12.9±0.03ms 12.9±0.02ms 1.00 mpas_ocean.NeighborhoodBuild.time_build('480km', 1.0)
24.8±0.02ms 24.7±0.06ms 1.00 mpas_ocean.NeighborhoodBuild.time_build('480km', 15.0)
16.1±0.06ms 16.0±0.06ms 1.00 mpas_ocean.NeighborhoodBuild.time_build('480km', 5.0)
232±0.3ms 233±0.4ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('120km', 1.0)
1.25±0s 1.24±0s 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('120km', 15.0)
484±0.9ms 485±1ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('120km', 5.0)
12.6±0.03ms 12.5±0.02ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('480km', 1.0)
24.1±0.02ms 24.0±0.03ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('480km', 15.0)
15.6±0.03ms 15.6±0.02ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('480km', 5.0)
1.19 1.19 1.00 mpas_ocean.NeighborhoodBuild.track_mean_neighbors('120km', 1.0)
612.76 612.76 1.00 mpas_ocean.NeighborhoodBuild.track_mean_neighbors('120km', 15.0)
74.17 74.17 1.00 mpas_ocean.NeighborhoodBuild.track_mean_neighbors('120km', 5.0)
1.0 1.0 1.00 mpas_ocean.NeighborhoodBuild.track_mean_neighbors('480km', 1.0)
37.29 37.29 1.00 mpas_ocean.NeighborhoodBuild.track_mean_neighbors('480km', 15.0)
6.57 6.57 1.00 mpas_ocean.NeighborhoodBuild.track_mean_neighbors('480km', 5.0)
728k 728k 1.00 mpas_ocean.NeighborhoodBuild.track_nbytes_neighbors('120km', 1.0)
141M 141M 1.00 mpas_ocean.NeighborhoodBuild.track_nbytes_neighbors('120km', 15.0)
17.4M 17.4M 1.00 mpas_ocean.NeighborhoodBuild.track_nbytes_neighbors('120km', 5.0)
43k 43k 1.00 mpas_ocean.NeighborhoodBuild.track_nbytes_neighbors('480km', 1.0)
563k 563k 1.00 mpas_ocean.NeighborhoodBuild.track_nbytes_neighbors('480km', 15.0)
123k 123k 1.00 mpas_ocean.NeighborhoodBuild.track_nbytes_neighbors('480km', 5.0)
5.72M 5.72M 1.00 mpas_ocean.NeighborhoodBuild.track_peakmem_build('120km', 1.0)
145M 145M 1.00 mpas_ocean.NeighborhoodBuild.track_peakmem_build('120km', 15.0)
21.5M 21.5M 1.00 mpas_ocean.NeighborhoodBuild.track_peakmem_build('120km', 5.0)
362k 362k 1.00 mpas_ocean.NeighborhoodBuild.track_peakmem_build('480km', 1.0)
824k 825k 1.00 mpas_ocean.NeighborhoodBuild.track_peakmem_build('480km', 15.0)
384k 384k 1.00 mpas_ocean.NeighborhoodBuild.track_peakmem_build('480km', 5.0)
44.9±1ms 44.5±0.3ms 0.99 mpas_ocean.NeighborhoodDask.time_mean('120km', 'grid_chunks')
22.6±0.06ms 22.6±0.02ms 1.00 mpas_ocean.NeighborhoodDask.time_mean('120km', 'numpy')
41.1±0.6ms 40.5±1ms 0.99 mpas_ocean.NeighborhoodDask.time_mean('120km', 'time_chunks')
12.0±0.2ms 12.2±0.08ms 1.01 mpas_ocean.NeighborhoodDask.time_mean('480km', 'grid_chunks')
641±20μs 633±20μs 0.99 mpas_ocean.NeighborhoodDask.time_mean('480km', 'numpy')
8.62±0.08ms 8.63±0.08ms 1.00 mpas_ocean.NeighborhoodDask.time_mean('480km', 'time_chunks')
5.84M 5.83M 1.00 mpas_ocean.NeighborhoodDask.track_peakmem_mean('120km', 'grid_chunks')
2.75M 2.75M 1.00 mpas_ocean.NeighborhoodDask.track_peakmem_mean('120km', 'numpy')
5.67M 5.68M 1.00 mpas_ocean.NeighborhoodDask.track_peakmem_mean('120km', 'time_chunks')
702k 764k 1.09 mpas_ocean.NeighborhoodDask.track_peakmem_mean('480km', 'grid_chunks')
177k 177k 1.00 mpas_ocean.NeighborhoodDask.track_peakmem_mean('480km', 'numpy')
538k 529k 0.98 mpas_ocean.NeighborhoodDask.track_peakmem_mean('480km', 'time_chunks')
12.3±0.01s 12.3±0.02s 1.00 mpas_ocean.NeighborhoodReduce.time_dataset_reduce('120km', 'mean')
13.0±0.01s 12.9±0s 1.00 mpas_ocean.NeighborhoodReduce.time_dataset_reduce('120km', 'median')
226±0.6ms 225±0.4ms 1.00 mpas_ocean.NeighborhoodReduce.time_dataset_reduce('480km', 'mean')
233±0.7ms 233±0.9ms 1.00 mpas_ocean.NeighborhoodReduce.time_dataset_reduce('480km', 'median')
1.30±0s 1.30±0s 1.00 mpas_ocean.NeighborhoodReduce.time_neighborhood_reduce('120km', 'mean')
1.49±0s 1.49±0s 1.00 mpas_ocean.NeighborhoodReduce.time_neighborhood_reduce('120km', 'median')
25.2±0.03ms 25.1±0.07ms 0.99 mpas_ocean.NeighborhoodReduce.time_neighborhood_reduce('480km', 'mean')
26.8±0.08ms 26.5±0.2ms 0.99 mpas_ocean.NeighborhoodReduce.time_neighborhood_reduce('480km', 'median')
40.1±0.03ms 40.1±0.03ms 1.00 mpas_ocean.NeighborhoodReduce.time_reduce('120km', 'mean')
233±0.3ms 233±0.3ms 1.00 mpas_ocean.NeighborhoodReduce.time_reduce('120km', 'median')
585±30μs 569±20μs 0.97 mpas_ocean.NeighborhoodReduce.time_reduce('480km', 'mean')
1.98±0.02ms 1.97±0.02ms 0.99 mpas_ocean.NeighborhoodReduce.time_reduce('480km', 'median')
239k 239k 1.00 mpas_ocean.NeighborhoodReduce.track_peakmem_reduce('120km', 'mean')
245k 245k 1.00 mpas_ocean.NeighborhoodReduce.track_peakmem_reduce('120km', 'median')
19.4k 19.4k 1.00 mpas_ocean.NeighborhoodReduce.track_peakmem_reduce('480km', 'mean')
19.9k 19.9k 1.00 mpas_ocean.NeighborhoodReduce.track_peakmem_reduce('480km', 'median')
409±20μs 393±6μs 0.96 mpas_ocean.PointInPolygon.time_face_search_lonlat('120km')
400±6μs 400±10μs 1.00 mpas_ocean.PointInPolygon.time_face_search_lonlat('480km')
358±10μs 365±10μs 1.02 mpas_ocean.PointInPolygon.time_face_search_xyz('120km')
365±10μs 351±10μs 0.96 mpas_ocean.PointInPolygon.time_face_search_xyz('480km')
233±0.6ms 232±0.6ms 1.00 mpas_ocean.RemapDownsample.time_bilinear_remapping
290±3ms 291±2ms 1.00 mpas_ocean.RemapDownsample.time_inverse_distance_weighted_remapping
15.6±0.06ms 15.6±0.06ms 1.00 mpas_ocean.RemapDownsample.time_nearest_neighbor_remapping
1.35±0.01s 1.36±0s 1.01 mpas_ocean.RemapUpsample.time_bilinear_remapping
36.2±0.2ms 36.2±0.4ms 1.00 mpas_ocean.RemapUpsample.time_inverse_distance_weighted_remapping
12.3±0.2ms 12.2±0.3ms 0.98 mpas_ocean.RemapUpsample.time_nearest_neighbor_remapping
10.00±0.09ms 9.89±0.09ms 0.99 mpas_ocean.ZonalAverage.time_zonal_average('120km')
5.69±0.05ms 5.63±0.05ms 0.99 mpas_ocean.ZonalAverage.time_zonal_average('480km')
358M 358M 1.00 mpas_ocean.ZonalAveragePeakMem.peakmem_zonal_average('120km')
342M 342M 1.00 mpas_ocean.ZonalAveragePeakMem.peakmem_zonal_average('480km')
6.83±0.03ms 6.79±0.03ms 0.99 quad_hexagon.QuadHexagon.time_open_dataset
5.81±0.02ms 5.79±0.05ms 1.00 quad_hexagon.QuadHexagon.time_open_grid
408 408 1.00 quad_hexagon.QuadHexagon.track_nbytes_open_dataset
392 392 1.00 quad_hexagon.QuadHexagon.track_nbytes_open_grid
73.8k 73.8k 1.00 quad_hexagon.QuadHexagon.track_peakmem_open_dataset
72.8k 73k 1.00 quad_hexagon.QuadHexagon.track_peakmem_open_grid

Benchmarks that have got worse:

Change Before [5e8021d] After [42fe87b] Ratio Benchmark (Parameter)
+ 882k 997k 1.13 bench_connectivity.ConnectivityTracemalloc.track_peakmem_face_face('480km')

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

benchmarking Related to benchmarks, memory usage, and/or time profiling run-benchmark Run ASV benchmark workflow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add connectivity peakmem benchmarks

1 participant