Skip to content

Connectivity peakmem benchmarks - #1661

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

cmdupuis3 wants to merge 12 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)
  • 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 [1e079ce] After [1ff5eef] Ratio Benchmark (Parameter)
1.17±0.02ms 1.19±0.02ms 1.02 bench_connectivity.Connectivity.time_edge_face('120km')
517±20μs 515±10μs 1.00 bench_connectivity.Connectivity.time_edge_face('480km')
6.61±0.2ms 6.51±0.03ms 0.99 bench_connectivity.Connectivity.time_edge_node('120km')
1.18±0.02ms 1.16±0.02ms 0.98 bench_connectivity.Connectivity.time_edge_node('480km')
64.4±7μs 71.3±8μs ~1.11 bench_connectivity.Connectivity.time_face_edge('120km')
61.9±2μs 60.1±6μs 0.97 bench_connectivity.Connectivity.time_face_edge('480km')
1.08±0.03ms 1.08±0.02ms 1.01 bench_connectivity.Connectivity.time_face_face('120km')
509±10μs 510±10μs 1.00 bench_connectivity.Connectivity.time_face_face('480km')
58.9±10μs 58.7±1μs 1.00 bench_connectivity.Connectivity.time_face_node('120km')
58.5±2μs 59.5±8μs 1.02 bench_connectivity.Connectivity.time_face_node('480km')
480±30μs 447±10μs 0.93 bench_connectivity.Connectivity.time_n_nodes_per_face('120km')
404±20μs 377±20μs 0.93 bench_connectivity.Connectivity.time_n_nodes_per_face('480km')
1.56±0.01ms 1.57±0.01ms 1.00 bench_connectivity.Connectivity.time_node_edge('120km')
520±20μs 502±20μs 0.97 bench_connectivity.Connectivity.time_node_edge('480km')
80.9±1ms 79.8±0.9ms 0.99 bench_connectivity.Connectivity.time_node_face('120km')
4.96±0.01ms 4.95±0.05ms 1.00 bench_connectivity.Connectivity.time_node_face('480km')
6.71M 6.71M 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_edge_face('120km')
435k 435k 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_edge_face('480km')
6.71M 6.71M 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_edge_node('120km')
435k 435k 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_edge_node('480km')
6.71M 6.71M 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_face_edge('120km')
435k 435k 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_face_edge('480km')
6.71M 6.71M 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_face_face('120km')
435k 435k 1.00 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')
240k 240k 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_n_nodes_per_face('120km')
25.9k 26.1k 1.01 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_n_nodes_per_face('480km')
6.71M 6.71M 1.00 bench_connectivity.ConnectivityChainTracemalloc.track_peakmem_node_edge('120km')
435k 435k 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')
1.42M 1.42M 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_edge_face('120km')
106k 106k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_edge_face('480km')
6.48M 6.48M 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_edge_node('120km')
417k 417k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_edge_node('480km')
2.42k 2.42k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_face_edge('120km')
2.42k 2.42k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_face_edge('480km')
1.6M 1.6M 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_face_face('120km')
101k 101k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_face_face('480km')
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')
240k 240k 1.00 bench_connectivity.ConnectivityTracemalloc.track_peakmem_n_nodes_per_face('120km')
25.9k 26.1k 1.01 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')
8.60±0.1ms 8.61±0.1ms 1.00 face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc'))
2.78±0.05ms 2.72±0.08ms 0.98 face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc'))
10.5±10s 10.1±10ms ~0.00 face_bounds.FaceBounds.time_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc'))
2.26±0.03ms 2.18±0.04ms 0.96 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.99M 1.99M 1.00 face_bounds.FaceBounds.track_peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc'))
1.99M 1.99M 1.00 face_bounds.FaceBounds.track_peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc'))
2.16M 2.16M 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.4k 1.00 face_bounds.FaceBounds.track_peakmem_face_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc'))
330M 330M 1.00 face_bounds.FaceBoundsColdStartRss.peakmem_open_and_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/mpas/QU/oQU480.231010.nc'))
362M 360M 0.99 face_bounds.FaceBoundsColdStartRss.peakmem_open_and_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/scrip/outCSne8/outCSne8.nc'))
331M 331M 1.00 face_bounds.FaceBoundsColdStartRss.peakmem_open_and_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/geoflow-small/grid.nc'))
330M 331M 1.00 face_bounds.FaceBoundsColdStartRss.peakmem_open_and_bounds(PosixPath('/home/runner/work/uxarray/uxarray/test/meshfiles/ugrid/quad-hexagon/grid.nc'))
1.23±0.05μs 1.23±0.02μs 1.00 geometry_kernels.AccucrossKernels.time_accucross
2.68±0.07μs 2.70±0.02μs 1.01 geometry_kernels.AccucrossKernels.time_accucross_pair
461±20ns 441±20ns 0.96 geometry_kernels.EFTPrimitives.time_acc_sqrt_re
436±30ns 476±30ns 1.09 geometry_kernels.EFTPrimitives.time_diff_of_products
376±20ns 381±10ns 1.01 geometry_kernels.EFTPrimitives.time_two_prod
376±30ns 381±20ns 1.01 geometry_kernels.EFTPrimitives.time_two_sum
671±10ns 672±20ns 1.00 geometry_kernels.GCAConstLatIntersection.time_accux_constlat_kernel
736±10ns 741±20ns 1.01 geometry_kernels.GCAConstLatIntersection.time_gca_const_lat_intersection
857±30ns 827±10ns 0.97 geometry_kernels.GCAConstLatIntersection.time_try_gca_const_lat_intersection
812±7ns 827±20ns 1.02 geometry_kernels.GCAGCAIntersection.time_accux_gca_kernel
917±30ns 927±30ns 1.01 geometry_kernels.GCAGCAIntersection.time_gca_gca_intersection
1.05±0.03μs 1.07±0.03μs 1.01 geometry_kernels.GCAGCAIntersection.time_try_gca_gca_intersection
52.5±0.4μs 50.9±0.2μs 0.97 geometry_kernels.OrientPredicates.time_on_minor_arc
1.10±0.08μs 1.12±0.06μs 1.01 geometry_kernels.OrientPredicates.time_orient3d_on_sphere
3.07±0.01ms 3.07±0.01ms 1.00 geometry_samebody.SameBodyConstLat.time_accux_dispatch
1.17±0ms 1.17±0ms 1.00 geometry_samebody.SameBodyConstLat.time_accux_kernel
2.31±0.01ms 2.31±0.01ms 1.00 geometry_samebody.SameBodyConstLat.time_fp64_dispatch
153±6μs 151±1μs 0.99 geometry_samebody.SameBodyConstLat.time_fp64_kernel
29.6±0.05ms 29.4±0.04ms 0.99 geometry_samebody_gcagca.SameBodyGcaGca.time_accux_dispatch
6.29±0ms 6.31±0ms 1.00 geometry_samebody_gcagca.SameBodyGcaGca.time_accux_kernel
23.7±0.02ms 23.7±0.05ms 1.00 geometry_samebody_gcagca.SameBodyGcaGca.time_fp64_dispatch
879±3μs 886±2μs 1.01 geometry_samebody_gcagca.SameBodyGcaGca.time_fp64_kernel
858±6ms 859±10ms 1.00 import.Imports.timeraw_import_uxarray
288M 288M 1.00 import.Imports.track_peakmem_import_uxarray
2.72±0.07ms 2.71±0.03ms 1.00 mpas_ocean.CheckNorm.time_check_norm('120km')
2.18±0.01ms 2.19±0.03ms 1.01 mpas_ocean.CheckNorm.time_check_norm('480km')
1.22±0.02ms 1.23±0.01ms 1.01 mpas_ocean.ConnectivityConstruction.time_face_face_connectivity('120km')
563±10μs 567±20μs 1.01 mpas_ocean.ConnectivityConstruction.time_face_face_connectivity('480km')
721±10μs 715±6μs 0.99 mpas_ocean.ConnectivityConstruction.time_n_nodes_per_face('120km')
629±10μs 624±10μs 0.99 mpas_ocean.ConnectivityConstruction.time_n_nodes_per_face('480km')
5.36±0.03ms 5.41±0.04ms 1.01 mpas_ocean.ConstructFaceLatLon.time_cartesian_averaging('120km')
3.87±0.02ms 3.92±0.03ms 1.01 mpas_ocean.ConstructFaceLatLon.time_cartesian_averaging('480km')
99.7±0.1ms 99.9±0.2ms 1.00 mpas_ocean.ConstructFaceLatLon.time_welzl('120km')
10.8±0.03ms 10.6±0.4ms 0.98 mpas_ocean.ConstructFaceLatLon.time_welzl('480km')
18.2±0.01ms 18.5±0.3ms 1.02 mpas_ocean.ConstructTreeStructures.time_ball_tree('120km')
1.05±0.01ms 1.05±0.01ms 1.00 mpas_ocean.ConstructTreeStructures.time_ball_tree('480km')
10.6±0.03ms 10.6±0.01ms 1.00 mpas_ocean.ConstructTreeStructures.time_kd_tree('120km')
730±10μs 734±10μs 1.01 mpas_ocean.ConstructTreeStructures.time_kd_tree('480km')
597±10ms 583±7ms 0.98 mpas_ocean.CrossSections.time_const_lat('120km', 1)
301±2ms 298±3ms 0.99 mpas_ocean.CrossSections.time_const_lat('120km', 2)
154±0.6ms 154±2ms 1.00 mpas_ocean.CrossSections.time_const_lat('120km', 4)
535±7ms 534±3ms 1.00 mpas_ocean.CrossSections.time_const_lat('480km', 1)
273±6ms 268±0.7ms 0.98 mpas_ocean.CrossSections.time_const_lat('480km', 2)
140±1ms 140±0.3ms 1.00 mpas_ocean.CrossSections.time_const_lat('480km', 4)
356M 356M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('120km', 1)
356M 356M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('120km', 2)
356M 356M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('120km', 4)
335M 335M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('480km', 1)
335M 335M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('480km', 2)
335M 335M 1.00 mpas_ocean.CrossSectionsPeakMem.peakmem_const_lat('480km', 4)
25.5±0.7ms 24.8±0.2ms 0.97 mpas_ocean.DualMesh.time_dual_mesh_construction('120km')
3.47±0.08ms 3.25±0.05ms 0.94 mpas_ocean.DualMesh.time_dual_mesh_construction('480km')
14.2±0.09ms 14.2±0.06ms 1.00 mpas_ocean.FaceAreas.time_face_areas('120km')
4.34±0.1ms 4.38±0.03ms 1.01 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')
729k 729k 1.00 mpas_ocean.FaceAreas.track_peakmem_face_areas('480km')
failed failed n/a mpas_ocean.GeoDataFrame.time_to_geodataframe('120km', False)
failed failed n/a mpas_ocean.GeoDataFrame.time_to_geodataframe('120km', True)
failed failed n/a mpas_ocean.GeoDataFrame.time_to_geodataframe('480km', False)
failed failed n/a mpas_ocean.GeoDataFrame.time_to_geodataframe('480km', True)
14.6±0.2ms 14.5±0.1ms 0.99 mpas_ocean.Gradient.time_gradient('120km')
2.06±0.01ms 2.08±0.01ms 1.01 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')
3.43M 3.43M 1.00 mpas_ocean.Gradient.track_peakmem_gradient('120km')
218k 218k 1.00 mpas_ocean.Gradient.track_peakmem_gradient('480km')
348M 349M 1.00 mpas_ocean.GradientColdStartRss.peakmem_gradient('120km')
327M 326M 1.00 mpas_ocean.GradientColdStartRss.peakmem_gradient('480km')
380±9μs 381±7μs 1.00 mpas_ocean.HoleEdgeIndices.time_construct_hole_edge_indices('120km')
200±5μs 198±7μs 0.99 mpas_ocean.HoleEdgeIndices.time_construct_hole_edge_indices('480km')
540±8μs 507±10μs 0.94 mpas_ocean.Integrate.time_integrate('120km')
471±10μs 438±10μs 0.93 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')
failed failed n/a mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('120km', 'exclude')
failed failed n/a mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('120km', 'include')
failed failed n/a mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('120km', 'split')
failed failed n/a mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('480km', 'exclude')
failed failed n/a mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('480km', 'include')
failed failed n/a mpas_ocean.MatplotlibConversion.time_dataarray_to_polycollection('480km', 'split')
237±0.4ms 238±0.6ms 1.01 mpas_ocean.NeighborhoodBuild.time_build('120km', 1.0)
1.27±0s 1.27±0s 1.00 mpas_ocean.NeighborhoodBuild.time_build('120km', 15.0)
491±2ms 491±1ms 1.00 mpas_ocean.NeighborhoodBuild.time_build('120km', 5.0)
12.9±0.09ms 12.9±0.04ms 1.00 mpas_ocean.NeighborhoodBuild.time_build('480km', 1.0)
25.0±0.4ms 24.8±0.04ms 0.99 mpas_ocean.NeighborhoodBuild.time_build('480km', 15.0)
16.0±0.02ms 16.1±0.06ms 1.01 mpas_ocean.NeighborhoodBuild.time_build('480km', 5.0)
233±0.4ms 233±0.2ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('120km', 1.0)
1.25±0s 1.25±0s 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('120km', 15.0)
485±0.9ms 485±0.6ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('120km', 5.0)
12.5±0.03ms 12.6±0.02ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('480km', 1.0)
24.1±0.03ms 24.2±0.3ms 1.00 mpas_ocean.NeighborhoodBuild.time_query_radius('480km', 15.0)
15.6±0.05ms 15.7±0.09ms 1.01 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.6±0.4ms 44.7±0.5ms 1.00 mpas_ocean.NeighborhoodDask.time_mean('120km', 'grid_chunks')
22.7±0.07ms 22.7±0.06ms 1.00 mpas_ocean.NeighborhoodDask.time_mean('120km', 'numpy')
42.1±0.9ms 41.8±0.5ms 0.99 mpas_ocean.NeighborhoodDask.time_mean('120km', 'time_chunks')
12.2±0.1ms 11.7±0.06ms 0.96 mpas_ocean.NeighborhoodDask.time_mean('480km', 'grid_chunks')
672±20μs 660±10μs 0.98 mpas_ocean.NeighborhoodDask.time_mean('480km', 'numpy')
8.69±0.1ms 8.77±0.3ms 1.01 mpas_ocean.NeighborhoodDask.time_mean('480km', 'time_chunks')
5.75M 5.75M 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.69M 5.67M 1.00 mpas_ocean.NeighborhoodDask.track_peakmem_mean('120km', 'time_chunks')
645k 696k 1.08 mpas_ocean.NeighborhoodDask.track_peakmem_mean('480km', 'grid_chunks')
177k 177k 1.00 mpas_ocean.NeighborhoodDask.track_peakmem_mean('480km', 'numpy')
545k 529k 0.97 mpas_ocean.NeighborhoodDask.track_peakmem_mean('480km', 'time_chunks')
12.3±0.01s 12.3±0.01s 1.00 mpas_ocean.NeighborhoodReduce.time_dataset_reduce('120km', 'mean')
13.0±0.02s 13.0±0.02s 1.00 mpas_ocean.NeighborhoodReduce.time_dataset_reduce('120km', 'median')
225±0.5ms 225±0.4ms 1.00 mpas_ocean.NeighborhoodReduce.time_dataset_reduce('480km', 'mean')
233±0.8ms 233±0.1ms 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.50±0s 1.00 mpas_ocean.NeighborhoodReduce.time_neighborhood_reduce('120km', 'median')
25.3±0.1ms 25.1±0.09ms 0.99 mpas_ocean.NeighborhoodReduce.time_neighborhood_reduce('480km', 'mean')
26.8±0.3ms 26.7±0.07ms 1.00 mpas_ocean.NeighborhoodReduce.time_neighborhood_reduce('480km', 'median')
40.1±0.04ms 40.1±0.02ms 1.00 mpas_ocean.NeighborhoodReduce.time_reduce('120km', 'mean')
233±0.2ms 233±0.09ms 1.00 mpas_ocean.NeighborhoodReduce.time_reduce('120km', 'median')
627±20μs 621±20μs 0.99 mpas_ocean.NeighborhoodReduce.time_reduce('480km', 'mean')
2.00±0.03ms 2.00±0.03ms 1.00 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')
400±10μs 400±9μs 1.00 mpas_ocean.PointInPolygon.time_face_search_lonlat('120km')
379±5μs 392±20μs 1.03 mpas_ocean.PointInPolygon.time_face_search_lonlat('480km')
375±20μs 373±9μs 0.99 mpas_ocean.PointInPolygon.time_face_search_xyz('120km')
345±2μs 349±8μs 1.01 mpas_ocean.PointInPolygon.time_face_search_xyz('480km')
235±0.6ms 233±0.9ms 0.99 mpas_ocean.RemapDownsample.time_bilinear_remapping
287±2ms 294±0.9ms 1.03 mpas_ocean.RemapDownsample.time_inverse_distance_weighted_remapping
15.8±0.07ms 15.8±0.1ms 1.00 mpas_ocean.RemapDownsample.time_nearest_neighbor_remapping
1.37±0.01s 1.37±0s 1.00 mpas_ocean.RemapUpsample.time_bilinear_remapping
37.1±0.2ms 37.5±0.09ms 1.01 mpas_ocean.RemapUpsample.time_inverse_distance_weighted_remapping
12.5±0.2ms 12.3±0.4ms 0.98 mpas_ocean.RemapUpsample.time_nearest_neighbor_remapping
9.46±0.1ms 9.56±0.05ms 1.01 mpas_ocean.ZonalAverage.time_zonal_average('120km')
5.42±0.05ms 5.36±0.03ms 0.99 mpas_ocean.ZonalAverage.time_zonal_average('480km')
358M 358M 1.00 mpas_ocean.ZonalAveragePeakMem.peakmem_zonal_average('120km')
337M 336M 1.00 mpas_ocean.ZonalAveragePeakMem.peakmem_zonal_average('480km')
6.69±0.04ms 6.74±0.05ms 1.01 quad_hexagon.QuadHexagon.time_open_dataset
5.75±0.06ms 5.79±0.03ms 1.01 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
74k 74k 1.00 quad_hexagon.QuadHexagon.track_peakmem_open_dataset
73.1k 73.1k 1.00 quad_hexagon.QuadHexagon.track_peakmem_open_grid

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