SHARE
TWEET

Untitled

a guest Jun 19th, 2019 68 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. {
  2.  "cells": [
  3.   {
  4.    "cell_type": "code",
  5.    "execution_count": 208,
  6.    "metadata": {},
  7.    "outputs": [],
  8.    "source": [
  9.     "import pandas as pd\n",
  10.     "import matplotlib.pyplot as plt\n",
  11.     "import matplotlib.style as style\n",
  12.     "style.use([\"seaborn-white\", \"seaborn-poster\"])\n",
  13.     "%matplotlib inline \n",
  14.     "\n",
  15.     "# ! ls /Users/rliaw/Research/riselab/sosp2019/scripts/ablations/test_job_limit_ablation.csv"
  16.    ]
  17.   },
  18.   {
  19.    "cell_type": "markdown",
  20.    "metadata": {},
  21.    "source": [
  22.     "# Job Limit Ablations\n",
  23.     "\n",
  24.     "We can effectively limit the number of jobs while improving performance."
  25.    ]
  26.   },
  27.   {
  28.    "cell_type": "code",
  29.    "execution_count": 15,
  30.    "metadata": {},
  31.    "outputs": [],
  32.    "source": [
  33.     "job_limit = pd.read_csv(\"/Users/rliaw/Research/riselab/sosp2019/scripts/ablations/test_job_limit_ablation.csv\")\n",
  34.     "job_limit.best = -job_limit.best "
  35.    ]
  36.   },
  37.   {
  38.    "cell_type": "code",
  39.    "execution_count": 223,
  40.    "metadata": {},
  41.    "outputs": [],
  42.    "source": [
  43.     "small_jobs = job_limit.where(job_limit[\"num_jobs\"] == 8).dropna()\n",
  44.     "big_jobs = job_limit.where(job_limit[\"num_jobs\"] == 200).dropna()\n",
  45.     "limit_jobs = job_limit.where(job_limit[\"_no_job_limit\"] == False).dropna()"
  46.    ]
  47.   },
  48.   {
  49.    "cell_type": "code",
  50.    "execution_count": 252,
  51.    "metadata": {},
  52.    "outputs": [
  53.     {
  54.      "data": {
  55.       "image/png": "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\n",
  56.       "text/plain": [
  57.        "<Figure size 360x360 with 1 Axes>"
  58.       ]
  59.      },
  60.      "metadata": {
  61.       "needs_background": "light"
  62.      },
  63.      "output_type": "display_data"
  64.     }
  65.    ],
  66.    "source": [
  67.     "df = pd.DataFrame(zip([\"Big\", \"Small\",  \"HyperSched\"], [big_jobs.best.mean(),small_jobs.best.mean(), limit_jobs.best.mean()]), columns=[\"Setup\", \"Loss\"])\n",
  68.     "df.index = df[\"Setup\"]\n",
  69.     "\n",
  70.     "ax = df[\"Loss\"].plot(kind='bar',  colors=['C0', 'C1', 'C2'], rot=0 ,grid=True, fontsize=20, width=0.8)\n",
  71.     "plt.xlabel(\"\", fontsize=20)\n",
  72.     "# plt.axis('tight')\n",
  73.     "plt.tight_layout()\n",
  74.     "ax.figure.set_size_inches(5,5)\n",
  75.     "plt.ylabel(\"Loss\", fontsize=20)\n",
  76.     "\n",
  77.     "plt.savefig(\"job-limit-loss.pdf\", bbox_inches='tight')\n"
  78.    ]
  79.   },
  80.   {
  81.    "cell_type": "code",
  82.    "execution_count": 226,
  83.    "metadata": {},
  84.    "outputs": [
  85.     {
  86.      "data": {
  87.       "text/plain": [
  88.        "1     50.0\n",
  89.        "4     48.0\n",
  90.        "7     51.0\n",
  91.        "10    58.0\n",
  92.        "13    52.0\n",
  93.        "Name: num_trials, dtype: float64"
  94.       ]
  95.      },
  96.      "execution_count": 226,
  97.      "metadata": {},
  98.      "output_type": "execute_result"
  99.     }
  100.    ],
  101.    "source": [
  102.     "big_jobs.num_trials"
  103.    ]
  104.   },
  105.   {
  106.    "cell_type": "code",
  107.    "execution_count": 255,
  108.    "metadata": {},
  109.    "outputs": [
  110.     {
  111.      "data": {
  112.       "image/png": "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\n",
  113.       "text/plain": [
  114.        "<Figure size 360x360 with 1 Axes>"
  115.       ]
  116.      },
  117.      "metadata": {
  118.       "needs_background": "light"
  119.      },
  120.      "output_type": "display_data"
  121.     }
  122.    ],
  123.    "source": [
  124.     "df = pd.DataFrame(zip([\"Big\", \"Small\",  \"HyperSched\"], [big_jobs.num_trials.mean(),small_jobs.num_trials.mean(), limit_jobs.num_trials.mean()]), columns=[\"Setup\", \"num_trials\"])\n",
  125.     "df.index = df[\"Setup\"]\n",
  126.     "\n",
  127.     "ax = df[\"num_trials\"].plot(kind='bar',  colors=['C0', 'C1', 'C2'], rot=0 ,grid=True, fontsize=20, width=0.8)\n",
  128.     "plt.xlabel(\"\", fontsize=20)\n",
  129.     "plt.axis('tight')\n",
  130.     "plt.tight_layout()\n",
  131.     "ax.figure.set_size_inches(5,5)\n",
  132.     "plt.ylabel(\"Trials\", fontsize=20)\n",
  133.     "\n",
  134.     "plt.savefig(\"job-limit-num-trials.pdf\",bbox_inches='tight')"
  135.    ]
  136.   },
  137.   {
  138.    "cell_type": "code",
  139.    "execution_count": 254,
  140.    "metadata": {},
  141.    "outputs": [
  142.     {
  143.      "data": {
  144.       "image/png": "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\n",
  145.       "text/plain": [
  146.        "<Figure size 360x360 with 1 Axes>"
  147.       ]
  148.      },
  149.      "metadata": {
  150.       "needs_background": "light"
  151.      },
  152.      "output_type": "display_data"
  153.     }
  154.    ],
  155.    "source": [
  156.     "df = pd.DataFrame(zip([\"Big\", \"Small\",  \"HyperSched\"], [big_jobs.best_iter.mean(),small_jobs.best_iter.mean(), limit_jobs.best_iter.mean()]), columns=[\"Setup\", \"Iterations\"])\n",
  157.     "df.index = df[\"Setup\"]\n",
  158.     "\n",
  159.     "ax = df[\"Iterations\"].plot(kind='bar',  colors=['C0', 'C1', 'C2'], rot=0 ,grid=True, fontsize=20, width=0.8)\n",
  160.     "plt.xlabel(\"\", fontsize=20)\n",
  161.     "plt.axis('tight')\n",
  162.     "plt.tight_layout()\n",
  163.     "ax.figure.set_size_inches(5,5)\n",
  164.     "plt.ylabel(\"Iterations\", fontsize=20)\n",
  165.     "\n",
  166.     "plt.savefig(\"job-limit-iterations.pdf\", bbox_inches='tight')"
  167.    ]
  168.   },
  169.   {
  170.    "cell_type": "markdown",
  171.    "metadata": {},
  172.    "source": [
  173.     "# Retrospective Killing"
  174.    ]
  175.   },
  176.   {
  177.    "cell_type": "code",
  178.    "execution_count": 92,
  179.    "metadata": {},
  180.    "outputs": [],
  181.    "source": [
  182.     "retro = pd.read_csv(\"/Users/rliaw/Research/riselab/sosp2019/scripts/ablations/test_retro.csv\")\n",
  183.     "retro.best = -retro.best"
  184.    ]
  185.   },
  186.   {
  187.    "cell_type": "code",
  188.    "execution_count": 177,
  189.    "metadata": {},
  190.    "outputs": [
  191.     {
  192.      "data": {
  193.       "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xucz2X+//HHYLAoIlGr0MSr7efYVGSLlqQk0Wk7OHRAZUtUG9WSY+hbJK1K2drSkQ5Ip62V1taqtLWm7EspNMQqRSQKvz/e78+nmTGfOc983jOe99ttbtfO+3pf1+f1mf30ebne7+t9XSl79+5FREQkaiolOwAREZHcKEGJiEgkKUGJiEgkKUGJiEgkKUGJiEgkKUGJiEgkVUl2AFmZ2WHACuA2d7+7CO0rA/8E2rl7SgHbVAOOB74Cdhf2NUVEpFgqA4cC77n7zqwVkUlQZlYLeA44sBjdDAXaFbLN8cA/ivGaIiJSfCcDS7IeiESCMrPGBMnp2GL0cRQwrghNvwJ4/PHHadiwYVFfXvKQkZFBixYtkh2GSJHo81u6NmzYwCWXXALhd3FWSU9QZjYUGAvUAP4OdC5CHynAQ8B6gst0zQvRfDdAw4YNadSoUWFfWgpg48aN+ttKuaXPb5nZ5xZLFCZJDAXWAB2Bx4rYx5VAJ2AgsKOE4hIRkSSKQoK6Emjj7m8XpbGZHQ7cAcxy90UlGpmIiCRN0i/xufurxeziAWAbcGMJhCMiIhGR9ARVHGbWDzgDOM/dvytOXxkZGWzcuLFkApN9LFu2LNkhiBSZPr+lZ9OmTQnrym2CMrMGwFTgeXd/trj9tWjRQjdCS8myZctIT09PdhgiRaLPb+nKzMxMWBeFe1BF9WeCB7z+kOxARESk5JXbERRwbliuN7N9Ks1sL7DG3ZuUZVAiIlIyynOCGpPg+FVAg7C+WPelpGSkL+gMC5IdRSGM3pLsCESEcpyg3H10bsfNrBfQIFG9iIiUD+UmQZnZaEicmPYnTUYsTHYIhbK6erIjEJHyqDxNkrgt/BERkf1ApEZQ7v4I8EiCugJtn+HubUowJJFyK1kj7dWTzix0m86dO1OpUiUWLFjAr371q2x1ffv25YgjjmDChAlFimfEiBE8//zz2Y6lpqZSr149fve733HTTTdRo0aNAvX1888/M3v2bC699NIixRIFe/fuZd68eZx88snUq1ePpUuX0q9fPxYvXhy5BbPL0whKRCqwL7/8kilTppRK38cddxxLliyJ/7z00ktcffXVzJ07l8mTJxe4n5deeomJEyeWSoxl5YMPPmD48OHs2BEsW9q2bVuWLFnCIYcckuTI9qUEJSKRcPjhhzN79mw++OCDEu87NTWV+vXrx3+OOOIILrzwQnr27MnLL79c4H727t1b4rGVtZzvoWrVqtSvX59KlaKXDqIXkYjsl3r37k3btm259dZb2blzZ8Lz1q9fz7Bhw2jfvj1t27Zl8ODBfPnll0V6zapVq1K5cuX477t27WLSpEmcdNJJHHvssfTp04dPP/0UgKVLl3LTTTcBYGY899xzPPfcc3Tr1o3Ro0eTnp4er3///ffp06cPbdu2pUOHDowfPz4+YgGYOXMmXbp0oUWLFnTr1o3HH388XjdixAiGDx/OyJEjadu2LSeddBL33ntvtsSycuVKrrjiClq3bk3Hjh0ZNWoUW7dujdf/9NNPTJ06lU6dOtGmTRsuvPBCPvzwQzIzM2N7L9GlSxemT5/O0qVLMTM2bNjA9OnT6dw5+45HmzZt4phjjuHtt9+Ov7cLL7yQVq1a0aVLF+666648//8qDiUoEYmElJQUJkyYwLp165g+fXqu52zbto2LLrqILVu2MGvWLB577DG+//57+vTpw/fff1/g19q9ezeLFy9m3rx59OzZM378pptu4r333uPuu+/m2WefpX379owfP54vvviCtm3bMmrUKACWLFlC9+7dAVi9ejXbtm3jhRde4Morr+Sjjz7i0ksvpWXLlsydO5eJEyfyxhtvMGzYMAD+/ve/M2vWLMaPH8+rr77KgAEDGDduHO+99148joULF7J9+3bmzJnDiBEjmDVrFjNnzgSC/an69u1L8+bNef7557nnnnv47LPPuOaaa+Ltx48fz7PPPsvIkSOZN28ev/nNbxgwYADVq1dnxowZAMyZM4fLL78829+lV69erF+/nn//+9/ZYqlfvz7t27dnxYoVXHHFFXTt2pUFCxYwfvx4Fi1axOjRowv8ty+MSE2SEJH9W9OmTRkyZAhTpkzh9NNP32cn23nz5rF161amTJlCnTp1AJg2bRqdO3dm/vz58dFBTu+++y5t27aN//7jjz9y6KGHcvnll3PVVVcBsGbNGl5++WVefPFFmjVrBsA111zDokWLePjhhxk7diy1atUCoH79+tn6Hzx4MIcffjgA1113HS1atGD48OEApKWlMXr0aAYNGsSnn37K2rVrSU1N5bDDDuPXv/41559/Po0aNeLII4+M93fQQQcxadIkqlatylFHHcWqVat47LHHGDRoEE888QSNGjWK9w8wdepUOnbsyL///W+aNWvGs88+y9ixYzn11FMBuPXWW6levTpbt26ldu3aANStW5eaNWtmex+HH3446enpLFy4MP73WrBgAT179qRSpUrMmjWLTp06ccUVVwDQuHFjxowZw8UXX8ywYcNK/D6WEpSIRMpll13Gq6++ys0338xzzz2Xre7TTz+ladOm8eQEwRdtWloaK1euTNhnq1atmDx5Mnv37mXFihWMHz+eE044gauuuorU1FQAPvnkEwAuuOCCbG137txJ9eqJH+ZLSUnJttD0p59+SqdOnbKdc9xxx8Xrevbsydy5cznttNNo3rw5J510Ej169KBevXrx81u3bk3VqlXjv7dp04YZM2bw7bffsmLFClasWJEt4casWrWKKlWq8NNPP9GqVav48SpVqsQT2ubNmxO+FwhGUXfffTc333wza9euJSMjgzvuuAOAFStWsGbNmmyvHbv0uGrVKiUoEanYKleuzO23307v3r25//77s9UlShR79uyJJ5rcVK9encaNGwPQpEkTGjZsSJ8+fahatSpjx44FiLd/6qmnsr1ORkYGxx57bMK+K1WqlC2Z5BZj7Eu8SpUq1K1bl/nz57Ns2TKWLFnC4sWL+ctf/sLEiRM555xz4udltXv37vhrpaam8tvf/pY//elP+7xO3bp1WbduXcJYC+KMM85g/PjxLF26lGXLltGyZUvS0tKA4G/Uq1cvBg4cuE+7nKPKkqB7UCISOc2aNePqq6/mgQceYO3atfHjaWlpfPHFF3z33S/LbG7evJkvvvgi/iVaEG3btmXAgAE8/fTTvPXWW/HXBPjmm29o3Lhx/Ofll1/mjTfeAILRUn7S0tKy3cOBX/aTSktL46WXXuLJJ5/k+OOPZ9iwYbzwwgt07Ngx22zCTz75hD179sR//+ijjzjssMOoU6dO/JLfYYcdFo+xUqVK3H777Xz11VccccQRVKlShYyMjHj7PXv20K1bNxYuXJjve6hVqxannnoqr776Ki+//DK9evWK18Ve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\n",
  194.       "text/plain": [
  195.        "<Figure size 432x288 with 1 Axes>"
  196.       ]
  197.      },
  198.      "metadata": {
  199.       "needs_background": "light"
  200.      },
  201.      "output_type": "display_data"
  202.     }
  203.    ],
  204.    "source": [
  205.     "small_retro = retro.where(retro[\"num_atoms\"] == 4)\n",
  206.     "grouped = small_retro.groupby([ \"_no_retro\", \"deadline\",]).best.mean().unstack(0)\n",
  207.     "grouped.columns = [\"Retrospective\", \"No Retrospective\"]\n",
  208.     "grouped = grouped[[\"No Retrospective\", \"Retrospective\"]]\n",
  209.     "grouped.plot.bar(rot=0, grid=True, fontsize=20)\n",
  210.     "plt.legend(fontsize=15)\n",
  211.     "plt.xlabel(\"Deadline (s)\", fontsize=20)\n",
  212.     "plt.ylabel(\"Loss\", fontsize=20)\n",
  213.     "plt.tight_layout()\n",
  214.     "\n",
  215.     "plt.savefig(\"retro-4-loss.pdf\")"
  216.    ]
  217.   },
  218.   {
  219.    "cell_type": "code",
  220.    "execution_count": 176,
  221.    "metadata": {},
  222.    "outputs": [
  223.     {
  224.      "data": {
  225.       "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xl8VcX5x/FPgEAUEAxFEKOIER5r2YOKqKAs4oIIrqggyqZSRahWQQTDvvwURSxFFFHcQJbKXhVFLNW6xLqk0gFRwIBSFtl3yO+Pc+41CbnZSLgn4ft+vfIac+bM3OfGS57MOXNmYtLT0xEREQmaUtEOQEREJDtKUCIiEkhKUCIiEkhKUCIiEkhloh1AtJlZOeAC4GfgcJTDERE50ZQGTgc+d87tz1hxwicovOT0j2gHISJygrsMWJ7xgBKUN3Li9ddfp3r16tGOpURKTU2lbt260Q5DpED0+S1av/zyC3fccQf4v4szUoLyL+tVr16dhISEaMdSIm3cuFE/Wym29Pk9bo66xaJJEiIiEkhKUCIiEkhKUCIiEkhKUCIiEkhKUCIiEkhKUCIiEkhKUCIiEkhKUCIiEkh6ULcYOrv/wmiHkC9r4m6H+dGOIh+St0c7AhFBIygREQkoJSgREQkkXeITKaGidSl4zehro/K6UvJoBCUiUdeyZUtat27N3r17j6rr0qULAwcOLHDf/fv3x8wyfdWtW5cWLVqQnJzMnj178tzXoUOHePnllwscSxCkp6fz9ttvs2XLFgA+/fRTzIxffvklypEdTQlKRALhp59+Yty4cUXSd5MmTVi+fHn4a9GiRdx3333MmjWLMWPG5LmfRYsWMWrUqCKJ8Xj58ssvefTRR8N/DDRq1Ijly5dz2mmnRTmyowXqEp+Z1QBWAE84557JY5skYBDeZlcVgZ+AmcAw59zuoopVRArXmWeeyWuvvcbVV19N48aNC7Xv2NhYqlatmunYWWedxTfffMPixYsZMmRInvpJT08v1LiiIet7KFu27FE/m6AIzAjKzCoAc4BT8tHmCuBj4GrgHeBZYAvwKLDUzOKKIFQRKQIdO3akUaNGDBw4kP3790c8b8OGDfTr14+mTZvSqFEjevfuzU8//VSg1yxbtiylS5cOf3/gwAFGjx7NpZdeSuPGjencuTOrVq0CvEthjzzyCABmxpw5c5gzZw5t27YlOTmZpKSkcP0XX3xB586dadSoEc2aNWP48OGZLl9OnjyZVq1aUbduXdq2bcvrr78eruvfvz+PPvoogwYNolGjRlx66aU899xzmRLLypUr6d69Ow0aNKB58+YMHjyYHTt2hOsPHjzI008/TYsWLWjYsCGdOnXiq6++Ii0tLbQ5IK1atWLChAmZLvFNmDCBli1bZvoZbdq0ifPPP5+PP/44/N46depE/fr1adWqFU899VSO/7+ORSASlJnVBJYBF+Wz6US893CZc+5259zDfh8v4G3l3rtQAxWRIhMTE8OIESNYv349EyZMyPacXbt2cdttt7F9+3amTJnCq6++ys6dO+ncuTM7d+7M82sdPnyYZcuWMXfuXNq3bx8+/sgjj/D555/zzDPPMHv2bJo2bcrw4cP58ccfadSoEYMHDwZg+fLlXHPNNQCsWbOGXbt28fbbb3PPPffw9ddfc9ddd1GvXj1mzZrFqFGjeP/99+nXrx8AH3zwAVOmTGH48OG888479OjRg2HDhvH555+H41i4cCG7d+9m5syZ9O/fnylTpjB58mTA20CxS5cu1KlTh7/97W88++yzfP/999x///3h9sOHD2f27NkMGjSIuXPn8vvf/54ePXoQFxfHxIkTAZg5cybdunXL9HPp0KEDGzZs4N///nemWKpWrUrTpk1ZsWIF3bt3p02bNsyfP5/hw4ezdOlSkpOT8/yzz4+oX+Izs77AUOBk4AOgZc4twu3OB84DZjvnPgsdd86lm9lQoCfeyKpoLmqLSKGrVasWffr0Ydy4cVx11VVHbbU+d+5cduzYwbhx46hcuTIA48ePp2XLlsybNy88Osjqs88+o1GjRuHv9+3bx+mnn063bt249957AVi7di2LFy9mwYIF1K5dG4D777+fpUuXMnXqVIYOHUqFChUAjrok1rt3b84880wAHnzwQerWrcujjz4KQGJiIsnJyfTq1YtVq1axbt06YmNjqVGjBmeccQY333wzCQkJnHPOOeH+Tj31VEaPHk3ZsmU599xzWb16Na+++iq9evXijTfeICEhIdw/wNNPP03z5s3597//Te3atZk9ezZDhw6ldevWAAwcOJC4uDh27NhBpUqVAIiPj6d8+fKZ3seZZ55JUlISCxcuDP+85s+fT/v27SlVqhRTpkyhRYsWdO/eHYCa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bv5X4mjZsuVRq3DHxcVRo0YNbr31Vu6666489bNt2zaWLFnCTTfdlO8YgmLv3r3MmTMnvLfVhAkTmDdvHu+9916UIzv+NIISkUDo2bMny5cvD3/NmjWLZs2aMWrUKBYtWpSnPp588knmzp1bxJEWrZdffpkpU6aEv+/WrRszZsyIYkTRowQlIoFw8sknU7Vq1fBX7dq1GTRoEGeddVaeE1SQ1hYtqKzvoXz58sTHx0cpmuhSghKRQIuNjaV06dIA/Pzzz/Tp04fGjRvTrFkz+vXrF94mZ8KECcyaNYvPPvsMMyMtLY3+/fvTt29funTpQlJSEm+88QYAs2bNol27dtSvX582bdrw2muvhV9vz549DBgwgGbNmlGvXj0GDx7MJ598Eq5v2bIlkydPpmvXrtSvX59rrrmGd999N1PMS5YsoX379tSrV4+rrrqKKVOmZNrfafPmzTz00ENceOGFXHDBBfTp04f//e9/zJkzh/Hjx7N+/XrMjE8//ZQJEybQpk0bALp06UL//v0zvdbixYtp0KABu3btAuCtt96ibdu21K9fn+uuu46//e1vhfW/4rhTghKRQNq7dy8vvvgiq1evpn379uzZs4cuXbpQrlw5pk+fzpQpUzh48CBdu3blwIEDdOvWjXbt2tGoUSOWL1/O6aefDni/wNu0acNbb71FmzZtmDp1KsOGDaNr167MmzeP7t27M3bsWF566SUAnn32Wb7//numTJnCokWLqFmzJvfffz979uwJxzZhwgQuueQS3n77ba6++mr69OkT3jNp2bJl4e0xFi5cyJ///GemTZvGxIkTATh06BDdunUjLS2NyZMn89prr7F582b69OnDNddcQ8+ePalevTrLly8/alv3Dh068N5777F//2/rYc+fP5/WrVtToUIF3njjDZ5++mn69evHggUL6NGjByNGjCi2SUqTJEQkECZOnMgLL7wAeJe59u/fj5kxbtw4WrVqxcyZM9m7dy+jR48Oj6jGjRvHRRddxLvvvku7du2Ii4sjNjY20/bjVatWDe+llJ6ezosvvkjXrl25+eabAW8L+J9++okXX3yRu+++m7Vr11K+fHkSEhKoWLEid9xxB507dw6/JsDll19Or169AHjggQf417/+xeuvv05SUhKTJk3itttuC0/UOOuss9i9ezeDBg2id+/efPLJJzjnWLJkSXgP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\n",
  226.       "text/plain": [
  227.        "<Figure size 432x288 with 1 Axes>"
  228.       ]
  229.      },
  230.      "metadata": {
  231.       "needs_background": "light"
  232.      },
  233.      "output_type": "display_data"
  234.     }
  235.    ],
  236.    "source": [
  237.     "big_retro = retro.where(retro[\"num_atoms\"] == 16)\n",
  238.     "grouped = big_retro.groupby([ \"_no_retro\", \"deadline\",]).best.mean().unstack(0)\n",
  239.     "grouped.columns = [\"Retrospective\", \"No Retrospective\"]\n",
  240.     "grouped = grouped[[\"No Retrospective\", \"Retrospective\"]]\n",
  241.     "grouped.plot.bar(rot=0, grid=True, fontsize=20)\n",
  242.     "plt.legend(fontsize=15)\n",
  243.     "plt.xlabel(\"Deadline (s)\", fontsize=20)\n",
  244.     "plt.ylabel(\"Loss\", fontsize=20)\n",
  245.     "plt.tight_layout()\n",
  246.     "\n",
  247.     "plt.savefig(\"retro-16-loss.pdf\")"
  248.    ]
  249.   },
  250.   {
  251.    "cell_type": "code",
  252.    "execution_count": 175,
  253.    "metadata": {},
  254.    "outputs": [
  255.     {
  256.      "data": {
  257.       "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3X2czXX+//HHYLBRrhK1RE28u3CRCKkokkITduubcrEVilqZVC6KdX3Rr0haSc2mwgrZmGizXWlVq6JaSi8lV6Oyolzl2vz++HzOcWbMGXPm6pyZed5vt7l9nM/783mf1xnnnNe835/35/2OS0tLQ0REJNaUiHYAIiIimVGCEhGRmKQEJSIiMUkJSkREYlKpaAdQUJxzZYDLgR+BY1EOR0REPCWBs4FPzexQaEGxSVB4yenf0Q5CREQydTWwInRHcUpQPwLMnj2b6tWrRzuWIm3t2rXUq1cv2mGI5Jrey/nvp59+4o477gD/OzpUcUpQxwCqV69OjRo1oh1LkbZ9+3b9jqVI0Hu5QJ106UWDJEREJCYpQYmISExSghIRkZikBCUiIjFJCUpERGKSEpSIiMQkJSgREYlJSlAiIhKTitONuiIiEWmc0hpSoh1FhEbsjnYEeUYtKBERiUlKUCIiEpPUxZcNtQcvicrzbprQISrPKyISC9SCKmJat27Nddddx4EDB04q6969O48++miO6x48eDDOuXQ/9erVo1WrVowYMYLffvst23UdPXqUmTNn5jiWWJCWlsbrr7/Ozp07AVi5ciXOOX766acoRyZSNChBFUFbt25l0qRJ+VJ3kyZNWLFiRfBn6dKl9O3blwULFjBx4sRs17N06VLGjx+fLzEWlNWrVzNo0KDgHwONGjVixYoVnHXWWVGOTKRoUIIqgmrWrMmsWbNYvXp1ntcdHx9P1apVgz/nnnsut912G4mJibz55pvZrictLS3PYytoGV9D6dKlqVq1KiVK6GMlkhf0SSqCOnfuTKNGjXj00Uc5dOhQ2ON++OEHkpKSaN68OY0aNaJfv35s3bo1R89ZunRpSpYsGXx8+PBhJkyYwFVXXcVll11Gt27d+OKLLwCvK+yRRx4BwDnHwoULWbhwIe3atWPEiBE0btw4WP7ZZ5/RrVs3GjVqRIsWLRgzZky67ssZM2bQpk0b6tWrR7t27Zg9e3awbPDgwQwaNIhhw4bRqFEjrrrqKp555pl0iWX9+vXcfffdNGzYkJYtWzJ8+HD27NkTLD9y5AiTJ0+mVatWXHrppdx222188cUXpKamBhZZo02bNkydOjVdF9/UqVNp3bp1ut/Rjh07uPjii/noo4+Cr+22226jQYMGtGnThieffDLL/y+R4kYJqgiKi4tj7NixbNu2jalTp2Z6zL59++jatSu7d+8mOTmZV155hb1799KtWzf27t2b7ec6duwYy5cvZ9GiRSQmJgb3P/LII3z66ac89dRTvPbaazRv3pzu3buzceNGGjVqxPDhwwFYsWIF7du3B2DTpk3s27eP119/nXvuuYcvv/ySP/3pT9SvX58FCxYwfvx43nnnHZKSkgB49913SU5OZsyYMbz11lv06tWL0aNH8+mnnwbjWLJkCfv372f+/PkMHjyY5ORkZsyYAXiL0XXv3p26devyj3/8g6effprvvvuO+++/P3j+mDFjeO211xg2bBiLFi3ioosuolevXpQtW5Zp06YBMH/+fO666650v5dOnTrxww8/8Pnnn6eLpWrVqjRv3px169Zx991307ZtW1JSUhgzZgzvvfceI0aMyPbvXqSo0yi+Iuq8886jf//+TJo0iRtuuOGkZasXLVrEnj17mDRpEhUrVgRgypQptG7dmsWLFwdbBxl98sknNGrUKPj44MGDnH322dx1113ce++9gLeE85tvvskbb7xBnTp1ALj//vtZtWoVL774IqNGjaJ8+fIAVK1aNV39/fr1o2bNmgA88MAD1KtXj0GDBgGQkJDAiBEj6NOnD99++y1btmwhPj6ec845h9///vfccsst1KhRg/PPPz9YX6VKlZgwYQKlS5fmggsuYMOGDbzyyiv06dOHOXPmUKNGjWD9AJMnT6Zly5Z8/vnn1KlTh9dee41Ro0Zx3XXXAfDoo49StmxZ9uzZQ4UKFQCoXLky5cqVS/c6atasSePGjVmyZEnw95WSkkJiYiIlSpQgOTmZVq1acffddwNQq1YtRo4cye23305SUpKuY4mgBFWk3Xnnnbz11lsMGTKEhQsXpiv79ttvOe+884LJCbwv2oSEBNavXx+2zgYNGjBx4kTS0tJYt24dY8aMoWnTptx7773Ex8cDXksI4NZbb0137uHDhzl8+HDYuuPi4tItr/3tt9/SqlWrdMc0adIkWJaYmMiCBQu4/vrrqVu3LldddRUdO3akSpUqweMbNmxI6dKlg48vvfRSpk2bxi+//MK6detYt25duoQbsGHDBkqVKsWRI0do0KBBcH+pUqWCCW3Xrl1hXwt4rainnnqKIUOGsGXLFtauXcvjjz8OwLp169i8eXO65w50PW7YsEEJSgQlqCKtZMmSjBs3js6dOzN9+vR0ZWXLls30nOPHjwcTTWbKli1LrVq1AKhduzbVq1enW7dulC5dmlGjRgHelzjA3LlzT3qe0GSRUYkSJdKVZxZj4Eu8VKlSVK5cmcWLF7Nq1SpWrFjB8uXL+dvf/sb48ePp0qVLulgCjh07Fnyu+Ph4rrzySh577LGTnqdy5cps27YtbKzZceONNzJmzBhWrlzJqlWrqF+/PgkJCYA32KRTp0707t37pPMytipFiitdgyri6tSpQ9++fXnuuefYsmVLcH9CQgIbN27k119/De7btWsXGzduDH6JZkejRo3o1asXr776Kh988AFAsBW0c+dOatWqFfyZOXMm77zzDuC1lk4lISEh3TUcgFWrVgXLli5dyt///ncuv/xykpKSeP3112nZsmW60YRff/01x48fDz7+8ssvOeecc6hYsWKwy++cc84JxliiRAnGjRvHjz/+yLnnnkupUqVYu3Zt8Pzjx4/Trl07lixZcsrXUL58ea677jreeust3nzzTTp16hQsCzx36O9n165dTJw4kf3795/ydyNSHChBFQN9+vQhISEh3Q2kiYmJVK5cmQcffJCvvvqKr776igcffJAzzjiDDh0im8GiX79+1K5dO3izbvXq1Wnfvj3Dhg1j+fLlbNmyhcmTJzN37txg8gtcs1mzZk3YL+TevXuzZs0aJk6cyPfff8+///1vRo4cSatWrUhISODw4cNMnDiRxYsXs23bNj7++GO+/vprGjZsGKxj8+bNjB07lu+//55Fixbx8ssvB6/7dOvWjT179jB48GDMjDVr1vDggw+yadMmateuzWmnncbtt9/O5MmTWb58OZs2bWLUqFHs3r2bZs2aBV/DunXrwg4s6dy5MykpKWzZsiXd77V3797897//Zfz48WzYsIFPPvmEQYMGsXfvXrWgRHzq4suGwj7lUHx8POPHj+eWW24J7itTpgzJyclMmDCBbt26UbJkSa644gpmz57NGWecEVH9ZcqUYfTo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\n",
  258.       "text/plain": [
  259.        "<Figure size 432x288 with 1 Axes>"
  260.       ]
  261.      },
  262.      "metadata": {
  263.       "needs_background": "light"
  264.      },
  265.      "output_type": "display_data"
  266.     }
  267.    ],
  268.    "source": [
  269.     "small_retro = retro.where(retro[\"num_atoms\"] == 4)\n",
  270.     "grouped = small_retro.groupby([\"_no_retro\", \"deadline\"]).num_trials.mean().unstack(0)\n",
  271.     "grouped.columns = [\"Retrospective\", \"No Retrospective\"]\n",
  272.     "grouped = grouped[[\"No Retrospective\", \"Retrospective\"]]\n",
  273.     "grouped.plot.bar(grid=True, rot=0, fontsize=20)\n",
  274.     "plt.xlabel(\"Deadline (s)\", fontsize=20)\n",
  275.     "plt.ylabel(\"Num Trials\", fontsize=20)\n",
  276.     "plt.legend(fontsize=15)\n",
  277.     "plt.tight_layout()\n",
  278.     "\n",
  279.     "# plt.gr\n",
  280.     "plt.savefig(\"retro-4-numtrials.pdf\")\n",
  281.     "# plt.title(\"Num Trials\")"
  282.    ]
  283.   },
  284.   {
  285.    "cell_type": "code",
  286.    "execution_count": 174,
  287.    "metadata": {},
  288.    "outputs": [
  289.     {
  290.      "data": {
  291.       "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XuczXX+wPGXy2hcyi2xrVya5b21gzRCVohKUZJdbURKUdkSq1/IJbdcdsslVijRhVVkRbSKorW1XUbKbHqTUCNNItdcCr8/Pt9znBnnzMwZ5zjnjPfz8ZjH1/l+P9/veZ/xnXnP5/v9fN+fIidOnMAYY4yJN0VjHYAxxhgTjCUoY4wxcckSlDHGmLhkCcoYY0xcsgRljDEmLlmCMsYYE5eKxzoAABGpAgwD2gKVgd3ACmCoqn6Vo+0dQF+gNvAj8IrX7kCQ47YFBgOpwCFgCTBQVb+P2ocxxhgTEUVi/RyUl5w+BC4C3gI+BQS4EZeAGqvqJq/tQGA08BnwBlAHaAO8D7RQ1aMBx+0EzAW+Al4FqgEdgS1AA1XdcyY+nzHGmIKJhx7UMFxy6qeq430rRaQL8CLwJNBORKoDI3DJqLmq/uy1GwEMAXoCU7x1ZYC/45JTfVXd561/E5iJ61U9fCY+nDHGmIKJhx5UFlAEqKKqx3Ns+xKXvEoCI4FHgZtU9fWANslAFrBFVS/z1vUAZgAPquqUHMf8AjgfqKyqx3KJ6xzgCmAHELKdMcaY01IM+BXwkaoeCdwQ0x6UiBTDXbL7OWdy8hwBSgBJQDNv3arABqp6WETeB1qLSFlV3RvQ9p0gx1wF3Iu7L/VpLuFdAfw7f5/EGGPMaboKWBO4IqYJyuvBTAq2TUR+C/wW2KyqR0QkBcgKNhgC2OotawMfASne66/yaJtbgtoBMGfOHKpUqZJLMxOujIwMUlNTYx2GMWGx8zY6vvvuO26//XbwfucGiod7UKcQkaK4+0lFcZfqACriBjgEs9dblg1oe0RVD+WjbSjHAKpUqULVqlXzE7bJp6ysLPuemoRj523UnXIrJe4SlIgUAaYDrYCPgYnepiTcJb9gfOuTC9A2VxkZGWRlZeWnqQlDenp6rEMwJmx23kbezp07Q26LqwQlIsWBZ4A7cZfnbg4YOn4Idz8qmHO85cECtM1Vamqq/dUUYenp6aSlpcU6DGPCYudtdGRmZobcFjeVJESkFPAaLjltAq5W1W8DmvxI6MtyvvV7A9omeyPx8mprjDEmDsVFghKR8sDbuIduPwGaqurXOZptBCqLSMkgh6gJHMclNl9bgBoh2gLo6cRsjDEmumKeoLznmF4HGgGrcRUhgpUiWoOL96og+zcG/qeq+wPaAjQPcpwWuN7ThtMO3hhjTNTEPEHhnoNqgqsQcYOv6kMQc3GjPIbluHT3KHAeJ0f7ASwC9gOPiEgF30oR6Y4bXv5siOeujDHGxIlYP6hbBfiz93ID0F9EgjUdq6pfiMgTQH/gExFZAvwOV2D2P7jBFQCo6m4ReQR4GlgnIq8AvwZuxV3+Gx2lj2SMMSZCYj2KrzEnR9t1z6XdROAwMBD4BugFPAR8B0wAhucskaGq00TkR+ARXBLcDTwPDFLV3ZH8EMaYwi9tSUs3H0IiGFY4xoDFupLEIlwdvvy2P4ErAvv3fLZ/GXi5YNEZY4yJpXi4B2WMMcacwhKUMcaYuBTre1CFTo0BS2PyvlvHto3J+xpjTLRYD+os1rJlS6655hoOHTq1pm7Xrl0ZNGhQgY89YMAARCTbV2pqKs2bN+e5557jp59+yvexfvnlF2bPnl3gWOLBiRMnWLRoEbt27QLggw8+QET47rvvYhyZMfHLEtRZ7ptvvmH8+PF5NyyABg0asGbNGv/XsmXLuP/++1m1ahXjxo3L93GWLVvGmDFjohLjmbJ27Vr69+/v/2Ogfv36rFmzhgsuuCDGkRkTvyxBneUuuugiXnrpJdauXRvxYyclJVGpUiX/V7Vq1bjtttto2rQpb7zxRr6PE+tZnyMh52coUaIElSpVomhR+xE0JhT76TjL3XLLLdSvX59BgwZx5EioGUrg22+/pW/fvjRu3Jj69evTq1cvvvnmmwK9Z/HixSlWrJj/9dGjRxk7dixNmzbl8ssvp0uXLqxbtw5wl8IeeeQRAESEhQsXsnDhQlq3bs2wYcNIS0vzb//444/p0qUL9evXp0mTJowaNSrb5csZM2bQqlUrUlNTad26NXPmzPFvGzBgAP3792fIkCHUr1+fpk2bMmXKlGyJZePGjdx9993Uq1ePZs2aMXToUPbtO1n45Oeff2bChAk0b96cyy67jNtuu41169aRmZnpm5CNVq1aMXny5GyX+CZPnkzLli2zfY927tzJpZdeynvvvef/bLfddht169alVatWPPnkk7n+fxlTGFiCOssVKVKExx9/nO3btzN58uSgbQ4cOECnTp3Yu3cvM2fO5MUXX2T//v106dKF/fv3B90nmGPHjrF69WrWrFlDu3bt/OsfeeQRPvroIyZOnMirr75K48aN6dq1K1u2bKF+/foMHToUgDVr1tCmTRsAtm7dyoEDB1i0aBH33nsvn376KXfeeSd16tRhwYIFjBkzhpUrV9K3b18A3n77bWbOnMmoUaNYvnw599xzDyNHjuSjjz7yx7F06VIOHjzI/PnzGTBgADNnzmTGDFdBKysri65du1K7dm3++c9/8tRTT/Hll1/ywAMP+PcfNWoUr776KkOGDOG1117jkksu4Z577iE5OZmpU6cCMH/+fLp3z/5Mevv27fn222/55JNPssVSqVIlGjduzIYNG7j77ru59tprWbJkCaNGjeKdd95h2LBh+f7eG5OIbBSfoWbNmvTu3Zvx48dz/fXXnzKt9Wuvvca+ffsYP3485cqVA2DSpEm0bNmSxYsX+3sHOX344YfUr1/f//rw4cP86le/ok2bNjz88MMAbNu2jTfeeIPXX3+dWrVqAfDAAw+Qnp7OrFmzGDFiBGXKlAGgUqVK2Y7fq1cvLrroIgAeeughUlNT6d+/PwApKSkMGzaMnj17smnTJr7++muSkpK48MIL+fWvf03Hjh2pWrUqF198sf945cuXZ+zYsZQoUYLf/OY3bN68mRdffJGePXsyd+5cqlat6j8+wIQJE2jWrBmffPIJtWrV4tVXX2XEiBFcc801AAwaNIjk5GT27dtH2bJulpcKFSpQunTpbJ/joosuIi0tjaVLl/q/X0uWLKFdu3YULVqUmTNn0rx5c+6++24AqlevzvDhw+ncuTN9+/a1+1im0LIEZQC46667WL58OQMHDmThwoXZtm3atImaNWv6kxO4X7QpKSls3Lgx56H86taty7hx4zhx4gQbNmxg1KhRNGzYkPbt25OUlATA559/DsCtt96abd+jR49y9OjRU47pU6RIkWwTSW7atInmzbMXr2/QoIF/W7t27ViwYAHXXXcdtWvXpmnTptx4441UrFjR375evXqUKHFynsvLLruMqVOn8uOPP7JhwwY2bNiQLeH6bN68meLFi/Pzzz9Tt25d//rixYv7E9ru3blX12rfvj0TJ05k4MCBfP3112RkZPDXv/4VgA0bNrBt27Zs7+279Lh582ZLUKbQiqsEJSIX4orGPqaqEwPWbwWq57H7Xao622vfClgRol2WqlY57WALmWLFijF69GhuueUWpk2blm1bcnJy0H2OHz/uTzTBJCcnU726+2+rUaMGVapUoUuXLuzbt49GjRoB+PefN2/eKe8TmCxyKlq0aLbtwWL0/RIvXrw4FSpUYPHixaSnp7NmzRpWr17Nc889x5gxY+jQoYO/XaBjx4753yspKYnf//73DB48+JT3qVChAtu3bw8Za37ccMMNjBo1ig8++ID09HTq1KlDSkoK4L5H7du3p0ePHqfsl7NXaUxhEjf3oESkDLAQN3VGThOB4UG+/oqbqPAn4KOA9vW85fQg+zwRhfALhVq1anH//fczffp0vv765HyRKSkpbNmyhT179vjX7d69my1btvh/ieZH/fr1ueeee1i5ciXvvvuu/z0Bdu3aRfXq1f1fs2fPZuXKlYDrLeUlJSUl2z0ccFN0+7YtW7aMf/zjH1xxxRX07duXRYsW0axZs2yjCT///HOOHz85C8unn37KhRdeSLly5fyX/C688EJ/jEWLFmX06NHs2LGDatWqUbx4cTIyMvz7Hz9+nNatW7N06dI8P0OZMmW45pprWL58OW+88Qbt27f3b/O9d+D3Z/fu3YwbN46DBw/m+b0xJlHFRQ9KRKrjktPlwbYH9qZy7PcULsn2VtX/BWzyXWd5JJf5pUwQPXv25M033+SLL77wr2vXrh3Tpk3jL3/5C/369QPgb3/7G+eddx5t24ZXwaJXr1689tprDBs2jNdff53q1avTpk0bhgwZwtChQ6lZsyavvvoq8+bN47nnngPw37NZv359tntGgXr06MEtt9zCuHHj6NixI9u3b2f48OE0b96clJQU1q9fz7hx4zj33HNJS0vj66+/5vPPP6dTp07+Y2zbto3HH3+c22+/nfXr1/PCCy/4P2+XLl2YM2cOAwYMoGfPnhw9epQRI0awb98+atSoQYkSJejcuTMTJkygfPny/iS7d+9eGjVqxA8//AC4y3W++1E53XLLLfTu3ZujR49m+7726NGDDh06MGbMGG699VZ27drF4MGDqVy5svWgTKEW8wQlIn2AEUAp3LTvLXPfw79fU+AB4C1VnZljc11gWyySU6KXHEpKSmLMmDF0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\n",
  292.       "text/plain": [
  293.        "<Figure size 432x288 with 1 Axes>"
  294.       ]
  295.      },
  296.      "metadata": {
  297.       "needs_background": "light"
  298.      },
  299.      "output_type": "display_data"
  300.     }
  301.    ],
  302.    "source": [
  303.     "small_retro = retro.where(retro[\"num_atoms\"] == 16)\n",
  304.     "grouped = small_retro.groupby([\"_no_retro\", \"deadline\"]).num_trials.mean().unstack(0)\n",
  305.     "grouped.columns = [\"Retrospective\", \"No Retrospective\"]\n",
  306.     "grouped = grouped[[\"No Retrospective\", \"Retrospective\"]]\n",
  307.     "grouped.plot.bar(grid=True, rot=0, fontsize=20)\n",
  308.     "plt.xlabel(\"Deadline (s)\", fontsize=20)\n",
  309.     "plt.ylabel(\"Num Trials\", fontsize=20)\n",
  310.     "plt.legend(fontsize=15)\n",
  311.     "plt.tight_layout()\n",
  312.     "\n",
  313.     "plt.savefig(\"retro-16-numtrials.pdf\")\n",
  314.     "# plt.title(\"Num Trials\")"
  315.    ]
  316.   },
  317.   {
  318.    "cell_type": "markdown",
  319.    "metadata": {},
  320.    "source": [
  321.     "# Overhead Tracking"
  322.    ]
  323.   },
  324.   {
  325.    "cell_type": "code",
  326.    "execution_count": 138,
  327.    "metadata": {},
  328.    "outputs": [],
  329.    "source": [
  330.     "overhead = pd.read_csv(\"/Users/rliaw/Research/riselab/sosp2019/scripts/ablations/test_bad_scaling_with_overhead.csv\")\n",
  331.     "overhead.best = -overhead.best"
  332.    ]
  333.   },
  334.   {
  335.    "cell_type": "code",
  336.    "execution_count": 166,
  337.    "metadata": {},
  338.    "outputs": [],
  339.    "source": [
  340.     "sqrt_scaling = overhead[(overhead[\"scaling\"] == \"SQRT\") & (overhead[\"_assume_linear\"] == False) &( overhead[\"startup_delay\"] == 1) & (overhead[\"num_atoms\"] == 16)].dropna()"
  341.    ]
  342.   },
  343.   {
  344.    "cell_type": "code",
  345.    "execution_count": 173,
  346.    "metadata": {},
  347.    "outputs": [
  348.     {
  349.      "data": {
  350.       "text/plain": [
  351.        "<matplotlib.axes._subplots.AxesSubplot at 0x12555ef98>"
  352.       ]
  353.      },
  354.      "execution_count": 173,
  355.      "metadata": {},
  356.      "output_type": "execute_result"
  357.     },
  358.     {
  359.      "data": {
  360.       "image/png": "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\n",
  361.       "text/plain": [
  362.        "<Figure size 432x288 with 1 Axes>"
  363.       ]
  364.      },
  365.      "metadata": {
  366.       "needs_background": "light"
  367.      },
  368.      "output_type": "display_data"
  369.     }
  370.    ],
  371.    "source": [
  372.     "sqrt_scaling.groupby([\"_ignore_overhead\"]).best.mean().plot.bar()"
  373.    ]
  374.   },
  375.   {
  376.    "cell_type": "code",
  377.    "execution_count": 168,
  378.    "metadata": {},
  379.    "outputs": [
  380.     {
  381.      "data": {
  382.       "text/plain": [
  383.        "_ignore_overhead\n",
  384.        "False    70.0\n",
  385.        "True     53.8\n",
  386.        "Name: best_iter, dtype: float64"
  387.       ]
  388.      },
  389.      "execution_count": 168,
  390.      "metadata": {},
  391.      "output_type": "execute_result"
  392.     }
  393.    ],
  394.    "source": [
  395.     "sqrt_scaling.groupby([\"_ignore_overhead\"]).best_iter.mean()"
  396.    ]
  397.   },
  398.   {
  399.    "cell_type": "markdown",
  400.    "metadata": {},
  401.    "source": [
  402.     "# Overhead Sensitivity"
  403.    ]
  404.   },
  405.   {
  406.    "cell_type": "code",
  407.    "execution_count": 264,
  408.    "metadata": {},
  409.    "outputs": [],
  410.    "source": [
  411.     "osense = pd.read_csv(\"/Users/rliaw/Research/riselab/sosp2019/scripts/ablations/test_overhead_sensitivity.csv\")\n",
  412.     "osense.best = -osense.best"
  413.    ]
  414.   },
  415.   {
  416.    "cell_type": "code",
  417.    "execution_count": 265,
  418.    "metadata": {},
  419.    "outputs": [],
  420.    "source": [
  421.     "osense_mean = osense.groupby([ \"scaling\", \"startup_delay\"]).mean()"
  422.    ]
  423.   },
  424.   {
  425.    "cell_type": "code",
  426.    "execution_count": 294,
  427.    "metadata": {},
  428.    "outputs": [
  429.     {
  430.      "data": {
  431.       "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEeCAYAAACt7uMeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XucFMW99/HPgoCAICIoJCsIoj9JdBUwjwlqJECMGBQ5KNEjGHmIRNRAxHghgAG5GCR6QMTHeEmIrlE4RlZFLhrwhorGHBON4k8xqMBBRFFZBAFhnz+qd52dnd2dWXp3ZvH7fr32NU51VXf1tMxvqquqK6+kpAQREZG91SDbFRARkX2DAoqIiMRCAUVERGKhgCIiIrFQQBERkVgooIiISCz2y+bBzawhMBq4GOgAvAfcBsxx95Tjmc3sGGAWcCKwGZgD3FhZfhERqRtZDSjABOBaYDKwEjgFmAk0A25MzmxmhwB/Bf4FDAa6A1OB3cDv6qbKIiKSSl62JjZGrZNPgFnuPiEhfQ5wrrsfkqLMJOAyoIO7b4vSJgOXAu3cfVedVF5ERCrIZh9KS+Ae4KGkdAfamlnzFGX6AstKg0mkCGgNfKdWaikiImnJ2i0vd/8EuDzFpjOBde7+eYptRwFPJaX9O2Hb87FVUEREMpLtPpRyzOxnhFbIqEqytASKk9KKE7ZlcqwmhFbNBkIfjIiIVK0h0B74m7vvSN6YMwHFzC4AbgceBG6tJFseUFmnz54MD/kd4NkMy4iISBhAtSI5MScCipmNIYzSegS4oIohwJ8BLZLSWiRsy8QGgPvuu4927dplWDS3rV69GoAuXbpkuSZSE7p+9du+fP0++OADLrjgAoi+P5NlPaCY2TRgLKGDfri7f1lF9reBzklppe89w0PvBmjXrh35+fkZFs1txcXhLuC+dl5fF7p+9dvX5Pql7CbI6kx5MxtNCCazgIuqCSYAy4C+SSPAzgY+Bv5RO7UUEZF0ZK2FYmbtgenAa8ADwIlmlpjlZaAj0NbdV0ZptwG/ABaZ2QzgOEJAutbdd9ZV3UVEpKJs3vL6EdAEOBZ4IcX2toSZ9D8ldMbj7hvMrC+hRfMgsBEY5+6aJS8ikmXZnIcyF5hbTbaLor/Eci8DJ9VGnUREpOb0tGEREYmFAoqIiMRCAUVERGKhgCIiIrFQQBERkVgooIiISCwUUEREJBZZf5aXiHx9rTq6a1aO2/XNVRmX6d27Nw0aNODRRx+ladOm5bYNHTqUDh06MHXqVAC2b9/OrFmzWLx4MevXr6dly5Z069aN4cOH061bt7JyDz30EGPHjmXixImcf/755fb54osvcuGFF/L000/Trl07Zs+eza23VvYgdnjwwQc59thjMz6vOCmgiIikae3atdx8882MGzeu0jzFxcWMGzeOBg0aMHr0aAoKCti8eTPz589nyJAhXH/99QwaNKhcmRkzZtCrVy/at29f5fG/+c1vMm/evJTbDjrooMxPKGYKKCIiaTrssMMoLCykX79+dO/ePWWeO++8k+3bt7Nw4UJatWoFhCcPFxQU0KZNGyZNmkSPHj04/PDDAWjQoAGtWrViwoQJ3HXXXVUev2HDhrRt2zbWc4qT+lBERNI0cOBAunXrxrhx49ixo8KChWzevJkVK1Zw5plnlgWTRJdeeimNGjVi/vz5ZWl5eXlMnjyZZ599loceeqhW61/bFFBERNKUl5fH1KlTWb9+PbNnz66w/bXXXmPPnj0cffTRKcs3btyY448/nldeeaVc+kknncSgQYP47W9/y4cfflgrda8LCigiIhno1KkTo0aN4g9/+AP/+te/ym3bsmULAC1aJC8s+5VWrVqxefPmCuljx46lSZMmTJo0qdKya9eupVu3bhX+olUUs059KCIiGRo2bBhLly5l7Nix5W5Tld7m2r59e6Vli4uLad26dYX0Fi1aMGnSJEaOHMljjz1GmzZtKuRp3749c+fOrZDepEmTGpxF/NRCERHJUMOGDZk2bRpr1qzh9ttvL0svKChgv/3244033khZbufOnfzzn//k+OOPT7m9d+/e9O/fn8mTJ6dsxey333507Nixwl+7du3iObG9pIAiIlIDRx55JCNHjuT3v/8977//PgAHHnggP/jBDygqKuKTTz6pUObuu+9m27ZtDB48uNL9jh8/ngYNGnDTTTfVWt1riwKKiEgNjRgxgiOOOIIPPvigLG3YsGG0bt2a8847r2xi46pVq5gyZQpz5szhN7/5DZ06dap0nwcddBATJkxg7dq1Fbbt3r2bTZs2pfyr6jZbXVEfiohIDTVq1IgbbriBc889tyytWbNmTJkyhZdeeonbbruN999/n+bNm3PCCSdQWFhY6e2uRP36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\n",
  432.       "text/plain": [
  433.        "<Figure size 432x288 with 1 Axes>"
  434.       ]
  435.      },
  436.      "metadata": {
  437.       "needs_background": "light"
  438.      },
  439.      "output_type": "display_data"
  440.     }
  441.    ],
  442.    "source": [
  443.     "reorder = osense_mean.best.unstack(0)\n",
  444.     "reorder = reorder[[2.0, 1.0, 0.2]]\n",
  445.     "reorder\n",
  446.     "reorder.T[[\"NONE\", \"SQRT\", \"LINEAR\"]].plot.bar(rot=0,colors=[\"C3\", \"C4\", \"C5\"], grid=True)\n",
  447.     "plt.ylim([0, 2])\n",
  448.     "plt.ylabel(\"Loss\")\n",
  449.     "plt.xlabel(\"Startup Delay (s)\")\n",
  450.     "plt.legend(fontsize=15)\n",
  451.     "plt.savefig(\"./overhead-sensitivity-loss.pdf\", bbox_inches='tight')"
  452.    ]
  453.   },
  454.   {
  455.    "cell_type": "code",
  456.    "execution_count": 293,
  457.    "metadata": {},
  458.    "outputs": [
  459.     {
  460.      "data": {
  461.       "image/png": "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\n",
  462.       "text/plain": [
  463.        "<Figure size 432x288 with 1 Axes>"
  464.       ]
  465.      },
  466.      "metadata": {
  467.       "needs_background": "light"
  468.      },
  469.      "output_type": "display_data"
  470.     }
  471.    ],
  472.    "source": [
  473.     "reorder = osense_mean.best_iter.unstack(0)\n",
  474.     "reorder = reorder[[2.0, 1.0, 0.2]]\n",
  475.     "reorder\n",
  476.     "reorder.T[[\"NONE\", \"SQRT\", \"LINEAR\"]].plot.bar(rot=0, colors=[\"C3\", \"C4\", \"C5\"], grid=True)\n",
  477.     "# plt.ylim([0, 2])\n",
  478.     "plt.ylabel(\"Iterations to Best Score\")\n",
  479.     "plt.xlabel(\"Startup Delay (s)\")\n",
  480.     "plt.legend(fontsize=15)\n",
  481.     "plt.savefig(\"./overhead-sensitivity-iter.pdf\",bbox_inches='tight')"
  482.    ]
  483.   },
  484.   {
  485.    "cell_type": "markdown",
  486.    "metadata": {},
  487.    "source": [
  488.     "# Benefits of Dynamic Resource Allocation"
  489.    ]
  490.   },
  491.   {
  492.    "cell_type": "code",
  493.    "execution_count": 302,
  494.    "metadata": {},
  495.    "outputs": [],
  496.    "source": [
  497.     "dra = pd.read_csv(\"/Users/rliaw/Research/riselab/sosp2019/scripts/ablations/test_dra.csv\")\n",
  498.     "dra.best = -dra.best"
  499.    ]
  500.   },
  501.   {
  502.    "cell_type": "code",
  503.    "execution_count": 303,
  504.    "metadata": {},
  505.    "outputs": [],
  506.    "source": [
  507.     "dra_mean = dra.groupby([ \"num_atoms\", \"scaling\"]).mean()"
  508.    ]
  509.   },
  510.   {
  511.    "cell_type": "code",
  512.    "execution_count": 306,
  513.    "metadata": {},
  514.    "outputs": [
  515.     {
  516.      "data": {
  517.       "image/png": "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bNnCKaecErfO1VdfzdixY2v2hWoopaSkJNQGhMXMugAbV69eTWZmZtjN8Wr9+mBYiR49whnWQmpGx69ha8zHb/PmzQwYMAAgyzn3QexynfISEREvFCgiIuKFAkVERLxQoIiIiBcKFBER8UKBIiIiXihQRETECwWKiIh4oUAREREvFCgiIuKFxvISkdDkX7omlP1eflv/atctKiqioKCADRs2kJKSgpkxatQozjzzzLJ1du/ezaJFi1i+fDmbN2+mdevW9OzZk7Fjx9KzZ8+y9V588UVGjRpVbvspKSkccsghfP/73+eqq67iuOOOix7ypFI33ngjv/jFL6r9vXxQoIiIJGjJkiXMnj2bvLw8evfuzd69e3niiSeYNGkSu3fvZujQoezcuZO8vDwArrjiCo4//ni2b99OYWEhI0aM4IYbbmDYsGHltrt06VLat28PwP79+9m4cSOzZs3i4osv5sknn6Rjx46sXbu2bP2ZM2eybds25s+fX1ZW1SyRdUWBIiKSoCVLljB8+PByPYHu3bvzwQcf8Mc//pGhQ4dy77338uWXX7Js2bKyGRwzMzPJzs6mXbt2TJs2jd69e9OlS5eybWRkZJQFCsCRRx7JddddxwUXXMC6desYMGBAueUtWrQgNTW1XFl9oGsoIiIJatKkCf/6178oLi4uV37NNdewcOFCduzYwTPPPMOQIUPKwiTa+PHjSU1NpbCw8ID7SktLA4JZGhsKBYqISILGjh3L66+/zqmnnsqll17K3Xffzfr168nIyCAzM5M33niDb775hmOPPTZu/bS0NE488UReeeWVKvezefNm5s6dS4cOHejTp09tfJVa0XCiT0QkZIMGDeLII4/kvvvu4/nnn+epp54C4Hvf+x5z5swpm/a3devWlW6jbdu2bN68uVzZGWecQUpKCgB79+4lNTWVvn37cv/991e5rfpGgVKH1h/rZ8KdHm+v97IdEUler1696NWrF/v27ePNN99kzZo1FBQUcPHFFzN9+nQAdu7cWWn9HTt20KZNm3Jld911F+3bt+eLL75g4cKFbNq0iYkTJ9KpU6da/S6+6ZSXiEgCtm7dytSpU9m2bRsATZs2JTs7myuuuIL58+ezdetW2rZtS2pqatmsjbH27NnD66+/zgknnFCuPDMzk86dO5OdnU1+fj6tWrXioosuKuvxNBQKFBGRBDRv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\n",
  518.       "text/plain": [
  519.        "<Figure size 432x288 with 1 Axes>"
  520.       ]
  521.      },
  522.      "metadata": {
  523.       "needs_background": "light"
  524.      },
  525.      "output_type": "display_data"
  526.     }
  527.    ],
  528.    "source": [
  529.     "reorder = dra_mean.best.unstack(0)\n",
  530.     "# reorder = reorder[[]]\n",
  531.     "reorder\n",
  532.     "reorder.T[[\"NONE\", \"SQRT\", \"LINEAR\"]].plot.bar(rot=0,colors=[\"C3\", \"C4\", \"C5\"], grid=True)\n",
  533.     "plt.ylim([0, 2])\n",
  534.     "plt.ylabel(\"Loss\")\n",
  535.     "plt.xlabel(\"Atoms\")\n",
  536.     "plt.legend(fontsize=15)\n",
  537.     "plt.savefig(\"./dra-loss.pdf\", bbox_inches='tight')"
  538.    ]
  539.   },
  540.   {
  541.    "cell_type": "code",
  542.    "execution_count": 307,
  543.    "metadata": {},
  544.    "outputs": [
  545.     {
  546.      "data": {
  547.       "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZkAAAEYCAYAAACOSYuzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xt8VMX9//FXQBIVEoGCYo1iBPkUrShov1ov1QK10qKIt0pBlB8K6rcFC1hAkIKICBRFEatVFBVtSS1QRZAqtH7xXi/1QtOPgjewSmlBiIgEgd8fcxI3yyYky242l/fz8djHZmfmzM7xYD6ZM3Nmsnbt2oWIiEg6NMp0A0REpP5SkBERkbRRkBERkbRRkBERkbRRkBERkbTZJ9MNqC3MLAf4DvAJsCPDzRERqSsaAwcDf3P3bfGZCjJf+w6wItONEBGpo04Dno1PVJD52icADz/8MG3atMl0W1Ju1apVALRv3z7DLZHq0rWr2+r79fv000/p27cvRL9D42U0yJjZN4D/JMj6o7tfYGZZwHXAYKAV8Bzwc3f/Z0wdOcDNQB+gKbAUGOLu/6pmc3YAtGnThvz8/GqfS21XXFwMUC/Prb7TtavbGtD1SzjMkOmB/2Oj9zOB78a8Rkfp44CxwK+Bi4EDgGVmdkBMHXcB/YFRwICozsVm1jjtrRcRkUpl+nZZJ2Cduz8Vn2FmucAIYLy73x6lrQA+BAYCt5hZO0KA+am7z4vKvAE40AuYXyNnISIiCWW6J9MJeLOCvJOAZsBjpQnuvhF4BjgrSuoavS+KKfMusDKmjIiIZEht6Ml8aWbPA10I4zO3EW6PdYjKrI475j1CL4WozKfuviVBmQ4kYdWqVWX3UOuTrVu3AlBUVJThlkh16drVbfX9+q1bt67S/IwFmWjM5ChgC+G22IfAjwmD+PsB24Ft7l4Sd2gxkBf9nBd9jlcMHJqGZouISDVkuifTE/jI3VdFn/9qZs2AkcAkoKJ9CHZG71lVKFMt7du3r5ezQEr/iurYsWOGWyLVpWtXt9X365ebm1tpfsaCjLvvAJYnyHoSuJLQw8kxsybuvj0mPxfYFP28KfocL7aMiIhkSMYG/s3sm2Y2yMxax2XtF71vJPRUCuLyjyDMHgN4F2hjZvtVUkZERDIkk7fLcoC7CQ9Q3hqTfj7wDmH68d3AucBUADNrAZwOTIjKLiOsm3M2UBiVORI4Ghif7hMQEUmV6T/pmbK6hs9btOdCNSSTt8veN7PfARPNbCdQBFxICDLnuvvnZjYzJv8dYAywGbg3qmO1mf0BuCd6QHMjMJkwLXphjZ+UiIiUk+mB/4HA9cA1hFU8i4Dz3b302ZjrCAP4IwjPzDwPXOruseMtAwg9oSmE239PE5aV0UrKIiIZltEg4+5bCYHkugryvyIsFzOqkjq2AIOiV0YUfSszs0Y6/rP68+67du1Ko0aNePzxx9lvv/JDWZdccgmHHXYYkyZNAuDzzz9n9uzZLFmyhI8//pi8vDw6d+7MwIED6dy5c9lx8+fPZ/To0YwfP54+ffqUq/Oll16if//+PPPMM7Rp04aZM2dyxx13VNi+Rx99lGOOOaba5yUitVOmezKSAWvWrOGWW25hzJgxFZb57LPP6NevH9u3b2fo0KF06tSJDRs2UFhYSL9+/bjhhhs4//zzyx0zbdo0zjjjDA4++OBKv/+QQw5h3rx5CfNatGhR/RMSkVpLQaYBOvTQQ5k7dy49evSgS5cuCctMnDiRLVu2sGDBApo3bw6EVWQ7depEq1atmDBhAscffzyHH344AI0aNaJ58+Zcf/313HvvvZV+f+PGjWndOn5SoYjUR5leu0wyoHfv3nTu3JkxY8awbdtuG9mxYcMGlixZwqWXXloWYGJdffXVNGnShMLCwrK0rKwsJk6cyIoVK5g/X+uSikigINMAZWVlMWnSJD7++GNmzpy5W/5bb73Fjh07KuzlZGdnc9xxx/H666+XSz/llFM4//zzufnmm/n3v/+dlraLSN2iINNAFRQUMGTIEO677z7efvvtcnmbN28GSNiLKdW8eXM2bNiwW/ro0aPJyclhwoQJCY4K1qxZQ+fOnXd7RbvriUg9ojGZBmzAgAEsXbqU0aNHl7vFVRpcPv/88wqPLS4upmXLlrul5+bmMmHCBK666iqeeOIJWrVqtVuZgw8+mDlz5uyWnpOTk8RZiEhtpp5MA9a4cWNuuukm3n//fe66666y9E6dOtGkSRNeffXVhMeVlJTwxhtvcNxxxyXM79q1Kz179mTixIkJezv77LMPbdu23e3Vpk2b1JyYiNQaCjIN3JFHHslVV13F3XffzUcffQTAAQccQO/evZk9ezYbN27c7ZjZs2fzxRdfcNFFF1VY79ixY2nUqBHTp09PW9tFpPZTkBEGDRpEu3bt+PTTT8vSRo4cyYEHHsjFF19c9jBmUVERN954I7NmzeJXv/oVBQXxa5d+rUWLFlx//fWsWbNmt7wdO3awfv36hK/SDZ5EpH7QmIzQpEkTJk+ezIUXXliW1qxZMx566CEefPBB7rzzTj766COaNm3KCSecwNy5cyu8VRarR48eLFmyhKVLl5ZL//jjjzn11FMTHvPLX/6SgQMH7t0JiUitkbVrV0V7fjUsZnY48P6yZcu0aZnUKrp2dVtVr19dXYV57dq1dOvWDaDA3T+Iz9ftMhERSRsFGRERSRsFGRERSRsFGRERSRsFGRERSRsFGRERSRsFGRERSRsFGRERSRsFGRERSRsFGRERSRutXZYCs65cnpHv/d+7uiZ13MKFC5k7dy6rVq0iKysLM6N///786Ec/KiuzdetW7r//fhYvXszatWtp2rQpnTt3ZuDAgXTu3Lms3EsvvUT//v3L1Z+VlUWzZs04+uijufbaa/n2t78du/REhSZPnsx5552X1DmJSO2kINPAzJs3jylTpjB27FiOP/54tm/fzlNPPcWwYcPYtm0bvXv3ZvPmzfTr149t27ZxzTXXcMwxx7BhwwYKCwvp168fN9xwA+eff365ehcsWEDr1q0B2LlzJ++//z433XQTV1xxBU8//TQHH3wwzz77bFn5SZMmsX79embMmFGWlpubWzP/EUSkxijINDDz5s3joosuKtdjaN++PR988AEPPvggvXv3ZvLkyRQXF7NgwYKyXTLz8/Pp1KkTrVq1YsKECRx//PEcfvjhZXW0bNmyLMgAHHTQQYwbN46+ffvy4osv0q1bt3L5++67L02aNCmXJiL1j8ZkGphGjRrx2muvUVxcXC595MiRzJw5k82bN/P4448zYMCAsgAT6+qrr6ZJkyYUFhbu8buys7OBsBOmiDRMCjINzMCBA3nzzTc57bTTuPLKK5k9ezZFRUW0bNmS/Px83nrrLbZv306XLl0SHp+dnc1xxx3H66+/Xun3rF27lmnTptGmTRtOOOGEdJyKiNQB+hOzgenRowcHHXQQDzzwAM899xx/+ctfADjqqKOYOnVq2XbLeXl5FdbRvHlz1q5dWy7trLPOIisrC4Dt27fTpEkTTj75ZB566CGaNm2aprMRkdpOQaYB6tKlC126dGHHjh2sXLmS5cuXM3fuXK644gomTpwIwGeffcZhhx2W8PjNmzfvFoTuvfdeWrduzaZNm5g5cyZr1qxh6NChFdYhIg2Dbpc1IOvXr2f8+PGsX78egMaNG9OpUyeuueYaZsyYwSeffELz5s3Jzs7mtddeS1hHSUkJb775Jscee2y59Pz8fNq2bUunTp2YNWsW+++/P5dffnlZz0hEGqZaEWTMLMfMisxsTkxalpmNMbOPzOwLM3vKzL6V4LhbzexTMys2s0fN7Js1fgJ1RE5ODo8++iiLFu2+NWteXh5ZWVl84xvfoFevXtx///1lAWLz5s1069aNOXPmcM8991BcXEyfPn0q/J7s7GymTJnChg0bynpGItIw1YogA/wK+FZc2jhgLPBr4GLgAGCZmR0QU+YuoD8wChgAHAssNrPGaW9xHZSXl8fAgQOZPn06M2fOxN358MMPeeqppxg9ejS9e/fmm9/8JqNGjaJVq1ZcfPHFLFmypOy5mWnTpnH77bczcOBA2rVrV+l3HXnkkQwaNIgnnniCZ555pobOUERqm4yPyZhZZ2AI8J+YtFxgBDDe3W+P0lYAHwIDgVvMrB0hwPzU3edFZd4AHOgFzK+pc0j2yftM+MUvfkHbtm0pLCxkzpw5bNu2jcMOO4zevXtz2WWXAdCsWTMeeeQR5syZw6xZs1izZg377bcfp556Koceeihz587lyy+/ZPTo0ZV+15VXXsmTTz7J+PHjWbRokSYAiDRAGQ0yZrYPcB8wDegdk3US0Ax4rDTB3Tea2TPAWcAtQOlv9kUxZd41s5VRmRoLMnXNeeedt8flW3Jychg8eDCDBw/eLa9v376sWLGCRo0aceKJJ+LuCevIzs5m8eLFCfNuvvnm6jdcROqcTPdkRgLZwGTKB5kO0fvquPLvEXoppWU+dfctCcp0QNKmoKCAgoKCTDdDROqAjAUZM+sIjAG6uXuJmcVm5wHb3L0k7rDiKK+0TDG7KwYOTbZdq1at2u1p+Ppg69atABQVFWW4JVJdunZ1WyauX01+17p16yrNz8jAv5k1Au4FZrv7CwmKZAG7Kjh8ZzXKiIhIBmWqJ/Nz4DDgx9G4TKms6PMmIMfMmrj79pj83CiP6D3Rsr2xZaqtffv25OfnJ3t4rVX6l03Hjh0z3BKpLl27uq2q1y/x6GVyavLfyp5WT8/UFObeQD6wEdgevY4lzBYr/ZwFxN/4P4IwewzgXaCNme1XSRkREcmgTAWZwcB34l7vEGaKfQf4PfAlcG7pAWbWAjgdWBYlLQMaA2fHlDkSODqmjIiIZFBGbpd5gjmvZrYV+K+7vxJ9nglMNLOdhAA0BthMGMvB3Veb2R+Ae6IHNDcSZqm9CSyskRMREZFKZXoKc2WuIwzgjyA8M/M8cKm7x463DABuBaYQemVPA0PcfUcNt1VERBKoNUHG3Y+L+/wVYbmYUZUcswUYFL1ERKSWqTVBpi6b/pOeGfne4fN2X+hyT7p27coFF1zA1VdfvVve/PnzGTt2LP/4xz8AmDlzJnfccQf33HMP3/ve9yotO2rUKBYsWFDh977wwgu0bNmy7HNJSQmnnXYau3btYsWKFeTk5JQrf8kll/Dyyy+XS8vOzubAAw+kZ8+eDBkyhMaNtUSdSG2nICN7NG7cOBYtWkSzZs0qLXfCCScwY8aMhHktWrQo93n58uVkZ2fz+eefs2TJEs4999zdjunZsyejRn3dkS0uLmbp0qXMmDGDpk2bMmiQOrAitV1tWYVZaqnmzZtTXFzM1KlT91i2SZMmtG7dOuGrdNfMUgsWLOC73/0up5xyCoWFhQnr23fffcvVccQRR3DVVVdx0kknsWTJkpScn4ikl4KMVCovL4+RI0dSWFjIiy++mJI6169fz7PPPsvJJ5/MmWeeyauvvsrq1fHL1FUsOztbt8pE6ggFGdmjiy66iJNOOomxY8eWrcO0Nx577DGysrLo2rUrXbt2JScnh3nz5u3xuJKSEhYuXMhzzz3HOeecs9ftEJH005iMVMmNN97I2WefzS233MKYMWMSlnn55Zfp3Lnzbundu3dn2rRpZZ8XLlzIySefTF5eWOv09NNP509/+hPDhw8vNwFg4cKF5bYK+PLLL2nbti2jR4+mX79+qTo1EUkjBRmpkvz8fIYNG8ZNN91Ejx49Epbp1KkTU6ZM2S19//33L/v5rbfe4p133mHAgAFlaT169ODPf/4zTz75JL169SpL7969O8OGDWPnzp288sorTJkyhe7du3PJJZek8MxEJJ0UZKTK+vXrx5IlSxgzZgz9+/ffLX/fffelbdu2ldZROs157NixjB07tlxeYWFhuSDTrFmzsvoKCgrIzc1l6NCh5OXlaWaZSB2hICNVlpWVxaRJk+jVqxezZ8+u9vElJSU88cQTdO/enaFDh5bLmzNnDn/84x9ZvXo17dq1S3j8WWedRc+ePbn99ts5/fTTiduDSERqIQ38N0Affvgh//d//1fu9cYbb1Tp2IKCAoYMGcKaNWt2y9u+fTvr169P+CopKWH58uV89tlnDBgwgA4dOpR7DR48mEaNGlU4nbnUmDFjaNq0KePGjWPnTm0bJFLbqSfTAC1cuJCFC8uvIdqlSxcuvPDCKh0/YMAAli5dysqVK8ulv/LKK5x66qkJj7nttttYsGABZsYJJ5ywW37btm0544wzWLhwIcOHD6/wu1u2bMno0aMZOXIkc+fOTXjbTkRqj6xduyraXLJhMbPDgfeXLVumTcukVtG1q9uqev1SuTxVMktOJWvt2rV069YNoMDdP4jP1+0yERFJGwUZERFJGwUZERFJGwUZERFJGwUZERFJGwUZERFJGwUZERFJm6QfxjSzfHdfG/3cDhgAbAcecvf3UtQ+ERGpw6odZMwsH3gSKAG6mFkb4G9A86jIMDM73d3/nrpmiohIXZTM7bLJwKHAHdHnywkB5gLgcGANMDEVjRMRkbotmSBzJnCLu98Xfe4NfODu8939I+BeIPECViIi0qAkE2RyCb0VzOwQoDOwJCb/yyTrFRGReiaZYPAe8N3o50uBXcCfAMwsCzgfeDclrRMRkTotmdlldwG3m9n/AEcBRcBTZnY08CBwHKD110VEpPo9GXe/gxBE1gL3AWe5e+l+AY2By9z94dQ1UURE6qqknpNx97nA3Li0lYRejIiICJBkkInGXk4BDiL0Xnbj7pXvoysiIvVeMg9jdgIWAYcAWRUU2wXsMciYWTYwDrgEaAW8BIxw99ei/CzgOmBwlP8c8HN3/2dMHTnAzUAfoCmwFBji7v+q7rmJiEhqJTO77FagBTAaOAv4foJX12rUNYQQJM4FvgD+YmZto/xxwFjg18DFwAHAMjM7IKaOuwhjRKMIS9scCyw2s4Q9LBERqTnJ3C77LjDJ3afuzRdHgeIKYJS7/yZKexb4L3CJmd0GjADGu/vtUf4K4ENgIHBLtGZaf+Cn7j4vKvMG4EAvYP7etFFERPZOMj2ZTdFrb20BTgTuj0nbTrjVlgOcBDQDHivNdPeNwDOEHhR83WNaFFPmXWBlTBkREcmQZHoyjwADzOwud/8q2S+Ojn0dwMwaEdY9G08IMnOB7lHR1XGHvkfopQB0AD519y0JynRItm0iIpIayQSZlwmLYa40s0XAemBnXJld7j6tGnVeTwgwAOPc3c3sPGCbu5fElS0G8qKf86LP8YoJi3hW26pVqyguTlRl3bZ161YAioqKMtwSqS5du7otE9evJr9r3bp1leYnE2R+F/PzLyooswuoTpBZAPyVMGlgXDTrbGtUTyKlQS2rCmVERCRDkgkyBaluhLu/Gf34jJnlAtcCI4EcM2vi7ttjiufy9ZjQpuhzvNgy1dK+fXvy8/OTObRWK/3LpmPHjhluiVSXrl3dVtXrtziF31mT/1ZycxP9Cv5atYOMu38Y+9nM8oASd/+yOvVEm531AB5199j7U68TBv43EnoqBcA7MflHEGaPQViIs42Z7efuW+PKrKhOe0REJPWSWpLfzA4xswfMbAMhGGwxs/9GaVUdC2lOWPvsgrj0M4F/AwsJ2wacG/O9LYDTgWVR0jLCigNnx5Q5Ejg6poyIiGRIMk/8Hwa8CBwI/JmwCnNjwIC+wA/N7AR3X1tZPe7+TzP7IzA9GoN5DziP8PT//3P3zWY2E5hoZjsJvZkxwGbCxmi4+2oz+wNwT/TczUbCzp1vEoKUiIhkUDJjMpMJy7ec6O6vxmaYWRdgOWH75QFVqKs/8CvC6gEHA/8ALnT3R6P86wgD+CMIz8w8D1zq7rHjLQMIKwdMIfTMniYsK7MjiXMTEZEUSibI/BC4PT7AALj7a1Hv4/KqVOTuXxAG+EdWkP8VYbmYUZXUsQUYFL1ERKQWSWZMpilQ2cTofxPWGBMRkQYumSDzNnBhtEJyOdGT+xcRbnuJiEgDl8ztsqnAPOBpM5tOmEYMYeB/GHAy0C81zRMRkbosmedk/mBm3wRuAh6PycoCtgEj3f13CQ8WEZEGJdntl28zs4eAHwBtCQHmA+Bpd/9v6ponIiJ1WVJBBsDdNxBum4mIiCS0xyBjZouBqe7+15jPe7LL3X+8l20TEZE6rio9mY58vbQ+wFFUvPKxiIhImT0GGXcviPt8eNpaIyIi9Uq1n5Mxs/vM7MRK8r9vZo9XlC8iIg1HVcZk9qX87bLLgJfN7P0ExRsRtkbuniBPREQamKqMyTQH/snXm4PtAmZFr0SygL/sfdNERKSuq8qYzKdm1gf4H0IAGUfYLvnNBMV3AOvR1GYREaGKz8m4+xJgCYCZtQXucveX0tkwERGp+5JZVmaP+8SYmbm776mciIjUb8nsjLkP4ZbZmYSNxGJnqO1DGLs5kLBbpojUoOk/6ZmSeobPW5SSekSSWer/RmAsYSfLnYTVl9cTxmvaE2aiDU1VA0VEpO5KJshcRNhiuQD4MSG4/MzdOxJ2zWwMfJWyFoqISJ2VTJA5BJjv7jvdfQ2hF3MKgLs/BdwHXJG6JoqISF2VTJDZQpiqXOodoFPM51eBI/amUSIiUj8kE2ReAc6L2X75baKeTOQIdLtMRERIbj+Z6cBi4G0zOwV4ABhsZosIvZrBwJOpa6KIiNRV1e7JuPtSoCfwIbDZ3V8ErgO+D1wDvBW9i4hIA5fMczI9geejVQAAcPebzexWYH9335jKBoqISN2VzO2yB4E7Cc/KlHH3bcC2VDRKRETqh2QG/ncA/011Q0REpP5JpiczBLjFzL4EniU8J7MzvpC7/3sv2yYiInVcMkHmTqApcMceymntMhGRBi6ZIHMbYeMyERGRSiWz1P/4VH25mTUmLKZ5BXAYYVr0ncAsd98VPfB5HeHZm1bAc8DP3f2fMXXkADcDfQg9rKXAEHf/V6raKSIiyUmmJwOAmZ1OWCDzUGASYbmZk4FCd99exWquB0YBE4EXgdOAGcD+wFTClgKjgJHAB4QZbcvM7Ch33xTVcRdwDjAc+ByYDCw2s+PdPXb5GxERqWHJPCfTGHgI+ElM8j2EnsZDwJVm1jMmCFRWzzBgmrtPipKXmVlrYISZ/QYYAYx399ujY1YQejsDCZMP2gH9gZ+6+7yozBuAA72A+dU9PxERSZ1kpjBfRwgwPwPaEZb6B/gToTdxIqEHsid5hGdu4gOBA62BroRN0R4rywgPej4DnBUldY3eF8WUeRdYGVNGREQyJJnbZZcBs939N2b2jdLE6GHMW83sCKA3IeBUKAoYP0uQdTawFsiPPq+Oy3+P0EsB6AB86u5bEpTpsOdTERGRdEomyBxCWIm5Im8BlyfTGDO7HOhOeBYnD9jm7iVxxYqjPKL34gRVFRPGiqpt1apVFBcnqrJu27p1KwBFRUUZbolUVyaunf6dpE59v37r1q2rND+Z22VrgGMqyf8eoSdSLWbWlzCI/yjhGZwsKp4qXfrwZ1XKiIhIhiTTk5kDjDOzF4BlUdouM9sXuJYwlXhidSo0s2HArwnjL32j6cubgBwzaxI3Wy0XKJ1UsCn6HC+2TLW0b9+e/Pz8PResY0r/sunYsWOGWyLVVZ1rtzhF36l/J6lT1euXqmtXle9KpdzcRL+Cv5ZMT+Zm4I/AXOCjKO33wGZgAmEvmUmJD92dmd1E2KPmIeCCmNtj7xJ6KgVxhxxBmBxQWqaNme1XSRkREcmQZPaT2eHuPwV+APwWWAK8TujhnOvuP67qczJmNhQYTVhF4DJ3j91R83ngS+DcmPItgNP5uge1jLB8zdkxZY4Ejo4pIyIiGZLMczLfA4rcfRkJfpGbWT5wmrv/bg/1HAxMIUwU+D1wopnFFnkFmAlMNLOdhF03xxB6TPcCuPtqM/sDcI+ZHQBsJDyM+SawsLrnJiIiqZXMmMxfgH5ARUHkR4Sn9isNMsAPgRzCJIIXEuS3JjyTs5PwUGYzQu/m0rgHPQcAtxICViPgacKyMnraX0TSbtaVy6tUbjmfpLkltdMeg4yZFfD1bC+i91+a2SUJijcCjgf2uMy/u88h3GLbk1HRq6J6tgCDopeIiNQiewwy7v6+mX1MGIOBMGX4EKB5guI7gFXADSlroYiI1FlVul3m7mW9hGh85Bp3fyRtrRIRkXqhKrfL/icu6aQK0stx95f3ol0iIlIPVKUn8yLV26Ss9Cl87YwpItLAVSXIDEh7K0REpF6qysD/AzXREBERqX+SWVZGRESkShRkREQkbRRkREQkbRRkREQkbRRkREQkbRRkREQkbRRkREQkbRRkREQkbRRkREQkbZLZtEzqsek/6ZmyuobPW5SyukSkblJPRkRE0kZBRkRE0kZBRkRE0kZBRkRE0kZBRkRE0kZBRkRE0kZTmEUybNaVy6tUbjmfpLklIqmnnoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKRNrZnCbGbnAA+7e25MWhZwHTAYaAU8B/zc3f8ZUyYHuBnoAzQFlgJD3P1fNdh8ERFJoFb0ZMzsZGAukBWXNQ4YC/wauBg4AFhmZgfElLkL6A+MAgYAxwKLzaxxutstIiKVy2hPJuqFDAUmAluA7Ji8XGAEMN7db4/SVgAfAgOBW8ysHSHA/NTd50Vl3gAc6AXMr7mzERGReJm+XdYDGA1cC3wDGB6TdxLQDHisNMHdN5rZM8BZwC1A1yhrUUyZd81sZVSmwQQZPTUuIrVRpm+X/Q0oiHoqu+LyOkTvq+PS34vJ6wB86u5bKikjIiIZktGejLt/XEl2HrDN3Uvi0oujvNIyxQmOLQYOTaZNq1atorg4UZVSXUVFRZlugiRJ165uq8nrt27dukrzM92TqUwWu/duSu2sRhkREcmQTI/JVGYTkGNmTdx9e0x6bpRXWiZ3tyPLl6mW9u3bk5+fn8yhGVUbx1o6duyY6SbUCbp2dVtDv365uYl+BX+tNvdk3iX0VAri0o8gzB4rLdPGzParpIyIiGRIbQ4yzwNfAueWJphZC+B0YFmUtAxoDJwdU+ZI4OiYMiIikiG19naZu39uZjOBiWa2E3gHGANsBu5e9HV8AAAJBElEQVSNyqw2sz8A90QPaG4EJgNvAgsz03IRESlVa4NM5DrCAP4IwjMzzwOXunvseMsA4FZgCqFn9jRhWZkdNdxWERGJU2uCjLuPB8bHpX1FWC5mVCXHbQEGRS8REalFavOYjIiI1HG1pifTEBV9K4XTDM+Ylbq6ROo5/b9Xc9STERGRtFFPRiRJKftrWH8JSz2mnoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKTNPpluQKqY2RXAL4F84O/AMHd/IbOtEhFp2OpFT8bMLgXuAuYC5wOfAUvNrCCjDRMRaeDqfJAxsyxgAvBbd5/g7ouBc4D/AL/IaONERBq4Oh9kgPZAW+Cx0gR33w48AZyVqUaJiEj9CDIdovdVcenvAe3MrHENt0dERCL1YeA/L3ovjksvJgTRpsDmKtTTGODFF1+kVatWqWtdZXbtSllVm7f+NyX1bNu2PSX1APz1r39NWV21UoquX6quHaTu+unaVV1D/3/vP//5T+mPCf+gz9qVwv/YmWBmPwUeBtq4+7qY9MuBe4Bcd/+8CvWcCqxIW0NFROq309z92fjE+tCT2RS95wLrYtJzgR1VCTCRvwGnAZ8AO1LXPBGReq0xcDDhd+hu6kOQeTd6P4Ly4zJHAO9UtRJ33wbsFoVFRGSPVleUUR8G/t8F1gDnliaYWRPgx8CyTDVKRETqwZgMgJldDdwBTAaeA34GnAoc5+7vZbJtIiINWb0IMgBmNhwYCrQiLCszXMvKiIhkVr0JMiIiUvvUhzEZERGppRRkREQkbRRkREQkbRRkREQkberDw5hSiWiB0KHAFcBhwIfAncAsd9esjzrCzHIIsyZfcvfLMtwcqYLo/73hwCCgDbASGO3uyzPasBqmnkz9dz1wE2FDt3OAQmAGcG0mGyXV9ivgW5luhFTLtYT/9+4jPCy+GnjSzDpntFU1TD2Zeiz6S2oYMM3dJ0XJy8ysNTACmJqxxkmVRb+UhhA24pO641LgEXe/CcDM/kJ4SHwg4YHxBkE9mfotD3gQmB+X7kBrM2ta802S6jCzfQh/CU8DPs5wc6R6cojZZsTddxAW9G2ZsRZlgHoy9Zi7byTxX0xnA2vdfUsNN0mqbySQTVgyqXeG2yLVMwsYZ2YLgFeAy4CjgTGZbFRNU5BpYKJ9droTbr9ILWZmHQm/kLq5e4mZZbpJUj2/AboCT8ekjXX3xyooXy/pdlkDYmZ9gbuARwkLikotZWaNgHuB2VqDr+4xsyxgKXAScDXwfWAS8Csz+99Mtq2mqSfTQJjZMODXwGNAX01frvV+Tphy/uNoXKZUlpnt4+5fZahdUjWnEAb5L3L3P0Rpf42u5VQze6AaGyrWaerJNABmdhMwHXgIuMDdSzLcJNmz3kA+sBHYHr2OBfoD283s8Mw1Targ0Oj9xbj0Z4H9gcNrtDUZpJ5MPWdmQ4HRwG3AL9SDqTMGE7YQj/UwYbfXCcC/arxFUh2lu/KeAvw+Jv1E4CtgbY23KEO01H89ZmYHA+8T/sEPSlDkFd12qTvM7O/A3/XEf91gZouAk4GxQBFwBuEPvtvdfUQGm1aj1JOp335ImKt/DJBo8Lg1esBPJF0uBG4kzBBsSdgqfghwdyYbVdPUkxERkbTRwL+IiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoyIiKSNgoxIGpjZxWa2y8xer6TMETXZJpFMUJARSY8+wBbgODP7dnymmf2WsN+ISL2mICOSYmbWHDiLsJ/ILsI2vPHOBLJqsl0imaAgI5J65xN2s5xP2BGxr5k1zmyTRDJDa5eJpF4f4HPgVeBPhPWrfgA8CWBmpWs5tY1+/r67l+41MhIYQNhL5hPCCr4T3P2L6NjLgPsJ69FNJmyGVUxYZXsq8EvCltvNgGXAle6+Pjq2ZVSuK/AN4IOormnuvjM9/ymkoVNPRiSFzKwNYbXdJ6N9e/4UZfWPKXYJYWHSN6Ofi6L0QkJAegm4BngKuBZYErdxGYSAtQEYDrxHCDhLovqmAvcR9qT5dcwxhYRFU+8kBKK3gJsJgUkkLdSTEUmti4DGwAIAd3/bzFYB55pZnrtvdve5ZnYj8Im7zwUwsx8RgsIkdx9bWpmZ/YOw4dylwOyY73m6dMl/M3sKWE3Y6redu/8nSu9E6EFhZgcC3YAR7j49quNeM1sMtE/DfwcRQD0ZkVS7mLCL5RMxaQuB/QhLv1fkbMIkgWlx6XcAm4FecemPlf7g7u8RNsJ6vjTARN4H2kQ/byLcwrvSzHqZ2b7RsT9y98urcF4iSVGQEUmRaEvk7xLGYlqY2eFR2itRkf4VHAphO9517r4pNjG65baaMEYT699xn3dUkJYV1bMNuIqwpfNC4L9m9piZ9dGkBEknBRmR1Lk4ej+J0IsofZVuv3taFHQSqWw6c2OgJC4t0Y6mlW4OFd2aOxS4kjApoBvwCDG9IpFUU5ARSZ0+hF/+PyGMr8S+HiAEkksqOPYD4CAzOyA20cyygQLg471pmJk1NbNTgR3ufre7n0PYGbUQ+JGZddib+kUqooF/kRQws6OATsBj7l6YIP/vhNtl/YGJhFtZsX/kLQIGE2aTjY1JvxrIpfwYTzI6ACuAEYSJBLj7F2a2MspP1DMS2WsKMiKp0Sd6vz9Rprt/EM0CO9PMTgbWA8eb2WDC1OMnCIFmjJkVAM8CXYCBwAvAnL1pnLu/bmbLgUlmlg+8TQg8PweWRpMHRFJOt8tEUuNiQuCorMfx2+i9P3ADYW2z24DT3H0XYaWAGwiTB2YQxkwmA93cPRU9jQuAuwm37+4kBMbfUPmsN5G9krVrV6VjhSIiIklTT0ZERNJGQUZERNJGQUZERNJGQUZERNJGQUZERNJGQUZERNJGQUZERNJGQUZERNJGQUZERNJGQUZERNLm/wO4DQlJ76Dl3QAAAABJRU5ErkJggg==\n",
  548.       "text/plain": [
  549.        "<Figure size 432x288 with 1 Axes>"
  550.       ]
  551.      },
  552.      "metadata": {
  553.       "needs_background": "light"
  554.      },
  555.      "output_type": "display_data"
  556.     }
  557.    ],
  558.    "source": [
  559.     "reorder = dra_mean.best_iter.unstack(0)\n",
  560.     "# reorder = reorder[[]]\n",
  561.     "reorder\n",
  562.     "reorder.T[[\"NONE\", \"SQRT\", \"LINEAR\"]].plot.bar(rot=0,colors=[\"C3\", \"C4\", \"C5\"], grid=True)\n",
  563.     "# plt.ylim([0, 2])\n",
  564.     "plt.ylabel(\"Iterations\")\n",
  565.     "plt.xlabel(\"Atoms\")\n",
  566.     "plt.legend(fontsize=15)\n",
  567.     "plt.savefig(\"./dra-iter.pdf\", bbox_inches='tight')"
  568.    ]
  569.   },
  570.   {
  571.    "cell_type": "code",
  572.    "execution_count": 308,
  573.    "metadata": {},
  574.    "outputs": [
  575.     {
  576.      "data": {
  577.       "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEYCAYAAAByXKB5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xt8VNW5//FPggQUgkBBoUYgSn1KrSmgp1KBYoHjEYsiXjhSEOGHgNIWLEiREhFEQKB6UMRqFUVFT6EeQESBKtgWrZfipaJNH4tXoIpYRILlJuT3x56kuUxCspnMLd/36zWvyay195pn2CHPrL32XiujqKgIERGRmspMdAAiIpKalEBERCQUJRAREQlFCUREREJRAhERkVCOSXQA8WBmDYD/AD4GDiU4HBGRVFEPaA382d33l6+sEwmEIHlsSHQQIiIpqjvwfPnCupJAPgZ49NFHadWqVaJjibnNmzcD0L59+wRHImHo+KWudD92n3zyCYMGDYLI39Dy6koCOQTQqlUrcnJyEh1LzBUWFgKk5WerC3T8UlcdOnZRT/1rEF1EREJRAhERkVCS5hSWmV0EPOru2aXKMoBfAKOAFsALwE/d/W+JiVJERIolRQ/EzM4BFgMZ5aqmAPnAL4ErgOOBdWZ2fHwjFBGR8hLaA4ncnzEWmA58CWSVqssGrgemuvudkbINwIfAcOD2uAcsIiIlEt0D6QNMAiYA88vVdQEaAyuLC9z9c+APwPnxClBERKJLdAL5M5Ab6WGUX5jktMjzu+XK3ytVJyIiCZLQU1juvq2K6ibAfnc/UK68MFJXY5s3by65bjud7N27F4CCgoIERyJh6PilrnQ/dtu3b6+yPmmuwooig4q9kmKH4xmIiKSQ/pfErKn15y6o5pa7qqzd93nshmwvmDo3Zm0drWROIF8ADcysvrsfLFWeHamrsfbt26flHaPF3346dOiQ4EgkDB2/2ErPvsC/xfP3JDs7u8r6RI+BVOXvBL2Q3HLlpwAe/3BERKS0ZO6B/AnYB1wMzAEws2ZAD2BavIIo+GZivhV2+FvNv0f17NmTzMxMnnzySY499tgydVdeeSVt2rRhxowZAOzZs4eFCxeyevVqtm3bRpMmTejUqRPDhw+nU6dOJfstW7aMSZMmMXXqVAYOHFimzZdffpkhQ4bwhz/8gVatWjF//nzuuuuuSuN7/PHHOeOMM2r8uUQkOSVtAnH3PWY2H5huZoeBd4DJwG7g/oQGl8S2bNnC7bffzuTJkyvdZteuXQwePJiDBw8yduxY8vLy2LlzJ0uXLmXw4MHcfPPNXHrppWX2mTt3Lueeey6tW7eu8v1POukklixZErWuWbNmNf9AIpK0kjaBRPyCYMD8eoJ7Qv4EXOXuocZA6oKTTz6ZxYsX06dPHzp37hx1m+nTp/Pll1+yfPlymjZtCgSziebl5dGiRQumTZvGmWeeSbt27QDIzMykadOm3Hjjjdx/f9W5u169erRs2TKmn0lEklPSjIG4+1R3b1yu7Ct3v8HdW7l7Y3c/T/NgVa1///506tSJyZMns39/hQXE2LlzJ6tXr+aqq64qSR6ljR49mvr167N06dKSsoyMDKZPn86GDRtYtmxZrcYvIqkjaRKIxEZGRgYzZsxg27ZtzJ9f/uZ+2LRpE4cOHaq0d5KVlUXHjh15/fXXy5R37dqVSy+9lFtvvZVPP/20VmIXkdSiBJKGcnNzGTNmDA888ABvvfVWmbrdu3cDRO19FGvatCk7d+6sUD5p0iQaNGjAtGmVX8OwZcsWOnXqVOERWdVMRNJIso+BSEjDhg1j7dq1TJo0qcxpp+LEsWfPnkr3LSwspHnz5hXKs7OzmTZtGtdeey1PPfUULVq0qLBN69atWbRoUYXyBg0ahPgUIpLM1ANJU/Xq1WPmzJm8//773HPPPSXleXl51K9fn1dffTXqfgcOHOAvf/kLHTt2jFrfs2dP+vbty/Tp06P2Uo455hjatm1b4ZGOa9GL1HVKIGnsG9/4Btdeey333nsvH330EQDHH388/fv3Z+HChXz++ecV9lm4cCH/+te/GDBgQKXt5ufnk5mZyW233VZrsYtI8lMCSXMjR47k1FNP5ZNPPikpmzhxIieccAJXXHFFyY2EBQUF3HLLLSxYsICbbrqJ3NzyEwD8W7NmzbjxxhvZsmVLhbpDhw6xY8eOqI/iiedEJD1oDCTN1a9fn1mzZnH55ZeXlDVu3JhHHnmEhx9+mLvvvpuPPvqIRo0acdZZZ7F48eJKT1+V1qdPH1avXs3atWvLlG/bto1u3bpF3efnP/85w4cPP7oPJCJJI6OoqLIJb9OHmbUD3l+3bp0mU5Sko+MXW7Gcfqj6s/FWLZaz8Y5fsipmbR3J1q1b6dWrFwTrNn1Qvl6nsEREJBQlEBERCUUJREREQlECERGRUJRAREQkFCUQEREJRQlERERCUQIREZFQlEBERCQUJRAREQlFc2EdwYJr1ifkfX98T89Q+61YsYLFixezefNmMjIyMDOGDBnCBRdcULLN3r17efDBB3n66afZunUrjRo1olOnTgwfPpxOnTqVbPfyyy8zZMiQMu1nZGTQuHFjTj/9dCZMmMC3v/3t0tMdVGrWrFlccskloT6TiCQnJZA0smTJEmbPnk1+fj5nnnkmBw8e5JlnnmHcuHHs37+f/v37s3v3bgYPHsz+/fu57rrrOOOMM9i5cydLly5l8ODB3HzzzVx66aVl2l2+fDktW7YE4PDhw7z//vvMnDmTESNG8Oyzz9K6dWuef/75ku1nzJjBjh07mDdvXklZdnZ2fP4RRCRulEDSyJIlSxgwYECZb/rt27fngw8+4OGHH6Z///7MmjWLwsJCli9fXrI6YU5ODnl5ebRo0YJp06Zx5pln0q5du5I2mjdvXpJAAE488USmTJnCoEGDeOmll+jVq1eZ+oYNG1K/fv0yZSKSfjQGkkYyMzN57bXXKCwsLFM+ceJE5s+fz+7du3nyyScZNmxY1DXRR48eTf369Vm6dOkR3ysrKwsIViAUkbpJCSSNDB8+nDfffJPu3btzzTXXsHDhQgoKCmjevDk5OTls2rSJgwcP0rlz56j7Z2Vl0bFjR15//fUq32fr1q3MnTuXVq1acdZZZ9XGRxGRFKCvj2mkT58+nHjiiTz00EO88MILPPfccwB861vfYs6cOSVL2DZp0qTSNpo2bcrWrVvLlJ1//vlkZGQAcPDgQerXr88555zDI488QqNGjWrp04hIslMCSTOdO3emc+fOHDp0iLfffpv169ezePFiRowYwfTp0wHYtWsXbdq0ibr/7t27KySY+++/n5YtW/LFF18wf/58tmzZwtixYyttQ0TqBp3CShM7duxg6tSp7NixA4B69eqRl5fHddddx7x58/j4449p2rQpWVlZvPbaa1HbOHDgAG+++Sbf+c53ypTn5OTQtm1b8vLyWLBgAccddxxXX311SY9GROomJZA00aBBAx5//HFWraq43GWTJk3IyMjga1/7Gv369ePBBx8s+eO/e/duevXqxaJFi7jvvvsoLCxk4MCBlb5PVlYWs2fPZufO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\n",
  578.       "text/plain": [
  579.        "<Figure size 432x288 with 1 Axes>"
  580.       ]
  581.      },
  582.      "metadata": {
  583.       "needs_background": "light"
  584.      },
  585.      "output_type": "display_data"
  586.     }
  587.    ],
  588.    "source": [
  589.     "reorder = dra_mean.num_trials.unstack(0)\n",
  590.     "# reorder = reorder[[]]\n",
  591.     "reorder\n",
  592.     "reorder.T[[\"NONE\", \"SQRT\", \"LINEAR\"]].plot.bar(rot=0,colors=[\"C3\", \"C4\", \"C5\"], grid=True)\n",
  593.     "# plt.ylim([0, 2])\n",
  594.     "plt.ylabel(\"Number of Trials\")\n",
  595.     "plt.xlabel(\"Atoms\")\n",
  596.     "plt.legend(fontsize=15)\n",
  597.     "plt.savefig(\"./dra-trials.pdf\", bbox_inches='tight')"
  598.    ]
  599.   },
  600.   {
  601.    "cell_type": "markdown",
  602.    "metadata": {},
  603.    "source": []
  604.   }
  605.  ],
  606.  "metadata": {
  607.   "kernelspec": {
  608.    "display_name": "Python 3",
  609.    "language": "python",
  610.    "name": "python3"
  611.   },
  612.   "language_info": {
  613.    "codemirror_mode": {
  614.     "name": "ipython",
  615.     "version": 3
  616.    },
  617.    "file_extension": ".py",
  618.    "mimetype": "text/x-python",
  619.    "name": "python",
  620.    "nbconvert_exporter": "python",
  621.    "pygments_lexer": "ipython3",
  622.    "version": "3.7.3"
  623.   }
  624.  },
  625.  "nbformat": 4,
  626.  "nbformat_minor": 2
  627. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top