diff --git a/rerun_expe.ipynb b/rerun_expe.ipynb index 31a89fa88c24abca84f43f0b57e376e3ea4c4f85..f25d43c7cad0957b712fdbd22875ca40bfba5a2f 100644 --- a/rerun_expe.ipynb +++ b/rerun_expe.ipynb @@ -10,6 +10,16 @@ "This notebook is a diary of what I did." ] }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from matplotlib import pyplot as plt" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -172,8 +182,6 @@ } ], "source": [ - "import pandas as pd\n", - "\n", "new_df = pd.read_csv(f\"{new_xp}/_jobs.csv\", index_col=\"job_id\").sort_index()\n", "old_df = pd.read_csv(f\"{old_xp}/_jobs.csv\", index_col=\"job_id\").sort_index()\n", "print(\"Same profile?\", new_df.profile.equals(old_df.profile) )\n", @@ -530,554 +538,43 @@ ] }, { - "cell_type": "code", - "execution_count": 15, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<div>\n", - "<style scoped>\n", - " .dataframe tbody tr th:only-of-type {\n", - " vertical-align: middle;\n", - " }\n", - "\n", - " .dataframe tbody tr th {\n", - " vertical-align: top;\n", - " }\n", - "\n", - " .dataframe thead th {\n", - " text-align: right;\n", - " }\n", - "</style>\n", - "<table border=\"1\" class=\"dataframe\">\n", - " <thead>\n", - " <tr style=\"text-align: right;\">\n", - " <th></th>\n", - " <th>workload_name</th>\n", - " <th>profile</th>\n", - " <th>submission_time</th>\n", - " <th>requested_number_of_resources</th>\n", - " <th>requested_time</th>\n", - " <th>success</th>\n", - " <th>final_state</th>\n", - " <th>starting_time</th>\n", - " <th>execution_time</th>\n", - " <th>finish_time</th>\n", - " <th>waiting_time</th>\n", - " <th>turnaround_time</th>\n", - " <th>stretch</th>\n", - " <th>allocated_resources</th>\n", - " <th>consumed_energy</th>\n", - " <th>metadata</th>\n", - " </tr>\n", - " <tr>\n", - " <th>job_id</th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>user2</td>\n", - " <td>20</td>\n", - " <td>1.0</td>\n", - " <td>1</td>\n", - " <td>1800.0</td>\n", - " <td>1</td>\n", - " <td>COMPLETED_SUCCESSFULLY</td>\n", - " <td>1.0</td>\n", - " <td>20.0</td>\n", - " <td>21.0</td>\n", - " <td>0.0</td>\n", - " <td>20.0</td>\n", - " <td>1.000000</td>\n", - " <td>0</td>\n", - " <td>2.292500e+03</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>user343</td>\n", - " <td>260</td>\n", - " <td>438.0</td>\n", - " <td>1</td>\n", - " <td>7200.0</td>\n", - " <td>1</td>\n", - " <td>COMPLETED_SUCCESSFULLY</td>\n", - " <td>438.0</td>\n", - " <td>260.0</td>\n", - " <td>698.0</td>\n", - " <td>0.0</td>\n", - " <td>260.0</td>\n", - " <td>1.000000</td>\n", - " <td>0</td>\n", - " <td>4.530500e+04</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>5</th>\n", - " <td>user186</td>\n", - " <td>110</td>\n", - " <td>623.0</td>\n", - " <td>4</td>\n", - " <td>86400.0</td>\n", - " <td>1</td>\n", - " <td>COMPLETED_SUCCESSFULLY</td>\n", - " <td>623.0</td>\n", - " <td>110.0</td>\n", - " <td>733.0</td>\n", - " <td>0.0</td>\n", - " <td>110.0</td>\n", - " <td>1.000000</td>\n", - " <td>0</td>\n", - " <td>2.120094e+04</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>7</th>\n", - " <td>user186</td>\n", - " <td>10</td>\n", - " <td>623.0</td>\n", - " <td>4</td>\n", - " <td>86400.0</td>\n", - " <td>1</td>\n", - " <td>COMPLETED_SUCCESSFULLY</td>\n", - " <td>773.0</td>\n", - " <td>10.0</td>\n", - " <td>783.0</td>\n", - " <td>150.0</td>\n", - " <td>160.0</td>\n", - " <td>16.000000</td>\n", - " <td>1</td>\n", - " <td>2.170000e+03</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>8</th>\n", - " <td>user186</td>\n", - " <td>10</td>\n", - " <td>624.0</td>\n", - " <td>4</td>\n", - " <td>86400.0</td>\n", - " <td>1</td>\n", - " <td>COMPLETED_SUCCESSFULLY</td>\n", - " <td>773.0</td>\n", - " <td>10.0</td>\n", - " <td>783.0</td>\n", - " <td>149.0</td>\n", - " <td>159.0</td>\n", - " <td>15.900000</td>\n", - " <td>1</td>\n", - " <td>2.170000e+03</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>...</th>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>13686</th>\n", - " <td>user167</td>\n", - " <td>49080</td>\n", - " <td>258536.0</td>\n", - " <td>1</td>\n", - " <td>392600.0</td>\n", - " <td>1</td>\n", - " <td>COMPLETED_SUCCESSFULLY</td>\n", - " <td>258536.0</td>\n", - " <td>49080.0</td>\n", - " <td>307616.0</td>\n", - " <td>0.0</td>\n", - " <td>49080.0</td>\n", - " <td>1.000000</td>\n", - " <td>31</td>\n", - " <td>5.797785e+06</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>11186</th>\n", - " <td>user4</td>\n", - " <td>84800</td>\n", - " <td>224814.0</td>\n", - " <td>1</td>\n", - " <td>678344.0</td>\n", - " <td>1</td>\n", - " <td>COMPLETED_SUCCESSFULLY</td>\n", - " <td>224814.0</td>\n", - " <td>84800.0</td>\n", - " <td>309614.0</td>\n", - " <td>0.0</td>\n", - " <td>84800.0</td>\n", - " <td>1.000000</td>\n", - " <td>17</td>\n", - " <td>1.340332e+07</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>12242</th>\n", - " <td>user41</td>\n", - " <td>81460</td>\n", - " <td>228605.0</td>\n", - " <td>16</td>\n", - " <td>651632.0</td>\n", - " <td>1</td>\n", - " <td>COMPLETED_SUCCESSFULLY</td>\n", - " <td>233564.0</td>\n", - " <td>81460.0</td>\n", - " <td>315024.0</td>\n", - " <td>4959.0</td>\n", - " <td>86419.0</td>\n", - " <td>1.060877</td>\n", - " <td>3</td>\n", - " <td>1.767682e+07</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>12677</th>\n", - " <td>user275</td>\n", - " <td>74610</td>\n", - " <td>243560.0</td>\n", - " <td>16</td>\n", - " <td>596856.0</td>\n", - " <td>1</td>\n", - " <td>COMPLETED_SUCCESSFULLY</td>\n", - " <td>243710.0</td>\n", - " <td>74610.0</td>\n", - " <td>318320.0</td>\n", - " <td>150.0</td>\n", - " <td>74760.0</td>\n", - " <td>1.002010</td>\n", - " <td>7</td>\n", - " <td>1.619037e+07</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>13631</th>\n", - " <td>user78</td>\n", - " <td>66190</td>\n", - " <td>252606.0</td>\n", - " <td>2</td>\n", - " <td>529456.0</td>\n", - " <td>1</td>\n", - " <td>COMPLETED_SUCCESSFULLY</td>\n", - " <td>252606.0</td>\n", - " <td>66190.0</td>\n", - " <td>318796.0</td>\n", - " <td>0.0</td>\n", - " <td>66190.0</td>\n", - " <td>1.000000</td>\n", - " <td>4</td>\n", - " <td>7.855836e+06</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>13749 rows × 16 columns</p>\n", - "</div>" - ], - "text/plain": [ - " workload_name profile submission_time requested_number_of_resources \\\n", - "job_id \n", - "1 user2 20 1.0 1 \n", - "4 user343 260 438.0 1 \n", - "5 user186 110 623.0 4 \n", - "7 user186 10 623.0 4 \n", - "8 user186 10 624.0 4 \n", - "... ... ... ... ... \n", - "13686 user167 49080 258536.0 1 \n", - "11186 user4 84800 224814.0 1 \n", - "12242 user41 81460 228605.0 16 \n", - "12677 user275 74610 243560.0 16 \n", - "13631 user78 66190 252606.0 2 \n", - "\n", - " requested_time success final_state starting_time \\\n", - "job_id \n", - "1 1800.0 1 COMPLETED_SUCCESSFULLY 1.0 \n", - "4 7200.0 1 COMPLETED_SUCCESSFULLY 438.0 \n", - "5 86400.0 1 COMPLETED_SUCCESSFULLY 623.0 \n", - "7 86400.0 1 COMPLETED_SUCCESSFULLY 773.0 \n", - "8 86400.0 1 COMPLETED_SUCCESSFULLY 773.0 \n", - "... ... ... ... ... \n", - "13686 392600.0 1 COMPLETED_SUCCESSFULLY 258536.0 \n", - "11186 678344.0 1 COMPLETED_SUCCESSFULLY 224814.0 \n", - "12242 651632.0 1 COMPLETED_SUCCESSFULLY 233564.0 \n", - "12677 596856.0 1 COMPLETED_SUCCESSFULLY 243710.0 \n", - "13631 529456.0 1 COMPLETED_SUCCESSFULLY 252606.0 \n", - "\n", - " execution_time finish_time waiting_time turnaround_time stretch \\\n", - "job_id \n", - "1 20.0 21.0 0.0 20.0 1.000000 \n", - "4 260.0 698.0 0.0 260.0 1.000000 \n", - "5 110.0 733.0 0.0 110.0 1.000000 \n", - "7 10.0 783.0 150.0 160.0 16.000000 \n", - "8 10.0 783.0 149.0 159.0 15.900000 \n", - "... ... ... ... ... ... \n", - "13686 49080.0 307616.0 0.0 49080.0 1.000000 \n", - "11186 84800.0 309614.0 0.0 84800.0 1.000000 \n", - "12242 81460.0 315024.0 4959.0 86419.0 1.060877 \n", - "12677 74610.0 318320.0 150.0 74760.0 1.002010 \n", - "13631 66190.0 318796.0 0.0 66190.0 1.000000 \n", - "\n", - " allocated_resources consumed_energy metadata \n", - "job_id \n", - "1 0 2.292500e+03 NaN \n", - "4 0 4.530500e+04 NaN \n", - "5 0 2.120094e+04 NaN \n", - "7 1 2.170000e+03 NaN \n", - "8 1 2.170000e+03 NaN \n", - "... ... ... ... \n", - "13686 31 5.797785e+06 NaN \n", - "11186 17 1.340332e+07 NaN \n", - "12242 3 1.767682e+07 NaN \n", - "12677 7 1.619037e+07 NaN \n", - "13631 4 7.855836e+06 NaN \n", - "\n", - "[13749 rows x 16 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], "source": [ - "display(old_df)" + "## Tue 14 Nov 23\n", + "- rerun all expe campaign on g5k (grisou@nancy)\n", + "- transfer XP results to `out/extension_europar`" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "metadata": {}, "outputs": [ { - "data": { - "text/html": [ - "<div>\n", - "<style scoped>\n", - " .dataframe tbody tr th:only-of-type {\n", - " vertical-align: middle;\n", - " }\n", - "\n", - " .dataframe tbody tr th {\n", - " vertical-align: top;\n", - " }\n", - "\n", - " .dataframe thead th {\n", - " text-align: right;\n", - " }\n", - "</style>\n", - "<table border=\"1\" class=\"dataframe\">\n", - " <thead>\n", - " <tr style=\"text-align: right;\">\n", - " <th></th>\n", - " <th>batsim_version</th>\n", - " <th>consumed_joules</th>\n", - " <th>makespan</th>\n", - " <th>max_slowdown</th>\n", - " <th>max_turnaround_time</th>\n", - " <th>max_waiting_time</th>\n", - " <th>mean_slowdown</th>\n", - " <th>mean_turnaround_time</th>\n", - " <th>mean_waiting_time</th>\n", - " <th>nb_computing_machines</th>\n", - " <th>...</th>\n", - " <th>nb_machine_switches</th>\n", - " <th>scheduling_time</th>\n", - " <th>simulation_time</th>\n", - " <th>success_rate</th>\n", - " <th>time_computing</th>\n", - " <th>time_idle</th>\n", - " <th>time_sleeping</th>\n", - " <th>time_switching_off</th>\n", - " <th>time_switching_on</th>\n", - " <th>time_unavailable</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>4.2.0</td>\n", - " <td>3.316097e+09</td>\n", - " <td>318796.0</td>\n", - " <td>861.9</td>\n", - " <td>86379.0</td>\n", - " <td>8616.0</td>\n", - " <td>7.788404</td>\n", - " <td>4704.070914</td>\n", - " <td>790.575387</td>\n", - " <td>104</td>\n", - " <td>...</td>\n", - " <td>1305</td>\n", - " <td>3.78486</td>\n", - " <td>15.149731</td>\n", - " <td>1.0</td>\n", - " <td>1.645177e+07</td>\n", - " <td>0.000034</td>\n", - " <td>1.118572e+07</td>\n", - " <td>4224.0</td>\n", - " <td>90150.0</td>\n", - " <td>0.0</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>1 rows × 26 columns</p>\n", - "</div>" - ], - "text/plain": [ - " batsim_version consumed_joules makespan max_slowdown \\\n", - "0 4.2.0 3.316097e+09 318796.0 861.9 \n", - "\n", - " max_turnaround_time max_waiting_time mean_slowdown mean_turnaround_time \\\n", - "0 86379.0 8616.0 7.788404 4704.070914 \n", - "\n", - " mean_waiting_time nb_computing_machines ... nb_machine_switches \\\n", - "0 790.575387 104 ... 1305 \n", - "\n", - " scheduling_time simulation_time success_rate time_computing time_idle \\\n", - "0 3.78486 15.149731 1.0 1.645177e+07 0.000034 \n", - "\n", - " time_sleeping time_switching_off time_switching_on time_unavailable \n", - "0 1.118572e+07 4224.0 90150.0 0.0 \n", - "\n", - "[1 rows x 26 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "new_simu_res = pd.read_csv(f\"{new_xp}/_schedule.csv\")\n", - "display(new_simu_res)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ + "ename": "AttributeError", + "evalue": "'Line2D' object has no property 'ylabel'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m/home/mael/git/demand-response-user/rerun_expe.ipynb Cell 14\u001b[0m line \u001b[0;36m1\n\u001b[1;32m <a href='vscode-notebook-cell:/home/mael/git/demand-response-user/rerun_expe.ipynb#X14sZmlsZQ%3D%3D?line=12'>13</a>\u001b[0m consumed_joules\u001b[39m.\u001b[39mappend(diff_prc(new_simu_res[\u001b[39m\"\u001b[39m\u001b[39mconsumed_joules\u001b[39m\u001b[39m\"\u001b[39m], old_simu_res[\u001b[39m\"\u001b[39m\u001b[39mconsumed_joules\u001b[39m\u001b[39m\"\u001b[39m]))\n\u001b[1;32m <a href='vscode-notebook-cell:/home/mael/git/demand-response-user/rerun_expe.ipynb#X14sZmlsZQ%3D%3D?line=14'>15</a>\u001b[0m fig, ax \u001b[39m=\u001b[39m plt\u001b[39m.\u001b[39msubplots(\u001b[39m2\u001b[39m, \u001b[39m2\u001b[39m)\n\u001b[0;32m---> <a href='vscode-notebook-cell:/home/mael/git/demand-response-user/rerun_expe.ipynb#X14sZmlsZQ%3D%3D?line=15'>16</a>\u001b[0m ax[\u001b[39m0\u001b[39;49m][\u001b[39m0\u001b[39;49m]\u001b[39m.\u001b[39;49mplot(makespans, ylabel\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39mmakespan\u001b[39;49m\u001b[39m\"\u001b[39;49m)\n\u001b[1;32m <a href='vscode-notebook-cell:/home/mael/git/demand-response-user/rerun_expe.ipynb#X14sZmlsZQ%3D%3D?line=16'>17</a>\u001b[0m ax[\u001b[39m0\u001b[39m][\u001b[39m1\u001b[39m]\u001b[39m.\u001b[39mplot(consumed_joules, ylabel\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mconsumed_joules\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[1;32m <a href='vscode-notebook-cell:/home/mael/git/demand-response-user/rerun_expe.ipynb#X14sZmlsZQ%3D%3D?line=17'>18</a>\u001b[0m ax[\u001b[39m1\u001b[39m][\u001b[39m0\u001b[39m]\u001b[39m.\u001b[39mplot(m_wt, ylabel\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mmean_wt\u001b[39m\u001b[39m\"\u001b[39m)\n", + "File \u001b[0;32m~/.local/lib/python3.10/site-packages/matplotlib/axes/_axes.py:1635\u001b[0m, in \u001b[0;36mAxes.plot\u001b[0;34m(self, scalex, scaley, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1393\u001b[0m \u001b[39m\u001b[39m\u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 1394\u001b[0m \u001b[39mPlot y versus x as lines and/or markers.\u001b[39;00m\n\u001b[1;32m 1395\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1632\u001b[0m \u001b[39m(``'green'``) or hex strings (``'#008000'``).\u001b[39;00m\n\u001b[1;32m 1633\u001b[0m \u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 1634\u001b[0m kwargs \u001b[39m=\u001b[39m cbook\u001b[39m.\u001b[39mnormalize_kwargs(kwargs, mlines\u001b[39m.\u001b[39mLine2D)\n\u001b[0;32m-> 1635\u001b[0m lines \u001b[39m=\u001b[39m [\u001b[39m*\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_get_lines(\u001b[39m*\u001b[39margs, data\u001b[39m=\u001b[39mdata, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)]\n\u001b[1;32m 1636\u001b[0m \u001b[39mfor\u001b[39;00m line \u001b[39min\u001b[39;00m lines:\n\u001b[1;32m 1637\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39madd_line(line)\n", + "File \u001b[0;32m~/.local/lib/python3.10/site-packages/matplotlib/axes/_base.py:312\u001b[0m, in \u001b[0;36m_process_plot_var_args.__call__\u001b[0;34m(self, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 310\u001b[0m this \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m args[\u001b[39m0\u001b[39m],\n\u001b[1;32m 311\u001b[0m args \u001b[39m=\u001b[39m args[\u001b[39m1\u001b[39m:]\n\u001b[0;32m--> 312\u001b[0m \u001b[39myield from\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_plot_args(this, kwargs)\n", + "File \u001b[0;32m~/.local/lib/python3.10/site-packages/matplotlib/axes/_base.py:538\u001b[0m, in \u001b[0;36m_process_plot_var_args._plot_args\u001b[0;34m(self, tup, kwargs, return_kwargs)\u001b[0m\n\u001b[1;32m 536\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mlist\u001b[39m(result)\n\u001b[1;32m 537\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m--> 538\u001b[0m \u001b[39mreturn\u001b[39;00m [l[\u001b[39m0\u001b[39m] \u001b[39mfor\u001b[39;00m l \u001b[39min\u001b[39;00m result]\n", + "File \u001b[0;32m~/.local/lib/python3.10/site-packages/matplotlib/axes/_base.py:538\u001b[0m, in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 536\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mlist\u001b[39m(result)\n\u001b[1;32m 537\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m--> 538\u001b[0m \u001b[39mreturn\u001b[39;00m [l[\u001b[39m0\u001b[39m] \u001b[39mfor\u001b[39;00m l \u001b[39min\u001b[39;00m result]\n", + "File \u001b[0;32m~/.local/lib/python3.10/site-packages/matplotlib/axes/_base.py:531\u001b[0m, in \u001b[0;36m<genexpr>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 528\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 529\u001b[0m labels \u001b[39m=\u001b[39m [label] \u001b[39m*\u001b[39m n_datasets\n\u001b[0;32m--> 531\u001b[0m result \u001b[39m=\u001b[39m (make_artist(x[:, j \u001b[39m%\u001b[39;49m ncx], y[:, j \u001b[39m%\u001b[39;49m ncy], kw,\n\u001b[1;32m 532\u001b[0m {\u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs, \u001b[39m'\u001b[39;49m\u001b[39mlabel\u001b[39;49m\u001b[39m'\u001b[39;49m: label})\n\u001b[1;32m 533\u001b[0m \u001b[39mfor\u001b[39;00m j, label \u001b[39min\u001b[39;00m \u001b[39menumerate\u001b[39m(labels))\n\u001b[1;32m 535\u001b[0m \u001b[39mif\u001b[39;00m return_kwargs:\n\u001b[1;32m 536\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mlist\u001b[39m(result)\n", + "File \u001b[0;32m~/.local/lib/python3.10/site-packages/matplotlib/axes/_base.py:351\u001b[0m, in \u001b[0;36m_process_plot_var_args._makeline\u001b[0;34m(self, x, y, kw, kwargs)\u001b[0m\n\u001b[1;32m 349\u001b[0m default_dict \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_getdefaults(\u001b[39mset\u001b[39m(), kw)\n\u001b[1;32m 350\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_setdefaults(default_dict, kw)\n\u001b[0;32m--> 351\u001b[0m seg \u001b[39m=\u001b[39m mlines\u001b[39m.\u001b[39;49mLine2D(x, y, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkw)\n\u001b[1;32m 352\u001b[0m \u001b[39mreturn\u001b[39;00m seg, kw\n", + "File \u001b[0;32m~/.local/lib/python3.10/site-packages/matplotlib/lines.py:393\u001b[0m, in \u001b[0;36mLine2D.__init__\u001b[0;34m(self, xdata, ydata, linewidth, linestyle, color, marker, markersize, markeredgewidth, markeredgecolor, markerfacecolor, markerfacecoloralt, fillstyle, antialiased, dash_capstyle, solid_capstyle, dash_joinstyle, solid_joinstyle, pickradius, drawstyle, markevery, **kwargs)\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mset_markeredgewidth(markeredgewidth)\n\u001b[1;32m 391\u001b[0m \u001b[39m# update kwargs before updating data to give the caller a\u001b[39;00m\n\u001b[1;32m 392\u001b[0m \u001b[39m# chance to init axes (and hence unit support)\u001b[39;00m\n\u001b[0;32m--> 393\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mupdate(kwargs)\n\u001b[1;32m 394\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mpickradius \u001b[39m=\u001b[39m pickradius\n\u001b[1;32m 395\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mind_offset \u001b[39m=\u001b[39m \u001b[39m0\u001b[39m\n", + "File \u001b[0;32m~/.local/lib/python3.10/site-packages/matplotlib/artist.py:1067\u001b[0m, in \u001b[0;36mArtist.update\u001b[0;34m(self, props)\u001b[0m\n\u001b[1;32m 1065\u001b[0m func \u001b[39m=\u001b[39m \u001b[39mgetattr\u001b[39m(\u001b[39mself\u001b[39m, \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mset_\u001b[39m\u001b[39m{\u001b[39;00mk\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m, \u001b[39mNone\u001b[39;00m)\n\u001b[1;32m 1066\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mcallable\u001b[39m(func):\n\u001b[0;32m-> 1067\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mAttributeError\u001b[39;00m(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mtype\u001b[39m(\u001b[39mself\u001b[39m)\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\u001b[39m!r}\u001b[39;00m\u001b[39m object \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 1068\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mhas no property \u001b[39m\u001b[39m{\u001b[39;00mk\u001b[39m!r}\u001b[39;00m\u001b[39m\"\u001b[39m)\n\u001b[1;32m 1069\u001b[0m ret\u001b[39m.\u001b[39mappend(func(v))\n\u001b[1;32m 1070\u001b[0m \u001b[39mif\u001b[39;00m ret:\n", + "\u001b[0;31mAttributeError\u001b[0m: 'Line2D' object has no property 'ylabel'" + ] + }, { "data": { - "text/html": [ - "<div>\n", - "<style scoped>\n", - " .dataframe tbody tr th:only-of-type {\n", - " vertical-align: middle;\n", - " }\n", - "\n", - " .dataframe tbody tr th {\n", - " vertical-align: top;\n", - " }\n", - "\n", - " .dataframe thead th {\n", - " text-align: right;\n", - " }\n", - "</style>\n", - "<table border=\"1\" class=\"dataframe\">\n", - " <thead>\n", - " <tr style=\"text-align: right;\">\n", - " <th></th>\n", - " <th>batsim_version</th>\n", - " <th>consumed_joules</th>\n", - " <th>makespan</th>\n", - " <th>max_slowdown</th>\n", - " <th>max_turnaround_time</th>\n", - " <th>max_waiting_time</th>\n", - " <th>mean_slowdown</th>\n", - " <th>mean_turnaround_time</th>\n", - " <th>mean_waiting_time</th>\n", - " <th>nb_computing_machines</th>\n", - " <th>...</th>\n", - " <th>nb_machine_switches</th>\n", - " <th>scheduling_time</th>\n", - " <th>simulation_time</th>\n", - " <th>success_rate</th>\n", - " <th>time_computing</th>\n", - " <th>time_idle</th>\n", - " <th>time_sleeping</th>\n", - " <th>time_switching_off</th>\n", - " <th>time_switching_on</th>\n", - " <th>time_unavailable</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>4.1.0</td>\n", - " <td>3.336375e+09</td>\n", - " <td>318796.0</td>\n", - " <td>823.4</td>\n", - " <td>86419.0</td>\n", - " <td>8420.0</td>\n", - " <td>7.773299</td>\n", - " <td>4704.296167</td>\n", - " <td>790.80064</td>\n", - " <td>104</td>\n", - " <td>...</td>\n", - " <td>1295</td>\n", - " <td>15.626369</td>\n", - " <td>88.279348</td>\n", - " <td>1.0</td>\n", - " <td>1.667744e+07</td>\n", - " <td>0.000033</td>\n", - " <td>1.106698e+07</td>\n", - " <td>4194.0</td>\n", - " <td>89400.0</td>\n", - " <td>0.0</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>1 rows × 26 columns</p>\n", - "</div>" - ], + "image/png": "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", "text/plain": [ - " batsim_version consumed_joules makespan max_slowdown \\\n", - "0 4.1.0 3.336375e+09 318796.0 823.4 \n", - "\n", - " max_turnaround_time max_waiting_time mean_slowdown mean_turnaround_time \\\n", - "0 86419.0 8420.0 7.773299 4704.296167 \n", - "\n", - " mean_waiting_time nb_computing_machines ... nb_machine_switches \\\n", - "0 790.80064 104 ... 1295 \n", - "\n", - " scheduling_time simulation_time success_rate time_computing time_idle \\\n", - "0 15.626369 88.279348 1.0 1.667744e+07 0.000033 \n", - "\n", - " time_sleeping time_switching_off time_switching_on time_unavailable \n", - "0 1.106698e+07 4194.0 89400.0 0.0 \n", - "\n", - "[1 rows x 26 columns]" + "<Figure size 640x480 with 4 Axes>" ] }, "metadata": {}, @@ -1085,8 +582,25 @@ } ], "source": [ - "old_simu_res = pd.read_csv(f\"{old_xp}/_schedule.csv\")\n", - "display(old_simu_res)" + "nb_exp = 105\n", + "makespans, m_wt, M_wt, consumed_joules = [], [], [], []\n", + "\n", + "def diff_prc(old, new):\n", + " return (new / old - 1) * 100\n", + "for xp in range(nb_exp):\n", + " new_simu_res = pd.read_csv(f\"out/extension_europar/expe{xp}/replay_user_rigid_window1/_schedule.csv\")\n", + " old_simu_res = pd.read_csv(f\"out/campaign2/expe{xp}/replay_user_rigid_window1/_schedule.csv\")\n", + "\n", + " makespans.append(diff_prc(new_simu_res[\"makespan\"], old_simu_res[\"makespan\"]))\n", + " m_wt.append(diff_prc(new_simu_res[\"mean_waiting_time\"], old_simu_res[\"mean_waiting_time\"]))\n", + " M_wt.append(diff_prc(new_simu_res[\"max_waiting_time\"], old_simu_res[\"max_waiting_time\"]))\n", + " consumed_joules.append(diff_prc(new_simu_res[\"consumed_joules\"], old_simu_res[\"consumed_joules\"]))\n", + "\n", + "fig, ax = plt.subplots(2, 2)\n", + "ax[0,0].plot(makespans); ax[0,0].set_title(\"makespan\")\n", + "ax[0,1].plot(consumed_joules); ax[0,1].set_title(\"consumed_joules\")\n", + "ax[1,0].plot(m_wt); ax[1,0].set_title(\"mean_wt\")\n", + "ax[1,1].plot(M_wt); ax[1,1].set_title(\"max_wt\")" ] }, {