From 00f42892a41198d94f1564a33fe2fce8b82eaad7 Mon Sep 17 00:00:00 2001 From: Ruben Arts Date: Mon, 6 Jan 2025 09:33:56 +0100 Subject: [PATCH] add more information to the statistics output --- tools/solve-snapshot/timing_comparison.ipynb | 227 +++++++++++++++++-- 1 file changed, 208 insertions(+), 19 deletions(-) diff --git a/tools/solve-snapshot/timing_comparison.ipynb b/tools/solve-snapshot/timing_comparison.ipynb index 5bab85c..4936b47 100644 --- a/tools/solve-snapshot/timing_comparison.ipynb +++ b/tools/solve-snapshot/timing_comparison.ipynb @@ -2,13 +2,60 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "e2ecd20f-bd4f-4a4a-82d0-28d2d9db18ac", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "base_timings.csv: 1000 records\n", + "timings.csv: 1000 records\n", + "\n", + "Summary for base_timings.csv:\n", + "- Average Solve Time: 1.40 seconds (mean of all durations)\n", + "- Median Solve Time: 0.47 seconds (middle value when sorted)\n", + "- Standard Deviation: 3.26 seconds (spread of durations around the mean)\n", + "- Minimum Solve Time: 0.00 seconds (shortest solve duration)\n", + "- Maximum Solve Time: 50.00 seconds (longest solve duration, capped at 50s)\n", + "- 25th Percentile: 0.14 seconds (25% of solves were faster than this)\n", + "- 75th Percentile: 2.03 seconds (75% of solves were faster than this)\n", + "- Number of Outliers: 3 (solves capped at 50s)\n", + "\n", + "Summary for timings.csv:\n", + "- Average Solve Time: 0.83 seconds (mean of all durations)\n", + "- Median Solve Time: 0.35 seconds (middle value when sorted)\n", + "- Standard Deviation: 2.95 seconds (spread of durations around the mean)\n", + "- Minimum Solve Time: 0.00 seconds (shortest solve duration)\n", + "- Maximum Solve Time: 50.00 seconds (longest solve duration, capped at 50s)\n", + "- 25th Percentile: 0.11 seconds (25% of solves were faster than this)\n", + "- 75th Percentile: 0.89 seconds (75% of solves were faster than this)\n", + "- Number of Outliers: 3 (solves capped at 50s)\n", + "\n", + "Comparison between the datasets:\n", + "- Average Solve Time: 'timings.csv' was 1.68 times faster than 'base_timings.csv'\n", + "- Median Solve Time: 'timings.csv' was 1.33 times faster than 'base_timings.csv'\n", + "- 25th Percentile: 'timings.csv' was 1.22 times faster than 'base_timings.csv'\n", + "- 75th Percentile: 'timings.csv' was 2.28 times faster than 'base_timings.csv'\n", + "- Outliers: 'timings.csv' had 0 fewer solves capped at 50s\n" + ] + }, + { + "data": { + "image/png": "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gt5880317t07y74UKVJEXbp0kfS/y4zT/m3fvr11/zMAoGAQaAEAOXL06FF98sknGZanpqZq3LhxkqSqVauqZs2akqSAgABJ10ZLMwt8a9asyTLsJCQkZNsXb29vSdcmTErj5uamgQMHSpI++eSTDDMnXy9tAqn8SAvQFy9ezPe2nE1wcLBatmwpSZo0aZISExMzlPnuu++0adOmTOvn5TW+ER8fH2tEdPz48dYfVW4kv31Ju6z466+/1oEDB6yRWi43BoCCR6AFAORIQECAhgwZopkzZyo+Pl7StVHYXr16acOGDZKkN954wyp/7733SpJ2796toUOHWgEyLi5OH330kbp162ZNJHW9CRMmqH379po/f77dpc4JCQlasmSJJk6cKEnq0KGDXb2XXnpJFSpUUHJysu69915NnjzZbvKiS5cu6auvvlL//v2zfJxMbtSoUcPaxx9//DHf23M2r7zyimw2m37//Xd17tzZemRQcnKyli9frgcffFBBQUGZ1s3ra3z48GFrluzMLgF+4403FBISonPnzqlJkyZasmSJdW9rQkKCdu7cqeeff95uEqennnpKDz30kD7//HO7Sc1iY2P14Ycfat68eZn2JU2bNm1UvHhxJScnq3fv3rp69aqCgoLUqVOnGx1CAEB+3dSn3gIAnE5kZKSRZF544QXTtGlTI8m4u7uboKAgI8n6evHFFzPU7dmzp12ZwMBA4+rqaiSZO++807z33ntGkomIiLCrN2bMGLt63t7eJjg42NhsNmtZ1apVzcmTJzO0efDgQVO7du0M7fr7+9stq1ixYr6PTVJSkqlcubK1zaCgIBMREWEiIiLM0qVLrXL9+/c3kkz//v2zPL5jxozJsp2IiAgjycyZMyfLMml92LBhg93yDRs2WOuuN2fOnEyPf3qHDh2y6h86dCjD+ilTpmQ41p6enkaSqVGjhrW+cuXKdvXy+hqn709Wx+yXX34xJUuWtMq5urqaoKAgu21PmTLFKp/2+qR9+fn5mcDAQLtlTZs2NbGxsVkep+HDh9uVf/zxx7MsCwBwHEZoAQA54uHhofXr12vcuHGqXLmyEhISFBAQoFatWmn16tV67bXXMtT59NNPNXXqVNWqVUuenp5KSUlRzZo19eabb+qHH36Qn59fpm0NHjxYM2bMUK9evVSjRg35+Pjo8uXLCgoKUrNmzTR1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cMxyj2OWNxy32wuvp+OlfUYdMmSIZs6cqQ0bNmjw4MH66quvMv2Mmn5+mfvvv18vv/yyli9fro0bN2rhwoW69957tXHjRr3xxhsZJu+S/vcZdcaMGdb69Fcgrlu3Tk8++WSWVyD+Y+X1eT/fffedcXd3Nzabzbi4uBgXFxe773P65erqmtcuOATPob09v64XExNjnnnmGVO8eHHj4eFhatWqZRYuXGhXJu0ZtIcOHbKWDRs2zPj6+hpJxsXFxRQtWtRUrFjRSDILFiywyg0cONC4urqaQ4cOmWbNmpmhQ4eap556ykgy4eHhpkiRImbAgAGmbNmyxtXV1UgyL7zwQob669atM15eXmbz5s1WfQ8PD+Pv729q1aplGjdubCQZT09PEx0dbVf38OHDZs+ePVb9pUuXmqVLl5o33njDSDLlypUzL730kmnVqpUJCAgw0dHRpk2bNiYoKMjMmDHDzJ071+pb2r4lJCQYX19fY7PZzIIFC8ygQYOsumnbnzBhgpFkhg4dai3LTPq+GWOstoODg02TJk1Mhw4djCTj7e2d6b6ll5+209p9//33TVhYmImIiDCSTIsWLax9K4h2b+U+56ft+Ph4U716dVO6dGnz6aefmm+++cY88MADxs3NzURFReWobWOuvZciIiJMly5dzDfffGP3Xsqv9O/jb7/91jz22GNZ/o46274VFI5Z7nHM8objdnvh9XS8vH5GnTBhgmnQoIEJCgoyrq6upmjRoqZdu3Zm1aqMn4ONMSY1NdX6jHq9X375xdx1113G19fX1KxZ06xbt86h+3gj+c1jNmPy/ieNLVu26J133tGuXbt05coVHT58WK6uripVqlSutnPo0KG8diHfqlevLul/04X/02T2CBsUrMPjO9r9HBsbq3//+99asmSJzp8/rypVquiFF15Qz549rTIDBgzQJ598okOHDlmjw2XLlrX7S1p6ISEhdvc2pNVv0KCBGjZsqGnTpmVbPywsTKdOnbKre/DgQfXv31+1atXStGnTsp18Yd26dWrVqpXdvp0+fVrBwcGaNm2a3b7dd999WrVqlby9vVWxYkVNmTJFrVq1ynb7159WjDGKjIy0+pb+uH766ac6f/68bDabSpYsqTlz5qhVq1ZZHlcp+4klbtR2+n0+d+6c3N3dlZKSojvuuMPat4Jo91buc37bPn36tEaOHKlV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X375JVfbrVmzpmbOnKkmTZpIkr755psc17377rslSadPn9a2bdty1e71XFxcdNddd2nZsmUqU6ZMln255557VKpUKaWmpuqzzz6z/pUYnQWAwsihgXbSpEkyxmjixIk3vPzorbfeUkpKit566y1r2ejRoyX9b5IJAACu5+/vL0m6ePHire3ITda2bVtr38eNG5dpmSlTpujKlSuZrktISMh2+97e3pIkV1fXHPepZcuWKl++vCTp2WefVWJiYo7qZdcXV1dX64/hmfXFxcVFDz/8sKRrI7NpI7Wurq7MwwEAhZBDA+22bdsUGBiYoxmLS5UqpcDAQG3dutVaVrlyZfn4+OjMmTOO7BYA4DaSdknpl19+aV1yWhj4+vpq1KhRkqSZM2dq5MiR1kzIMTExmjBhgsaOHaugoKBM63fp0kUDBw7UmjVr7P4YcP78eb3++uvWI286dOhgV2/u3Lmy2Wyy2WyKioqyW+fq6qpp06bJZrPp+++/V6tWrfT9998rNTVVknT58mVFRUWpT58++uOPP6x6jRo10jPPPKOoqCjFxcVZy0+cOKGnn35af/75Z6Z9SZM2Ertr1y698MILkq4F/vQzVAMACgeHznIcExOj1NRUJSUlyd3dPduyiYmJiouLy/DXV3d3d6WkpDiyWwCA20j//v01adIk/fnnnypTpoyKFSsmLy8vSdL333+vUqVK3eIeFpyRI0dqx44dWrZsmSZOnKhJkyYpICBAly9fVkpKivr27SubzaZ58+ZZxyTN1atXNWfOHM2ZM0fS/0a6055tK0ndunWz7qfNqfbt22vu3LkaPHiwvv/+ezVr1kyenp7y9va2C84jRoywvr948aLee+89vffee7LZbAoICFBSUpJduH322WfVtm3bTNusVq2a6tWrp+3bt1uXOnO5MQAUTg4doS1btqySkpKse1mys3DhQiUlJdlN9R8bG6tLly5ZE18AAHC9SpUqacOGDercubOKFSumc+fO6ciRIzpy5EieH6PjLNzc3LRkyRJ9/PHHatiwoby9vZWcnKz69evr448/1rx586wQGRgYaFf3vffe04QJE9ShQwdVqlRJxhhdvXpV4eHh6ty5sz7//HMtXbo0T4+86devn/bu3athw4apWrVqcnNzU2JioipUqKAuXbpo/vz5qlq1qlV+0aJFeuWVV9SqVSuVK1dOiYmJ1meCHj16aP369Zo8efIN20zj7++v+++/P9f9BgA4P5tx4KwaY8aM0WuvvSYfHx/NnDlTvXr1yrTcokWLNGjQIF29elUvvviiXnnlFUnSpk2bFBkZqfbt22v16tWO6hYAAIWCMUZlypTRsWPHNG/ePLvntAIAcDtyaKC9cuWKGjRooD179shms6ls2bJq3ry5wsPDZbPZdOLECW3cuFGHDx+WMUZVq1bVzz//LB8fH0nSY489plmzZmnSpEl69tlnHdUtAAAKhXnz5ql///5yc3PTkSNHFB4efqu7BABAgXJooJWk6Oho9evXT2vXrr3WwHWzHac116ZNG82bN89uAod9+/YpPj5eFSpUkJ+fnyO7BQDAbaFXr1568MEH1aJFC4WEhEi69ticOXPmaMyYMUpMTNTAgQM1a9asW9xTAAAKnsMDbZoffvhBS5cu1fbt2xUdHS1jjEJDQ1WvXj1169ZNTZs2LYhmAQC4rQUGBurSpUuSJB8fH7m7u1s/S1KzZs20atUqa9InAABuZwUWaAEAgOPNmzdPa9as0Y4dO3TmzBnFxsYqMDBQderUUc+ePdW3b98bPmkAAIDbBYEWAAAAAOCUHPrYHgAAAAAAbha3gtrwsWPH9OOPP+rYsWOKi4tTdgPBL7/8ckF1AwAAAABwm3L4Jcdnz57VE088of/85z/Zhljp2ozHNptNKSkpjuwCAAAAAKAQcOglx3FxcWrRooVWrFghd3d3NWjQQMYYubu7q0mTJqpQoYKMMTLGKCgoSJGRkWrevLkju/CPs2PHDnXp0kXh4eHy8fFRlSpV9Oqrr+rKlSt25bZv367WrVvLz89PgYGB6tq1qw4ePJijNv7973+rbt26Cg4OlpeXl8qXL6/BgwfryJEjduUuXLigXr16KSgoSOXLl9eMGTMybGvr1q3y9vbWnj178r7TAAAAAHATODTQTp8+XX/88YcqV66sgwcPasuWLZKk4OBgfffdd9q/f78OHTqkhx56SBcvXtS9996rDRs2OLIL/yh//PGH7r77bh0+fFhTp07VqlWr1LNnT7366qvq1auXVW7v3r1q0aKFEhMTtWTJEs2ePVv79+9Xs2bNFB0dfcN2Ll68qF69eumTTz7RV199pREjRmjVqlVq1KiRzp07Z5V77rnntGPHDi1YsEBPP/20hgwZok2bNlnrk5OTNXjwYI0cOVJVq1Z17MEAAAAAAAdz6CXHjRs31k8//aTly5fr/vvvlyS5uLioePHiOnHihF3Z3r17a/Hixfr666/VqlUrR3Uh14oXL664uDiVKVPG4ds+c+aMzp49q4oVK8rDw8NafuLECV28eFGVK1eWq6urdZ9xxYoV5erqKklKTEzUn3/+qaJFiyosLCzXbcfExOjvv/9WiRIlFBQUJEnat2+fihcvroCAAEnSkSNH5OXlZW3/7NmzunjxosqXLy8XF+YLAwAAAFCwjh49Kl9fX506dSpP9R2aWvbu3StJuvfee+2WJyUlZSj7xhtvyBij9957z5FdyLW4uLhM++cINptNkjKEw7TQarPZZIxRTEyM/P39reWS5OHhIV9fX8XExOSpbTc3N7s+SNfuWU7fFxcXF+s+58TEREVHR6tEiRKEWQAAAAA3RVJSkuLi4vJc36EjtN7e3vLx8bG7zNXHx0fGGF29ejVD+aCgIHl7e2cYvb2ZqlevLknavXu3w7d9+PBh1a1bV61bt9aECRNUrFgxbdy4UX369FG/fv307rvvat++fapSpYqmT5+uJ5980q7+888/r0mTJunKlSvy8vK6YXvJyclKSkrS3r179fTTTys6Olq//PKL/Pz8JEnt27dXSkqKFixYoAMHDqht27aaM2eOHnroIbVr106lSpXSrFmzHH4cAAAAACAz+c1jDh2KCwsL0+XLl5WammotK1asmBITE3Xs2DG7sikpKYqLi7MLv7ebsmXLavPmzfr9999VoUIF+fv767777lP//v31zjvvSJK1/8HBwRnqBwcHyxijCxcu3LCtU6dOyd3dXT4+PqpXr56Sk5O1YcMGK8xK0tSpU3X48GGFhYWpadOm6tmzp7p3764FCxbo119/1cSJEx205wAAAABQ8BwaaCMiIpSammo34lqnTh1J0ooVK+zKfvHFF0pOTlZoaKgju/CPcvjwYd13330qWrSoli1bpo0bN+qtt97S3LlzNWjQILuy6S8Nvl5269KEhITo559/1vfff6+ZM2fq/PnzatmypU6ePGmVqVy5svbu3asDBw4oOjpas2bN0oULFzR8+HBNmTJFwcHBev/991WhQgWFhITo4YcfzlGYBgAAAIBbwc2RG2vVqpW+//57ffvtt+rXr58kqUePHvrvf/+rF154QfHx8apTp45+++03vf7667LZbGrf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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "import polars as pl\n", "import matplotlib.pyplot as plt\n", + "import numpy as np\n", "\n", "plt.rcParams['figure.dpi'] = 150\n", "plt.rcParams['savefig.dpi'] = 150\n", @@ -25,7 +72,7 @@ " for path in paths\n", "]\n", "\n", - "for path, df in zip(paths,dfs):\n", + "for path, df in zip(paths, dfs):\n", " count = df.select(pl.len()).item()\n", " print(f\"{path}: {count} records\")\n", "\n", @@ -41,27 +88,94 @@ "# Create the histogram\n", "fig, axs = plt.subplots(2, sharex=True)\n", "\n", - "for path, df_capped, axs in zip(paths, dfs_capped, axs):\n", - " values, bins, bars = axs.hist(df_capped[\"duration\"], bins=bins, density=True)\n", - " axs.set_title(path)\n", - " axs.bar_label(bars, fontsize=8, color='black', labels = [f'{x.get_height():.1%}' for x in bars])\n", - " axs.tick_params(axis='y', which='both', left=False, top=False, labelleft=False)\n", + "stats = []\n", + "\n", + "for path, df_capped, ax in zip(paths, dfs_capped, axs):\n", + " # Extract the capped duration values\n", + " values = df_capped[\"duration\"].to_numpy().flatten()\n", + " \n", + " # Calculate key statistics\n", + " mean = np.mean(values)\n", + " median = np.median(values)\n", + " std_dev = np.std(values)\n", + " min_value = np.min(values)\n", + " max_value = np.max(values)\n", + " percentile_25 = np.percentile(values, 25)\n", + " percentile_75 = np.percentile(values, 75)\n", + " outliers = sum(values >= threshold)\n", + " \n", + " # Store for comparison later\n", + " stats.append({\n", + " \"path\": path,\n", + " \"mean\": mean,\n", + " \"median\": median,\n", + " \"std_dev\": std_dev,\n", + " \"min\": min_value,\n", + " \"max\": max_value,\n", + " \"p25\": percentile_25,\n", + " \"p75\": percentile_75,\n", + " \"outliers\": outliers\n", + " })\n", + " \n", + " # Print detailed statistics with explanations\n", + " print(f\"\\nSummary for {path}:\")\n", + " print(f\"- Average Solve Time: {mean:.2f} seconds (mean of all durations)\")\n", + " print(f\"- Median Solve Time: {median:.2f} seconds (middle value when sorted)\")\n", + " print(f\"- Standard Deviation: {std_dev:.2f} seconds (spread of durations around the mean)\")\n", + " print(f\"- Minimum Solve Time: {min_value:.2f} seconds (shortest solve duration)\")\n", + " print(f\"- Maximum Solve Time: {max_value:.2f} seconds (longest solve duration, capped at {threshold}s)\")\n", + " print(f\"- 25th Percentile: {percentile_25:.2f} seconds (25% of solves were faster than this)\")\n", + " print(f\"- 75th Percentile: {percentile_75:.2f} seconds (75% of solves were faster than this)\")\n", + " print(f\"- Number of Outliers: {outliers} (solves capped at {threshold}s)\")\n", + "\n", + " # Plot histogram\n", + " values, bins, bars = ax.hist(values, bins=bins, density=True)\n", + " ax.set_title(path)\n", + " ax.bar_label(bars, fontsize=8, color='black', labels=[f'{x.get_height():.1%}' for x in bars])\n", + " ax.tick_params(axis='y', which='both', left=False, top=False, labelleft=False)\n", + "\n", + "# Compare the datasets (assuming two datasets for comparison)\n", + "if len(stats) == 2:\n", + " print(\"\\nComparison between the datasets:\")\n", + " mean_diff = stats[0][\"mean\"] / stats[1][\"mean\"]\n", + " median_diff = stats[0][\"median\"] / stats[1][\"median\"]\n", + " print(f\"- Average Solve Time: '{stats[1]['path']}' was {mean_diff:.2f} times faster than '{stats[0]['path']}'\")\n", + " print(f\"- Median Solve Time: '{stats[1]['path']}' was {median_diff:.2f} times faster than '{stats[0]['path']}'\")\n", + "\n", + " p25_diff = stats[0][\"p25\"] / stats[1][\"p25\"]\n", + " p75_diff = stats[0][\"p75\"] / stats[1][\"p75\"]\n", + " print(f\"- 25th Percentile: '{stats[1]['path']}' was {p25_diff:.2f} times faster than '{stats[0]['path']}'\")\n", + " print(f\"- 75th Percentile: '{stats[1]['path']}' was {p75_diff:.2f} times faster than '{stats[0]['path']}'\")\n", + "\n", + " outlier_diff = stats[0][\"outliers\"] - stats[1][\"outliers\"]\n", + " print(f\"- Outliers: '{stats[1]['path']}' had {outlier_diff} fewer solves capped at {threshold}s\")\n", "\n", "# Add labels to the ticks\n", "fig.supxlabel(\"Solve duration in seconds\")\n", "fig.supylabel(\"Percentage of solves\")\n", "fig.suptitle(\"Histogram of solve durations\")\n", "\n", - "\n", - "plt.show()\n" + "plt.tight_layout()\n", + "plt.show()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "88f7081d-d2bf-4fb7-86ab-7fd22dce0202", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKAAAALfCAYAAABW/bqSAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAXEgAAFxIBZ5/SUgAAwVFJREFUeJzs3Xd8VFX6x/HvpPdCQAhBQkAIZSkBpAiIVEVAqgVBmgW7gKsoqws2dN1dWCzYBZGqIGBQESlRuighIIYihBI6IYSQXu7vj/nNhCGTkDIDCXzer9e8yL3n3HOeO8nEzbPnPNdkGIYhAAAAAAAAwElcrnYAAAAAAAAAuLaRgAIAAAAAAIBTkYACAAAAAACAU5GAAgAAAAAAgFORgAIAAAAAAIBTkYACAAAAAACAU5GAAgAAAAAAgFORgAIAAAAAAIBTkYACAAAAAACAU5GAAgAAAAAAgFORgAIAAAAAAIBTkYACAAAAAACAU5GAAgAAAAAAgFORgAIAAAAAAIBTkYACAMCJYmJiZDKZZDKZiuyzbt069e7dW9WqVZOrq6tMJpP69+9v0+fbb79V165dFRwcLBcXF5lMJo0dO9a5waNYkydPlslk0m233Xa1Q7mirtf7vlaNHDlSJpNJI0eOvNqhAACucW5XOwAAACqayZMn65VXXrE5ZzKZ5Ofnp4CAANWuXVtRUVHq0qWL7rrrLnl4eJR5rs2bN6tr167Kzc2VyWRSSEiIXF1dFRwcbO2zePFiDR48WJLk4uKiqlWrysXFRQEBAWWeF5WfYRhatGiR5s2bp23btunUqVNydXVV9erVFRoaqjZt2qhTp07q1q3bdf+zcvDgQUVERBQ67+npqYCAAFWtWlXNmjVTmzZtdO+99yosLOwqROlYMTExiomJUZ06dUguAQAqBBJQAAAUo3r16tavMzIydOzYMR09elSbNm3SjBkzFBISotdee02PPvqo3VVOPj4+ioyMLHL8//3vf8rNzVWHDh307bffqkqVKoX6/Pvf/5YkDRo0SLNnz5aPj48D7gzlVbVqVUVGRqp27dpXfO5z586pf//++vnnn63n3Nzc5OPjo8OHD+vAgQPasGGDpk2bppkzZ5KAuEhAQIC8vb0lSXl5eTp37pxOnz6t+Ph4LVy4UM8//7zuvfdeTZ8+XVWrVr3K0ZZdTEyMXnnlFXXu3LnY739oaKgiIyMVGhp65YIDAFyX2IIHAEAxTpw4YX2lpKQoJydHO3bs0H//+19FREQoKSlJjz/+uIYNGybDMApd36ZNG+3evVu7d++2O/7OnTslSffdd5/d5NPFfUaOHEnyqQJ58skntXv3bs2ePfuKzz18+HD9/PPPcnV11bPPPqu9e/cqKytLSUlJysjIUFxcnP71r3+pefPmVzy2im769OnWz/Tp06eVnZ2tY8eOafHixerVq5fy8vI0b948NW/eXAcPHrza4Trdm2++qd27d+vNN9+82qEAAK5xJKAAACgFV1dXNW3aVOPHj9cff/yh++67T5I0b948vfXWW6UeLz09XZLk5+dXrj64fuzbt0/R0dGSpNdff13/+c9/VL9+fbm4mP9nnZubm5o1a6bnn39e27dv17333ns1w60UQkNDNXDgQH3//fdauHCh3N3ddezYMfXu3Vu5ublXOzwAAK4JJKAAACgjHx8fffHFF4qKipIkvfXWWzp79qxNn6KKkFvOWVZYjBo1ynrOcv7S67p06WLT51IpKSl644031LZtWwUHB8vT01M33nijhgwZos2bN9u9h4vnOXjwoPbv369HHnlEERER8vT0VJ06dQpds3TpUvXv3181a9aUh4eHgoODdeutt+rDDz9UTk6O3Xluu+02mUwmTZ48WYZh6JNPPlHbtm0VEBAgf39/tW/fXnPmzCnyvbaIj4/XE088ocaNG8vf319+fn6KjIzUfffdp8WLFys/P9/udTExMRoyZIhq164tLy8vBQYGqk2bNnr77beVlpZ22XntKa4Y96WFnRctWqTbbrtNVapUkY+Pj1q0aKHp06cXGW9xtm/fbv26X79+l+1v2W5mzzfffKM+ffqoevXq8vDwUPXq1dWnTx8tWbKkVDHl5OSoWrVqMplMeuedd4rt+9lnn8lkMikgIMCaXL3Y/v379dRTT6lRo0by8/OTj4+PGjVqpLFjx+rw4cOliqss7rnnHk2ZMkWS9Oeff+qLL76wab/0M1OUOnXqyGQyadasWcVeX9xnLiUlRQsWLNDQoUPVtGlTValSRV5eXgoPD9f9999v93NtGd9Sx+7nn3+2+b1xaUwlKUIeExOju+++W2FhYfL09FTVqlXVrVs3zZw5U3l5eXavufTzsXr1auvDFry8vNSoUSO98soryszMLHJeAMA1xgAAADYmTZpk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1KhRI917772aOnWqDh8+rNmzZ6tKlSpFjuHn56f169dr/PjxioiIkJubm3W74qZNm+wWWi+Lt956S7Nnz1abNm3k7e2tnJwc3XTTTZo4caJiY2Ptfm8t3NzctHr1aj300EOqU6eO0tLSdOjQIR06dKhU202nTp2qNWvWaNCgQapevbouXLggf39/denSRZ9//rl++umnYldiAQBgYTKMK/AcWwAAAAAAAFy3WAEFAAAAAAAApyIBBQAAAAAAAKciAQUAAAAAAACnIgEFAAAAAAAApyIBBQAAAAAAAKciAQUAAAAAAACnIgEFAAAAAAAApyIBBQAAAAAAAKciAQUAAAAAAACnIgEFAAAAAAAAp6q0Cajff/9db731lgYOHKiwsDCZTCZ5eXmVebxz585p7NixCg8Pl6enp8LDw/XMM8/o3LlzjgsaAAAAAADgOmQyDMO42kGURf/+/bVs2TKbc56ensrMzCz1WElJSWrfvr327dununXrqnXr1tq1a5d27dqlm266SZs3b1ZISEi54q1Ro4bS0tJUu3btco0DAAAAAABwJR0+fFi+vr46ceJEmceotCug2rdvr3/+85+Kjo4u1xsgSePGjdO+ffs0cOBA7dmzRwsXLtQff/yhp556Sn/99ZfGjx9f7njT0tKUk5NT7nEAAAAAAACupJycHKWlpZVrjEq7AupSJpOpTCugTpw4obCwMLm6uurIkSOqXr26tS0rK0s33nijzp49q6NHj9q0lVaTJk0kSbt27SrzGAAAAAAAAFeaI3IalXYFlKP88MMPys/P16233looweTp6am+ffsqLy9PP/zww1WKEAAAAACuDTk50tKlBa/ybBLJy8nT7qW7ra+8nDwHRQnAGdyudgBXW1xcnCSpZcuWdttbtmypzz//3NoPAAAAAFA2aWnSgAEFx8nJUlBQ2cbKScvRwgELrccTkifINci1fAECcJrrfgXU4cOHJUm1atWy2245b+kHAAAAAACA0rnuV0BduHBBkuTj42O33dfX16bf5Vj2RV5q//79qlWrlnbv3l2oLSIiQp6ensrKylJCQoLd6xs2bChJOn/+vI4dO1ao3cPDQ3Xr1pUknTlzRmfOnCnUx9/fX2FhYZKko0ePKjU1tVCfqlWrqmrVqpKkAwcOKDs7u1CfmjVrKiAgQJLs3g/3xD1xT9wT98Q9cU/cE/fE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OTp58qQee+wxR00LAAAAAACACs5hCaihQ4fqyJEjio+PV/Xq1VWlShV99NFHGjVqlP7973/LZDLJMAw1adKEAuQAAAAAAADXEYcloJo3b6758+fbnBsyZIg6dOig77//XsnJyWrQoIHuuusuubu7O2paAAAAAAAAVHAOS0AVpXbt2nr00UedPQ0AAAAAAAAqKKc+pzI1NVWpqanOnAIAAAAAAAAVnMMTUMuXL1evXr0UGBiooKAgBQUFKSAgQL169VJ0dLSjpwMAAAAAAEAF57AElGEYevDBB9WvXz/9+OOPSk1NVWBgoAICAnThwgX9+OOP6t+/v0aOHCnDMBw1LQAAAAAAACo4hyWgpk+frpkzZyo0NFQffPCBUlJSdPbsWSUnJyslJUUffPCBQkND9eWXX2r69OkOmTMzM1OTJk1SgwYN5OXlpZo1a2r06NFKTEws17j79u2Tt7e3TCaT7rjjDofECgAAAAAAcL1yWBHyjz/+WD4+Plq3bp0iIiJs2vz9/TVmzBj17NlTTZs21ccff6yxY8eWa77MzEx169ZNGzduVGhoqPr166eDBw9q5syZWr58uTZt2qR69eqVaewxY8YoKyurXPEBAAAAAGwFBkrJybbHZZXnk6fYT2JtjgFUXA5bAZWQkKBu3boVSj5dLCIiQt26dVNCQkK555syZYo2btyo9u3ba+/evVq4cKG2bNmi//73vzp9+rRGjx5dpnE/++wzrV27Vg8//HC5YwQAAAAAFDCZpKCggpfJVJ7BpDzfPOtL5RkLgNM5LAFVrVo1eXh4XLafh4eHqlatWq65cnJy9O6770qS3n//ffn5+Vnbxo8fr2bNmumXX37R77//XqpxT506peeee07du3fXkCFDyhUjAAAAAAAAzByWgBowYIDWrFmj5IvXU17i7NmzWrNmjfr371+uudavX69z586pXr16ioqKKtQ+ePBgSSr1U/eefvppZWRk6IMPPihXfAAAAAAAACjgsATU66+/rrp166pr165as2ZNofY1a9aoR48eqlu3rqZMmVKuueLi4iRJLVu2tNtuOW/pVxLff/+9Fi5cqIkTJ+qmm24qV3wAAAAAAAAoUOYi5F27di10zsPDQ7///rt69OihKlWqKDw8XJJ0+PBhJSUlSZLatWun/v37a/Xq1WWdWocPH5Yk1apVy2675byl3+WkpaXp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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Load the timings\n", "dfs = [\n", @@ -69,21 +183,96 @@ " for path in [base_path, path]\n", "]\n", "\n", - "# Compute the solver diffs. Negative values means the second timings are faster\n", - "df_diff = dfs[1].join(dfs[0], on=\"package\").select(pl.col(\"package\"), (pl.col(\"duration\")-pl.col(\"duration_right\"))).collect();\n", + "# Compute the solver differences\n", + "df_diff = dfs[1].join(dfs[0], on=\"package\").select(\n", + " pl.col(\"package\"), \n", + " (pl.col(\"duration\") - pl.col(\"duration_right\")).alias(\"duration_diff\")\n", + ").collect()\n", + "\n", + "# Extract the differences as a NumPy array\n", + "duration_diff = df_diff[\"duration_diff\"].to_numpy()\n", + "\n", + "# Calculate summary statistics\n", + "mean_diff = np.mean(duration_diff)\n", + "median_diff = np.median(duration_diff)\n", + "std_diff = np.std(duration_diff)\n", "\n", "# Create the histogram\n", - "plt.hist(df_diff[\"duration\"], bins=40, density=True)\n", - "plt.xlabel(\"Difference in solve duration in seconds\")\n", - "plt.ylabel(\"Difference probability\")\n", + "fig, ax = plt.subplots(figsize=(8, 5))\n", + "bins = np.linspace(min(duration_diff), max(duration_diff), 40)\n", + "n, bins, patches = ax.hist(duration_diff, bins=bins, density=True, alpha=0.7)\n", "\n", + "# Color negative bars differently for emphasis\n", + "for bar, value in zip(patches, bins[:-1]):\n", + " if value < 0:\n", + " bar.set_facecolor('green')\n", + " else:\n", + " bar.set_facecolor('red')\n", + "\n", + "# Add vertical lines for mean and median\n", + "ax.axvline(mean_diff, color='blue', linestyle='--', linewidth=1.5, label=f\"Mean: {mean_diff:.2f}s\")\n", + "ax.axvline(median_diff, color='purple', linestyle='--', linewidth=1.5, label=f\"Median: {median_diff:.2f}s\")\n", + "\n", + "# Annotate summary stats on the plot\n", + "ax.annotate(f\"Mean: {mean_diff:.2f}s\", xy=(mean_diff, max(n)*0.9), fontsize=10, color='blue')\n", + "ax.annotate(f\"Median: {median_diff:.2f}s\", xy=(median_diff, max(n)*0.8), fontsize=10, color='purple')\n", + "\n", + "# Adding title and labels\n", + "ax.set_title(\"Difference in Solve Duration\")\n", + "ax.set_xlabel(\"Difference in Solve Duration (seconds)\")\n", + "ax.set_ylabel(\"Probability Density\")\n", + "ax.legend()\n", + "plt.grid(axis='y', linestyle='--', alpha=0.6)\n", + "\n", + "# Display the histogram\n", + "plt.tight_layout()\n", "plt.show()" ] }, + { + "cell_type": "code", + "execution_count": 13, + "id": "fc022e8f-c3cd-4a2b-ac05-58cf133ac79d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Top 5 Fastest Packages (Most Improved):\n", + "\n", + "- pypika-gis, shinywidgets, libglvnd-gles-cos7-ppc64le, spherical, cpd, gerrychain, codetiming, cyclus-build-deps, azure-storage-file-datalake, mbdata\u001b[1m | -19.45s faster\u001b[0m\n", + "- opensm-libs-cos7-x86_64, trufflehog, roocs-utils, hiclass, aiotube, r-tibble, hydromt_wflow\u001b[1m | -9.08s faster\u001b[0m\n", + "- whl2conda, gymnasium-classic_control, r-clustergeneration, arvpyf, ecodata-menu, airflow-with-jenkins\u001b[1m | -7.71s faster\u001b[0m\n", + "- chart.js, mgwr, nss-softokn-freebl-cos7-ppc64le, bluesky-darkframes, starlite-multipart, r-rcarb, scipy >=0.13,<0.18\u001b[1m | -7.30s faster\u001b[0m\n", + "- parsimonious, rb-multipart-post, airflow-with-ldap, msvc-headers-libs, dataprofiler, epysurv\u001b[1m | -6.93s faster\u001b[0m\n" + ] + } + ], + "source": [ + "# Extract values\n", + "duration_diff = df_diff[\"duration_diff\"].to_numpy()\n", + "package_names = df_diff[\"package\"].to_numpy()\n", + "\n", + "# Identify the top 5 fastest packages (most negative differences)\n", + "sorted_indices = np.argsort(duration_diff)[:5] # Smallest differences (faster solves)\n", + "\n", + "# ANSI escape code for bold text\n", + "bold = \"\\033[1m\"\n", + "reset = \"\\033[0m\"\n", + "\n", + "# Display the top 5 fastest packages with clean formatting and bold \"faster\"\n", + "print(\"\\nTop 5 Fastest Packages (Most Improved):\\n\")\n", + "for idx in sorted_indices:\n", + " package_name = package_names[idx].replace(\"\\n\", \", \").replace(\" *\", \"\")\n", + " print(f\"- {package_name:<30}{bold} | {duration_diff[idx]:.2f}s faster{reset}\")" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "b06fdad5-e960-4461-8166-e071eb75c1f2", + "id": "94563a80-ae69-4d63-aa95-c8b6058d6a12", "metadata": {}, "outputs": [], "source": [] @@ -105,7 +294,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.5" + "version": "3.13.1" } }, "nbformat": 4,