From af1fd523a25928d63b661004468378013262fd12 Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Mon, 21 Nov 2022 17:28:20 +0000 Subject: [PATCH] Better strategy for data realisation and ASV. --- benchmarks/benchmarks/ci/esmf_regridder.py | 16 +++++++++------- benchmarks/benchmarks/long/esmf_regridder.py | 7 ++++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/benchmarks/benchmarks/ci/esmf_regridder.py b/benchmarks/benchmarks/ci/esmf_regridder.py index 4059b22b..aa367675 100644 --- a/benchmarks/benchmarks/ci/esmf_regridder.py +++ b/benchmarks/benchmarks/ci/esmf_regridder.py @@ -16,7 +16,6 @@ ) from esmf_regrid.schemes import ESMFAreaWeightedRegridder -from .. import disable_repeat_between_setup from ..generate_data import _grid_cube, _gridlike_mesh_cube @@ -124,7 +123,6 @@ def time_perform_regridding(self, tp): _ = self.regridder(self.src) -@disable_repeat_between_setup class TimeLazyRegridding: def setup_cache(self): SYNTH_DATA_DIR = Path().cwd() / "tmp_data" @@ -172,8 +170,10 @@ def time_lazy_regridding(self, cache): _ = regridder(self.src) def time_regridding_realisation(self, cache): + # Don't touch result.data - permanent realisation plays badly with + # ASV's re-run strategy. assert self.result.has_lazy_data() - _ = self.result.data + self.result.core_data().compute() class TimeMeshToGridRegridding(TimeRegridding): @@ -208,7 +208,6 @@ def setup(self, tp): self.tgt = tgt -@disable_repeat_between_setup class TimeLazyMeshToGridRegridding: def setup_cache(self): SYNTH_DATA_DIR = Path().cwd() / "tmp_data" @@ -252,8 +251,10 @@ def time_lazy_regridding(self, cache): _ = regridder(self.src) def time_regridding_realisation(self, cache): + # Don't touch result.data - permanent realisation plays badly with + # ASV's re-run strategy. assert self.result.has_lazy_data() - _ = self.result.data + self.result.core_data().compute() class TimeGridToMeshRegridding(TimeRegridding): @@ -288,7 +289,6 @@ def setup(self, tp): self.tgt = tgt -@disable_repeat_between_setup class TimeLazyGridToMeshRegridding: def setup_cache(self): SYNTH_DATA_DIR = Path().cwd() / "tmp_data" @@ -328,8 +328,10 @@ def time_lazy_regridding(self, cache): _ = regridder(self.src) def time_regridding_realisation(self, cache): + # Don't touch result.data - permanent realisation plays badly with + # ASV's re-run strategy. assert self.result.has_lazy_data() - _ = self.result.data + self.result.core_data().compute() class TimeRegridderIO(MultiGridCompare): diff --git a/benchmarks/benchmarks/long/esmf_regridder.py b/benchmarks/benchmarks/long/esmf_regridder.py index 7baff174..2eddcc80 100644 --- a/benchmarks/benchmarks/long/esmf_regridder.py +++ b/benchmarks/benchmarks/long/esmf_regridder.py @@ -15,7 +15,7 @@ ) from esmf_regrid.schemes import ESMFAreaWeightedRegridder -from .. import disable_repeat_between_setup, skip_benchmark +from .. import skip_benchmark from ..generate_data import _grid_cube, _gridlike_mesh_cube @@ -126,7 +126,6 @@ def time_prepare(self, _, n): super().time_prepare(n) -@disable_repeat_between_setup class PerformScalabilityGridToGrid: params = [100, 200, 400, 600, 800, 1000] param_names = ["height"] @@ -192,8 +191,10 @@ def time_perform(self, cache, height): _ = rg(self.src) def time_lazy_perform(self, cache, height): + # Don't touch result.data - permanent realisation plays badly with + # ASV's re-run strategy. assert self.result.has_lazy_data() - _ = self.result.data + self.result.core_data().compute() class PerformScalabilityMeshToGrid(PerformScalabilityGridToGrid):