Repository: modin-project/modin

Issue:
ASV on successive launches, saves the latest version of the shapes in a separate file.
This effect is observed due to shapes that defined by the environment variable `MODIN_BACKEND` which in turn leads to the fact that different forms can be used from time to time.

Example:
`MODIN_BACKEND=omnisci MODIN_EXPERIMENTAL=true asv run ... -b ^omnisci ...`
`asv run ... -b ^benchmarks ...` In this case, the shapes will replace the previous ones `(Old: [[1_000_000, 10]] -> New: [[5000, 5000], [1_000_000, 10]])`




Discussion:

Resolving patch:
diff --git a/asv_bench/benchmarks/utils/data_shapes.py b/asv_bench/benchmarks/utils/data_shapes.py
--- a/asv_bench/benchmarks/utils/data_shapes.py
+++ b/asv_bench/benchmarks/utils/data_shapes.py
@@ -80,22 +80,6 @@
     ],
 }
 
-BINARY_SHAPES = (
-    OMNISCI_BINARY_OP_DATA_SIZE[ASV_DATASET_SIZE]
-    if ASV_USE_BACKEND == "omnisci"
-    else BINARY_OP_DATA_SIZE[ASV_DATASET_SIZE]
-)
-UNARY_SHAPES = (
-    OMNISCI_UNARY_OP_DATA_SIZE[ASV_DATASET_SIZE]
-    if ASV_USE_BACKEND == "omnisci"
-    else UNARY_OP_DATA_SIZE[ASV_DATASET_SIZE]
-)
-SERIES_SHAPES = (
-    OMNISCI_SERIES_DATA_SIZE[ASV_DATASET_SIZE]
-    if ASV_USE_BACKEND == "omnisci"
-    else SERIES_DATA_SIZE[ASV_DATASET_SIZE]
-)
-
 DEFAULT_GROUPBY_NGROUPS = {
     "big": [100, "huge_amount_groups"],
     "small": [5],
@@ -104,7 +88,7 @@
 
 _DEFAULT_CONFIG_T = [
     (
-        UNARY_SHAPES,
+        UNARY_OP_DATA_SIZE[ASV_DATASET_SIZE],
         [
             # Pandas backend benchmarks
             "TimeGroupByMultiColumn",
@@ -133,7 +117,32 @@
             # Scalability benchmarks
             "TimeFromPandas",
             "TimeToPandas",
-            # OmniSci backend benchmarks
+        ],
+    ),
+    (
+        BINARY_OP_DATA_SIZE[ASV_DATASET_SIZE],
+        [
+            # Pandas backend benchmarks
+            "TimeJoin",
+            "TimeMerge",
+            "TimeConcat",
+            "TimeAppend",
+            "TimeBinaryOp",
+        ],
+    ),
+    (
+        SERIES_DATA_SIZE[ASV_DATASET_SIZE],
+        [
+            # Pandas backend benchmarks
+            "TimeFillnaSeries",
+        ],
+    ),
+]
+
+_DEFAULT_OMNISCI_CONFIG_T = [
+    (
+        OMNISCI_UNARY_OP_DATA_SIZE[ASV_DATASET_SIZE],
+        [
             "omnisci.TimeJoin",
             "omnisci.TimeBinaryOpDataFrame",
             "omnisci.TimeArithmetic",
@@ -149,38 +158,28 @@
             "omnisci.TimeGroupByDefaultAggregations",
             "omnisci.TimeGroupByMultiColumn",
             "omnisci.TimeValueCountsDataFrame",
-            # OmniSci backend IO benchmarks
             "omnisci.TimeReadCsvNames",
         ],
     ),
     (
-        BINARY_SHAPES,
+        OMNISCI_BINARY_OP_DATA_SIZE[ASV_DATASET_SIZE],
         [
-            # Pandas backend benchmarks
-            "TimeJoin",
-            "TimeMerge",
-            "TimeConcat",
-            "TimeAppend",
-            "TimeBinaryOp",
-            # OmniSci backend benchmarks
             "omnisci.TimeMerge",
             "omnisci.TimeAppend",
         ],
     ),
     (
-        SERIES_SHAPES,
+        OMNISCI_SERIES_DATA_SIZE[ASV_DATASET_SIZE],
         [
-            # Pandas backend benchmarks
-            "TimeFillnaSeries",
-            # OmniSci backend benchmarks
             "omnisci.TimeBinaryOpSeries",
             "omnisci.TimeValueCountsSeries",
         ],
     ),
 ]
 DEFAULT_CONFIG = {}
-for _shape, _names in _DEFAULT_CONFIG_T:
-    DEFAULT_CONFIG.update({_name: _shape for _name in _names})
+for config in (_DEFAULT_CONFIG_T, _DEFAULT_OMNISCI_CONFIG_T):
+    for _shape, _names in config:
+        DEFAULT_CONFIG.update({_name: _shape for _name in _names})
 
 CONFIG_FROM_FILE = None
 


Test patch: