bachelorThesis/table_iii/table_iii_iv.ipynb

519 lines
161 KiB
Plaintext
Raw Normal View History

2021-04-28 12:59:45 +00:00
{
"cells": [
{
"cell_type": "code",
2021-05-24 10:06:24 +00:00
"execution_count": 2,
2021-05-22 14:18:14 +00:00
"id": "20840d16",
2021-04-28 12:59:45 +00:00
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"import sys\n",
"import glob\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from IPython.display import display, Markdown"
]
},
{
"cell_type": "code",
2021-05-24 10:06:24 +00:00
"execution_count": 4,
2021-05-22 14:18:14 +00:00
"id": "3de236df",
2021-04-28 12:59:45 +00:00
"metadata": {},
"outputs": [],
"source": [
2021-05-22 14:18:14 +00:00
"DIR = \"/home/claudio/hdd/git/bachelorThesis/table_iii/\""
2021-04-28 12:59:45 +00:00
]
},
{
"cell_type": "code",
2021-05-24 10:06:24 +00:00
"execution_count": 5,
2021-05-22 14:18:14 +00:00
"id": "ff58edfc",
2021-04-28 12:59:45 +00:00
"metadata": {},
"outputs": [],
"source": [
"NAMES = {-1: \"No termination\", 0: \"SUBMIT\", 1: \"QUEUE\", 2: \"ENABLE\", \n",
" 3: \"SCHEDULE\", 4: \"EVICT\", 5: \"FAIL\", 6: \"FINISH\",\n",
" 7: \"KILL\", 8: \"LOST\", 9: \"UPDATE_PENDING\", 10: \"UPDATE_RUNNING\"}\n",
"\n",
"def rename(df, new, old):\n",
" df.rename(columns={old: new}, inplace=True)"
]
},
{
"cell_type": "code",
2021-05-24 10:06:24 +00:00
"execution_count": 28,
2021-05-22 14:18:14 +00:00
"id": "5dd86c47",
2021-04-28 12:59:45 +00:00
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"# Table III"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
2021-05-16 10:22:27 +00:00
"name": "stdout",
"output_type": "stream",
"text": [
"\\tableIII{A}{\n",
2021-05-22 14:18:14 +00:00
"\\begin{tabular}{llrrrr}\n",
2021-05-16 10:22:27 +00:00
"\\toprule\n",
2021-05-24 10:06:24 +00:00
" EVICT & 103.228 (719) & 73.694 & 0.769 & 0.000 & 28.766 \\\\\n",
" FAIL & 11.819 (26) & 0.288 & 11.062 & 0.002 & 0.468 \\\\\n",
"FINISH & 2.185 (1) & 0.019 & 0.004 & 2.153 & 0.008 \\\\\n",
" KILL & 5.963 (11) & 2.350 & 0.214 & 0.003 & 3.396 \\\\\n",
2021-05-16 10:22:27 +00:00
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{B}{\n",
2021-05-22 14:18:14 +00:00
"\\begin{tabular}{llrrrr}\n",
2021-05-16 10:22:27 +00:00
"\\toprule\n",
2021-05-24 10:06:24 +00:00
" EVICT & 83.018 (394) & 64.817 & 0.240 & 0.000 & 17.962 \\\\\n",
" FAIL & 20.851 (62) & 0.518 & 19.657 & 0.001 & 0.675 \\\\\n",
"FINISH & 2.995 (4) & 0.020 & 0.021 & 2.943 & 0.012 \\\\\n",
" KILL & 9.173 (12) & 3.351 & 0.276 & 0.004 & 5.541 \\\\\n",
2021-05-16 10:22:27 +00:00
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{C}{\n",
2021-05-22 14:18:14 +00:00
"\\begin{tabular}{llrrrr}\n",
2021-05-16 10:22:27 +00:00
"\\toprule\n",
2021-05-24 10:06:24 +00:00
" EVICT & 98.437 (444) & 73.716 & 1.813 & 0.000 & 22.908 \\\\\n",
" FAIL & 52.010 (30) & 0.773 & 48.446 & 2.035 & 0.756 \\\\\n",
"FINISH & 2.507 (2) & 0.018 & 0.013 & 2.471 & 0.006 \\\\\n",
" KILL & 5.452 (6) & 1.533 & 0.116 & 0.004 & 3.799 \\\\\n",
2021-05-16 10:22:27 +00:00
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{D}{\n",
2021-05-22 14:18:14 +00:00
"\\begin{tabular}{llrrrr}\n",
2021-05-16 10:22:27 +00:00
"\\toprule\n",
2021-05-24 10:06:24 +00:00
" EVICT & 76.759 (366) & 62.001 & 0.700 & 0.000 & 14.058 \\\\\n",
" FAIL & 62.314 (62) & 0.496 & 58.968 & 0.810 & 2.040 \\\\\n",
"FINISH & 3.877 (2) & 0.059 & 0.019 & 3.789 & 0.010 \\\\\n",
" KILL & 6.795 (6) & 1.960 & 0.151 & 0.002 & 4.682 \\\\\n",
2021-05-16 10:22:27 +00:00
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{E}{\n",
2021-05-22 14:18:14 +00:00
"\\begin{tabular}{llrrrr}\n",
2021-05-16 10:22:27 +00:00
"\\toprule\n",
2021-05-24 10:06:24 +00:00
" EVICT & 17.678 (72) & 11.781 & 0.106 & 0.000 & 5.791 \\\\\n",
" FAIL & 112.384 (28) & 0.458 & 111.471 & 0.000 & 0.456 \\\\\n",
"FINISH & 2.029 (2) & 0.014 & 0.008 & 1.999 & 0.008 \\\\\n",
" KILL & 13.505 (64) & 1.288 & 0.057 & 0.000 & 12.160 \\\\\n",
2021-05-16 10:22:27 +00:00
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{F}{\n",
2021-05-22 14:18:14 +00:00
"\\begin{tabular}{llrrrr}\n",
2021-05-16 10:22:27 +00:00
"\\toprule\n",
2021-05-24 10:06:24 +00:00
" EVICT & 70.146 (114) & 23.974 & 0.192 & 0.000 & 45.980 \\\\\n",
" FAIL & 41.087 (54) & 0.279 & 39.257 & 0.000 & 1.550 \\\\\n",
"FINISH & 3.129 (4) & 0.019 & 0.004 & 3.008 & 0.098 \\\\\n",
" KILL & 10.288 (38) & 0.384 & 0.098 & 0.001 & 9.804 \\\\\n",
2021-05-16 10:22:27 +00:00
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{G}{\n",
2021-05-22 14:18:14 +00:00
"\\begin{tabular}{llrrrr}\n",
2021-05-16 10:22:27 +00:00
"\\toprule\n",
2021-05-24 10:06:24 +00:00
" EVICT & 136.032 (490) & 77.429 & 0.303 & 0.000 & 58.299 \\\\\n",
" FAIL & 8.948 (8) & 0.016 & 8.593 & 0.000 & 0.339 \\\\\n",
"FINISH & 14.176 (2) & 0.015 & 0.002 & 14.154 & 0.005 \\\\\n",
" KILL & 32.320 (164) & 6.909 & 0.135 & 0.000 & 25.276 \\\\\n",
2021-05-16 10:22:27 +00:00
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{H}{\n",
2021-05-22 14:18:14 +00:00
"\\begin{tabular}{llrrrr}\n",
2021-05-16 10:22:27 +00:00
"\\toprule\n",
2021-05-24 10:06:24 +00:00
" EVICT & 14.734 (40) & 6.733 & 0.837 & 0.000 & 7.165 \\\\\n",
" FAIL & 41.067 (120) & 0.600 & 37.600 & 0.000 & 2.867 \\\\\n",
"FINISH & 3.681 (2) & 0.024 & 0.014 & 3.633 & 0.011 \\\\\n",
" KILL & 17.976 (98) & 0.633 & 0.170 & 0.000 & 17.173 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{ALL}{\n",
"\\begin{tabular}{llrrrr}\n",
"\\toprule\n",
" EVICT & 78.710 (342) & 52.242 & 0.673 & 0.000 & 25.795 \\\\\n",
" FAIL & 24.962 (26) & 0.290 & 23.635 & 0.348 & 0.691 \\\\\n",
"FINISH & 2.962 (2) & 0.022 & 0.012 & 2.915 & 0.013 \\\\\n",
" KILL & 8.763 (16) & 1.876 & 0.143 & 0.003 & 6.741 \\\\\n",
2021-05-16 10:22:27 +00:00
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n"
]
2021-04-28 12:59:45 +00:00
}
],
"source": [
"display(Markdown(\"# Table III\"))\n",
2021-05-24 10:06:24 +00:00
"for cluster in list(\"abcdefgh\") + [\"all\"]:\n",
2021-04-28 12:59:45 +00:00
" df = pd.read_csv(glob.glob(DIR + \"/table-iii-\" + cluster + \".csv/part-00000-*\")[0])\n",
2021-05-22 14:18:14 +00:00
" df = df[df[\"task_term\"].isin(range(4,8))]\n",
" df = df.sort_values(\"task_term\")\n",
2021-05-24 10:06:24 +00:00
" df[\"mean\"] = df[\"mean\"].round(3).apply(lambda x: \"%.03f\" % x) + \" (\" + df[\"%95\"].apply(lambda x: \"%d\" % x) + \")\"\n",
2021-05-22 14:18:14 +00:00
" rename(df, \"# Evts. mean (95-th percentile)\", \"mean\")\n",
" del df[\"%95\"]\n",
2021-04-28 12:59:45 +00:00
" \n",
2021-05-22 14:18:14 +00:00
" for i in [4,5,6,7]:\n",
2021-04-28 12:59:45 +00:00
" df.loc[df.task_term == i, \"task_term\"] = NAMES[i]\n",
2021-05-24 10:06:24 +00:00
" df[\"avg_count_%d\" % i] = df[\"avg_count_%d\" % i].round(3)\n",
2021-05-22 14:18:14 +00:00
" rename(df, \"mean # \" + NAMES[i] + \" evts.\", \"avg_count_\" + str(i))\n",
" for i in [0,1,2,3,8,9,10]:\n",
2021-04-28 12:59:45 +00:00
" del df[\"avg_count_\" + str(i)]\n",
" rename(df, \"Task termination\", \"task_term\")\n",
2021-05-16 10:22:27 +00:00
" print((\"\\\\tableIII{\" + cluster.upper() + \"}{\"))\n",
2021-05-24 10:06:24 +00:00
" print(df.to_latex(index=False, header=False), end=\"}\\n\")\n"
2021-04-28 12:59:45 +00:00
]
},
{
"cell_type": "code",
2021-05-24 10:44:49 +00:00
"execution_count": 40,
2021-05-22 14:18:14 +00:00
"id": "cea0e71e",
2021-04-28 12:59:45 +00:00
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"# Table IV"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
2021-05-16 10:22:27 +00:00
"name": "stdout",
"output_type": "stream",
"text": [
"\\tableIV{A}{\n",
2021-05-24 10:44:49 +00:00
" EVICT & 0.000 (0) & NaN & NaN & NaN & NaN \\\\\n",
" FAIL & 90.793 (499) & 0.695 & 0.684 & 0.086 & 1.850 \\\\\n",
"FINISH & 1.187 (1) & 0.005 & 0.001 & 1.073 & 0.024 \\\\\n",
" KILL & 16.533 (10) & 1.045 & 0.074 & 0.461 & 1.189 \\\\\n",
2021-05-16 10:22:27 +00:00
"}\n",
"\\tableIV{B}{\n",
2021-05-24 10:44:49 +00:00
" EVICT & 1.000 (1) & 1.000 & 0.000 & 0.000 & 0.000 \\\\\n",
" FAIL & 74.368 (374) & 2.003 & 1.994 & 0.267 & 4.944 \\\\\n",
"FINISH & 6.304 (10) & 0.022 & 0.008 & 2.349 & 0.013 \\\\\n",
" KILL & 69.853 (234) & 1.696 & 0.158 & 0.614 & 3.009 \\\\\n",
2021-05-16 10:22:27 +00:00
"}\n",
"\\tableIV{C}{\n",
2021-05-24 10:44:49 +00:00
" EVICT & 1.000 (1) & 1.001 & 0.000 & 0.000 & 0.000 \\\\\n",
" FAIL & 41.982 (200) & 3.484 & 0.998 & 0.376 & 3.998 \\\\\n",
"FINISH & 1.991 (1) & 0.022 & 0.017 & 1.565 & 0.017 \\\\\n",
" KILL & 110.681 (652) & 0.627 & 0.059 & 0.656 & 2.267 \\\\\n",
2021-05-16 10:22:27 +00:00
"}\n",
"\\tableIV{D}{\n",
2021-05-24 10:44:49 +00:00
" EVICT & 1.000 (1) & 1.000 & 0.000 & 0.000 & 0.000 \\\\\n",
" FAIL & 43.356 (250) & 6.112 & 0.949 & 0.531 & 6.498 \\\\\n",
"FINISH & 2.109 (2) & 0.268 & 0.013 & 1.723 & 0.019 \\\\\n",
" KILL & 89.648 (283) & 1.013 & 0.054 & 0.283 & 3.256 \\\\\n",
2021-05-16 10:22:27 +00:00
"}\n",
"\\tableIV{E}{\n",
2021-05-24 10:44:49 +00:00
" EVICT & 1.000 (1) & 1.000 & 0.000 & 0.000 & 0.000 \\\\\n",
" FAIL & 23.081 (25) & 0.247 & 0.666 & 0.717 & 1.588 \\\\\n",
"FINISH & 7.776 (2) & 0.019 & 0.029 & 1.934 & 0.021 \\\\\n",
" KILL & 88.790 (309) & 0.706 & 0.029 & 0.461 & 7.572 \\\\\n",
2021-05-16 10:22:27 +00:00
"}\n",
"\\tableIV{F}{\n",
2021-05-24 10:44:49 +00:00
" EVICT & 1.000 (1) & 1.000 & 0.000 & 0.000 & 0.000 \\\\\n",
" FAIL & 17.161 (8) & 0.621 & 0.546 & 0.426 & 7.559 \\\\\n",
"FINISH & 2.941 (2) & 0.015 & 0.051 & 1.670 & 0.162 \\\\\n",
" KILL & 103.889 (361) & 0.183 & 0.064 & 0.417 & 5.824 \\\\\n",
2021-05-16 10:22:27 +00:00
"}\n",
"\\tableIV{G}{\n",
2021-05-24 10:44:49 +00:00
" EVICT & 1.000 (1) & 1.000 & 0.000 & 0.000 & 0.000 \\\\\n",
" FAIL & 51.835 (250) & 0.556 & 3.335 & 0.608 & 20.352 \\\\\n",
"FINISH & 8.519 (36) & 0.002 & 0.630 & 1.760 & 0.005 \\\\\n",
" KILL & 37.055 (100) & 5.687 & 0.065 & 0.080 & 19.166 \\\\\n",
2021-05-16 10:22:27 +00:00
"}\n",
"\\tableIV{H}{\n",
2021-05-24 10:44:49 +00:00
" EVICT & 1.000 (1) & 1.000 & 0.000 & 0.000 & 0.000 \\\\\n",
" FAIL & 20.504 (1) & 0.114 & 2.300 & 0.981 & 12.833 \\\\\n",
"FINISH & 4.278 (14) & 0.005 & 0.153 & 1.778 & 0.014 \\\\\n",
" KILL & 11.023 (3) & 0.235 & 0.103 & 0.288 & 11.337 \\\\\n",
"}\n",
"\\tableIV{ALL}{\n",
" EVICT & 0.989 (1) & 1.000 & 0.000 & 0.000 & 0.000 \\\\\n",
" FAIL & 43.126 (200) & 0.114 & 2.300 & 0.981 & 12.833 \\\\\n",
"FINISH & 3.074 (2) & 0.005 & 0.153 & 1.778 & 0.014 \\\\\n",
" KILL & 53.919 (178) & 0.235 & 0.103 & 0.288 & 11.337 \\\\\n",
2021-05-16 10:22:27 +00:00
"}\n"
]
}
],
"source": [
"display(Markdown(\"# Table IV\"))\n",
2021-05-24 10:44:49 +00:00
"for cluster in list(\"abcdefgh\") + [\"all\"]:\n",
2021-05-16 10:22:27 +00:00
" df = pd.read_csv(glob.glob(DIR + \"/table-iv-evts-\" + cluster + \".csv/part-00000-*\")[0], header=None,\n",
" names=[\"term\"] + [str(i) for i in range(0,11)])\n",
" df2 = pd.read_csv(glob.glob(DIR + \"/table-iv-tasks-\" + cluster + \".csv/part-00000-*\")[0], header=None,\n",
2021-05-24 10:44:49 +00:00
" names=[\"term\", \"mean\", \"%95\"])\n",
2021-05-16 10:22:27 +00:00
" df[\"term\"] = df[\"term\"].astype(int)\n",
" df2[\"term\"] = df2[\"term\"].astype(int)\n",
" df.sort_values(by=\"term\", inplace=True)\n",
" df2.sort_values(by=\"term\", inplace=True)\n",
" \n",
" df = df2.merge(df, on=\"term\", how=\"outer\")\n",
2021-05-24 10:44:49 +00:00
" df = df[df[\"term\"].isin(range(4,8))]\n",
" df.loc[df[\"mean\"] == -1, \"mean\"] = 0\n",
" df.loc[df[\"%95\"] == -1, \"%95\"] = 0\n",
" df[\"mean\"] = df[\"mean\"].round(3).apply(lambda x: \"%.03f\" % x) + \" (\" + df[\"%95\"].apply(lambda x: \"%d\" % x) + \")\"\n",
" rename(df, \"# Tasks. mean (95-th p)\", \"mean\")\n",
" del df[\"%95\"]\n",
" \n",
2021-05-16 10:22:27 +00:00
"\n",
" rename(df, \"# Evts. mean\", \"mean\")\n",
" rename(df, \"# Evts. 95% p.tile\", \"%95\")\n",
" \n",
2021-05-24 10:44:49 +00:00
" for i in [4,5,6,7]:\n",
2021-05-16 10:22:27 +00:00
" df.loc[df.term == i, \"term\"] = NAMES[i]\n",
2021-05-24 10:44:49 +00:00
" df[str(i)] = df[str(i)].round(3)\n",
2021-05-16 10:22:27 +00:00
" rename(df, \"# \" + NAMES[i] + \" Evts. mean\", str(i))\n",
2021-05-24 10:44:49 +00:00
" for i in [0,1,2,3,8,9,10]:\n",
2021-05-16 10:22:27 +00:00
" del df[str(i)]\n",
" rename(df, \"Job termination\", \"term\")\n",
" print((\"\\\\tableIV{\" + cluster.upper() + \"}{\"))\n",
2021-05-24 10:44:49 +00:00
" s = df.to_latex(index=False,header=False)\n",
" s = s.split(\"\\\\toprule\\n\")[1]\n",
" s = s.split(\"\\\\bottomrule\")[0]\n",
" print(s, end=\"}\\n\")\n"
2021-05-16 10:22:27 +00:00
]
},
{
"cell_type": "code",
2021-05-24 10:06:24 +00:00
"execution_count": 7,
2021-05-22 14:18:14 +00:00
"id": "6763138f",
2021-05-16 10:22:27 +00:00
"metadata": {},
"outputs": [],
"source": [
"max_count = 50"
]
},
{
"cell_type": "code",
2021-05-24 10:06:24 +00:00
"execution_count": 18,
2021-05-22 14:18:14 +00:00
"id": "dc0714c9",
2021-05-16 10:22:27 +00:00
"metadata": {},
"outputs": [
2021-04-28 12:59:45 +00:00
{
2021-05-24 10:06:24 +00:00
"data": {
"image/png": "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
"text/plain": [
"<Figure size 288x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
2021-04-28 12:59:45 +00:00
},
{
"data": {
2021-05-24 10:06:24 +00:00
"image/png": "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/vvvjzjm9NNP57nnJnddH9vUc4iGFYYOKzQnH6tWreKb3/wm8+bNo7y8fMT+K6+8Er/fzxNPPBHdtmPHDjZu3HjCbLKPOETCCu05aGxKJOcQ+XvggQei+2677TZ27949akghIrzwwgu89tprzJ8/n9NPP50HH3yQ0tLSE2avbcIK7Tlo7E44HB51X1FREcHgyO92dXV19HlZWRlr164dcUyEp556KhnzRqA9B41GExfbiINOSGo0k4ttxCF2hKRGoznx2EccdFih0Uwq9hEHnZDUaCYV24iDzjloNJOLbcRBhxUau+N0OoeMc4h0Uz7++ON4vV66urqix7755pvccMMNgNlFef/990+6vbYb56ATkhq7MtrcitWrV3POOefw/PPP86UvpawEStLYznPQszI1JxOHDh2it7eXhx9+mNWrV0+1OUOwjefgEAcucWnPQZM8f3kAGnemts3SZXDdf4x5SOyU7blz5/LCCy+wZs0abr/9di655BL2799PU1MTJSUlY7YzWdhGHMBMSuqcg8auxAsrVq9ezQsvvIDD4eCzn/0szz777JTkF+JhK3HwOD1aHDTJc5xf+Mli586dHDx4kGuuuQaAQCDA3Llzp4042CbnAGZSUo9z0JwsrF69moceeojq6mqqq6tpaGigoaGBmppR17adVOwlDtpz0JxErFmzhltuuWXItltuuSVaQDaWp556ivLy8uhffX39CbcvqbBCRL4J3AMoYCdmKfqZwBqgENgK3KGUSskd7Xa4dUJSY1t6e3uHvD58+PCIYx577LHo88svvxwwq0rfddddJ9K0uCTsOYjILODrwEql1BmAE7gdeBT4sVJqAdAB3J0KQ0EnJDWaySTZsMIFpIuIC8jAXDD3SiBS7C52Be6k8Tg82nPQaCaJhMVBKXUU+CFQiykKXZhhRKdSKmQdFlllewQi8lUR2SIiW1paWsZ1TY/TowdBaTSTRDJhRT5wEzAXKAMygWvHe75S6gml1Eql1MoZM2aM6xzdW6HRTB7JhBVXA0eUUi1KqSDwPHARkGeFGZDCVbZB5xw0mskkGXGoBc4XkQwxl/C9CtgDbAAii/XFrsCdNDrnoNFMHsnkHDZhJh4/wuzGdABPAN8GviUiVZjdmU+mwE5A5xw09iYrKyv6fP369SxatIiamhoeeughfvjDHwJmt+XwxWuqq6s544wzJtVWSHKcg1Lqu8B3h20+DJybTLujoQdBaU4GXn/9db7+9a/z8ssvM2fOnKk2Z1RsNbdCD4LS2J23336br3zlK6xfv5758+dPtTljYitx0J6DJhU8+uGj7Gvfl9I2Fxcs5tvnfnvMY/x+PzfffDNvvvkmixcvTun1TwT2mluhuzI1NsbtdnPhhRfy5JMpS8OdULTnoDnlON4v/InC4XCwdu1arrrqKr7//e/zne98Z0rsGC+2Ege3001YhQkbYZwO51Sbo9FMmIyMDP785z9zySWXUFJSwt13p2zqUcqxXVgBusisxt4UFBTw0ksv8fDDD7Nu3boR+++9997o1OwLLrgAgP379w+Zsv3ss8+ecDtt5TnElqdPd6VPsTUazcSInbJdUVHBkSNHALjxxhuj20dbKTveCtwnGlt6DjopqdGceOwlDnphG41m0rCVOOgl8TSaycNW4qATkppkUEpNtQlTRiL
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-24 10:06:24 +00:00
"<Figure size 288x216 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
2021-04-28 12:59:45 +00:00
},
"output_type": "display_data"
},
{
"data": {
2021-05-24 10:06:24 +00:00
"image/png": "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
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-24 10:06:24 +00:00
"<Figure size 288x216 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
2021-04-28 12:59:45 +00:00
},
"output_type": "display_data"
},
{
"data": {
2021-05-24 10:06:24 +00:00
"image/png": "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
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-24 10:06:24 +00:00
"<Figure size 288x216 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
2021-04-28 12:59:45 +00:00
},
"output_type": "display_data"
},
{
"data": {
2021-05-24 10:06:24 +00:00
"image/png": "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
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-24 10:06:24 +00:00
"<Figure size 288x216 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
2021-04-28 12:59:45 +00:00
},
"output_type": "display_data"
},
{
"data": {
2021-05-24 10:06:24 +00:00
"image/png": "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
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-24 10:06:24 +00:00
"<Figure size 288x216 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
2021-04-28 12:59:45 +00:00
},
"output_type": "display_data"
},
{
"data": {
2021-05-24 10:06:24 +00:00
"image/png": "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
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-24 10:06:24 +00:00
"<Figure size 288x216 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
2021-04-28 12:59:45 +00:00
},
"output_type": "display_data"
},
{
"data": {
2021-05-24 10:06:24 +00:00
"image/png": "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
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-24 10:06:24 +00:00
"<Figure size 288x216 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
},
2021-04-28 12:59:45 +00:00
"output_type": "display_data"
},
{
"data": {
2021-05-24 10:06:24 +00:00
"image/png": "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
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-24 10:06:24 +00:00
"<Figure size 288x216 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
},
2021-04-28 12:59:45 +00:00
"output_type": "display_data"
}
],
"source": [
2021-05-24 10:06:24 +00:00
"def figure_5_plot(df, cluster):\n",
2021-05-16 10:22:27 +00:00
" dft = {}\n",
2021-05-24 10:06:24 +00:00
" plt.figure(figsize=(4,3))\n",
" for i in [4,5,7]:\n",
2021-05-16 10:22:27 +00:00
" dft[i] = df[[\"count_\" + str(i), \"succ\", \"non\"]].copy()\n",
" dft[i] = dft[i].groupby(\"count_\" + str(i)).sum().reset_index()\n",
" \n",
" over = dft[i][dft[i][\"count_\" + str(i)] > max_count].sum()\n",
" if over[\"succ\"] == 0 and over[\"non\"] == 0:\n",
" percover = 0\n",
" else:\n",
" percover = over[\"succ\"] / (over[\"succ\"] + over[\"non\"])\n",
" \n",
" dft[i][\"perc\"] = dft[i][\"succ\"] / (dft[i][\"succ\"] + dft[i][\"non\"])\n",
" dfi = dft[i]\n",
2021-05-24 10:06:24 +00:00
" dft[i].loc[dfi[\"succ\"].eq(0) & dfi[\"non\"].eq(0), [\"perc\"]] = 0\n",
2021-05-16 10:22:27 +00:00
" \n",
" dft[i] = dft[i].drop(dft[i][dft[i][\"count_\" + str(i)] > max_count].index)\n",
" #dft[i][\"count_\" + str(i)] = dft[i][\"count_\" + str(i)].astype(str)\n",
" dft[i] = dft[i].append({\"count_\" + str(i): max_count + 1, \"perc\": percover}, ignore_index=True)\n",
2021-04-28 12:59:45 +00:00
"\n",
2021-05-16 10:22:27 +00:00
" del dft[i][\"succ\"]\n",
" del dft[i][\"non\"]\n",
" plt.xticks([0,5,10,15,20,25,30,35,40,45,50,51])\n",
" \n",
" ys = []\n",
" for j in range(0, max_count + 2):\n",
" a = dft[i][dft[i][\"count_\" + str(i)] == j]\n",
2021-05-24 10:06:24 +00:00
" ys.append(0 if a.empty else a[\"perc\"].squeeze() * 100)\n",
2021-05-16 10:22:27 +00:00
" \n",
" plt.plot([x if x < 51 else \">50\" for x in range(0,52)], ys)\n",
2021-05-24 10:06:24 +00:00
" if cluster == \"all\":\n",
" plt.title(\"2019 data\")\n",
" elif cluster == \"2011\":\n",
" plt.title(\"2011 data\")\n",
" else:\n",
" plt.title(\"Cluster \" + cluster.upper())\n",
" lgd = plt.legend([\"EVICT\", \"FAIL\", \"KILL\"])\n",
" plt.savefig('../report/figures/figure_5/figure-5-%s.pgf' % cluster, \n",
" bbox_extra_artists=(lgd,), bbox_inches='tight')\n",
"\n",
"dftot = None\n",
"for cluster in \"abcdefgh\":\n",
" df = pd.read_csv(glob.glob(DIR + \"fig-5-\" + cluster + \".csv/part-00000-*\")[0], \n",
" names=[\"count_4\", \"count_5\", \"count_7\", \"count_8\", \"succ\", \"non\"])\n",
" figure_5_plot(df, cluster)\n",
" if dftot is None:\n",
" dftot = df\n",
" else:\n",
" dftot = dftot.append(df)\n",
" \n",
"dftot = dftot.groupby([\"count_4\", \"count_5\", \"count_7\", \"count_8\"]).sum().reset_index()\n",
"figure_5_plot(df, \"all\")"
2021-04-28 12:59:45 +00:00
]
},
{
"cell_type": "code",
"execution_count": null,
2021-05-22 14:18:14 +00:00
"id": "e095a31e",
2021-05-16 10:22:27 +00:00
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
2021-05-22 14:18:14 +00:00
"id": "a4898bed",
2021-04-28 12:59:45 +00:00
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
2021-05-22 14:18:14 +00:00
"display_name": "venv",
2021-04-28 12:59:45 +00:00
"language": "python",
2021-05-22 14:18:14 +00:00
"name": "venv"
2021-04-28 12:59:45 +00:00
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
2021-05-22 14:18:14 +00:00
"version": "3.9.5"
2021-04-28 12:59:45 +00:00
}
},
"nbformat": 4,
"nbformat_minor": 5
}