Add some real world charts

parent 25639e85
......@@ -4,6 +4,17 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"[From the md logbook exercise:]\n",
"\n",
"# logbook\n",
"\n",
"as proposed by mooc module 1\n",
"\n",
"## 18.05.2020\n",
"- Today I did some markdown Wohaaaa!\n",
"- I decided to write everything into this file as its easiest to start and \n",
"splitting into multiple files can be done easily later if necessary.\n",
"\n",
"As I'm already actively using jupyter as experiment log I just copy paste some of my latest experiments here:"
]
},
......@@ -16,16 +27,17 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"exercice_en.ipynb exercice_fr.Rmd\t exercice_python_fr.org\r\n",
"exercice_en.Rmd exercice.ipynb\t exercice_R_en.org\r\n",
"exercice_fr.ipynb exercice_python_en.org exercice_R_fr.org\r\n"
"exercice_en.ipynb exercice.ipynb\t exercice_R_fr.org\r\n",
"exercice_en.Rmd exercice_python_en.org server.timing-information.csv\r\n",
"exercice_fr.ipynb exercice_python_fr.org\r\n",
"exercice_fr.Rmd exercice_R_en.org\r\n"
]
}
],
......@@ -99,40 +111,348 @@
"!pip install plotnine"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import os\n",
"from matplotlib import pyplot as plt\n",
"#from plotnine import *"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
".... ok seems like the ggplot environment is still not working - so lets use matplotlib"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"scrolled": false
},
"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>iteration</th>\n",
" <th>walltime (ms)</th>\n",
" <th>walltime filter update (ms)</th>\n",
" <th>max job walltime (ms)</th>\n",
" <th>min_runners</th>\n",
" <th>max_runners</th>\n",
" <th>accumulated runner idle time</th>\n",
" <th>corresponding pdaf state per runner runner idle time</th>\n",
" <th>pdaf slack/melissa-da slack</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>9226.97</td>\n",
" <td>2631.22</td>\n",
" <td>423.62100</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>5405.35</td>\n",
" <td>3117140.0</td>\n",
" <td>576.6770</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>6296.54</td>\n",
" <td>2155.01</td>\n",
" <td>9.73675</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4523.69</td>\n",
" <td>2206450.0</td>\n",
" <td>487.7550</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>6364.22</td>\n",
" <td>2195.48</td>\n",
" <td>10.41640</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4675.25</td>\n",
" <td>2248530.0</td>\n",
" <td>480.9440</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>6307.95</td>\n",
" <td>2150.47</td>\n",
" <td>9.76071</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4451.92</td>\n",
" <td>2201740.0</td>\n",
" <td>494.5590</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>6327.45</td>\n",
" <td>2153.37</td>\n",
" <td>10.22350</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4459.78</td>\n",
" <td>2205110.0</td>\n",
" <td>494.4450</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",
" </tr>\n",
" <tr>\n",
" <th>695</th>\n",
" <td>695</td>\n",
" <td>3424.46</td>\n",
" <td>2205.93</td>\n",
" <td>30.37890</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>27388.90</td>\n",
" <td>2274020.0</td>\n",
" <td>83.0271</td>\n",
" </tr>\n",
" <tr>\n",
" <th>696</th>\n",
" <td>696</td>\n",
" <td>3452.03</td>\n",
" <td>2199.23</td>\n",
" <td>26.87720</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>27451.00</td>\n",
" <td>2263310.0</td>\n",
" <td>82.4491</td>\n",
" </tr>\n",
" <tr>\n",
" <th>697</th>\n",
" <td>697</td>\n",
" <td>3463.87</td>\n",
" <td>2201.54</td>\n",
" <td>27.43590</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>27655.60</td>\n",
" <td>2266300.0</td>\n",
" <td>81.9473</td>\n",
" </tr>\n",
" <tr>\n",
" <th>698</th>\n",
" <td>698</td>\n",
" <td>3436.69</td>\n",
" <td>2200.06</td>\n",
" <td>29.08590</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>27476.80</td>\n",
" <td>2266630.0</td>\n",
" <td>82.4924</td>\n",
" </tr>\n",
" <tr>\n",
" <th>699</th>\n",
" <td>699</td>\n",
" <td>3273.05</td>\n",
" <td>2042.01</td>\n",
" <td>26.83200</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>25500.30</td>\n",
" <td>2102630.0</td>\n",
" <td>82.4549</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>700 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" iteration walltime (ms) walltime filter update (ms) \\\n",
"0 0 9226.97 2631.22 \n",
"1 1 6296.54 2155.01 \n",
"2 2 6364.22 2195.48 \n",
"3 3 6307.95 2150.47 \n",
"4 4 6327.45 2153.37 \n",
".. ... ... ... \n",
"695 695 3424.46 2205.93 \n",
"696 696 3452.03 2199.23 \n",
"697 697 3463.87 2201.54 \n",
"698 698 3436.69 2200.06 \n",
"699 699 3273.05 2042.01 \n",
"\n",
" max job walltime (ms) min_runners max_runners \\\n",
"0 423.62100 1 2 \n",
"1 9.73675 2 2 \n",
"2 10.41640 2 2 \n",
"3 9.76071 2 2 \n",
"4 10.22350 2 2 \n",
".. ... ... ... \n",
"695 30.37890 12 12 \n",
"696 26.87720 12 12 \n",
"697 27.43590 12 12 \n",
"698 29.08590 12 12 \n",
"699 26.83200 12 12 \n",
"\n",
" accumulated runner idle time \\\n",
"0 5405.35 \n",
"1 4523.69 \n",
"2 4675.25 \n",
"3 4451.92 \n",
"4 4459.78 \n",
".. ... \n",
"695 27388.90 \n",
"696 27451.00 \n",
"697 27655.60 \n",
"698 27476.80 \n",
"699 25500.30 \n",
"\n",
" corresponding pdaf state per runner runner idle time \\\n",
"0 3117140.0 \n",
"1 2206450.0 \n",
"2 2248530.0 \n",
"3 2201740.0 \n",
"4 2205110.0 \n",
".. ... \n",
"695 2274020.0 \n",
"696 2263310.0 \n",
"697 2266300.0 \n",
"698 2266630.0 \n",
"699 2102630.0 \n",
"\n",
" pdaf slack/melissa-da slack \n",
"0 576.6770 \n",
"1 487.7550 \n",
"2 480.9440 \n",
"3 494.5590 \n",
"4 494.4450 \n",
".. ... \n",
"695 83.0271 \n",
"696 82.4491 \n",
"697 81.9473 \n",
"698 82.4924 \n",
"699 82.4549 \n",
"\n",
"[700 rows x 9 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv('server.timing-information.csv')\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"ename": "AttributeError",
"evalue": "'property' object has no attribute '__name__'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-5-b391a103fcc4>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mpandas\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mmatplotlib\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mpyplot\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mplotnine\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 30\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mcycler\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mcycler\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 32\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolorbar\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 33\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mimage\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 34\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mmatplotlib\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mrcsetup\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstyle\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/matplotlib/colorbar.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 25\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 26\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mmpl\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 27\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0martist\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mmartist\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 28\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcbook\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mcbook\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 29\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcollections\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mcollections\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 57\u001b[0;31m \u001b[0;32mclass\u001b[0m \u001b[0mArtist\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 58\u001b[0m \"\"\"\n\u001b[1;32m 59\u001b[0m \u001b[0mAbstract\u001b[0m \u001b[0mbase\u001b[0m \u001b[0;32mclass\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mobjects\u001b[0m \u001b[0mthat\u001b[0m \u001b[0mrender\u001b[0m \u001b[0minto\u001b[0m \u001b[0ma\u001b[0m \u001b[0mFigureCanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mArtist\u001b[0;34m()\u001b[0m\n\u001b[1;32m 62\u001b[0m \"\"\"\n\u001b[1;32m 63\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mcbook\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdeprecated\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"3.1\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 64\u001b[0;31m \u001b[0;34m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 65\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0maname\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m'Artist'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/matplotlib/cbook/deprecation.py\u001b[0m in \u001b[0;36mdeprecate\u001b[0;34m(obj, message, name, alternative, pending, addendum)\u001b[0m\n\u001b[1;32m 165\u001b[0m \u001b[0mBasic\u001b[0m \u001b[0mexample\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 166\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 167\u001b[0;31m \u001b[0;34m@\u001b[0m\u001b[0mdeprecated\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'1.4.0'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 168\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mthe_function_to_deprecate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 169\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mAttributeError\u001b[0m: 'property' object has no attribute '__name__'"
]
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f3c0b324c50>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"import os\n",
"from matplotlib import pyplot as plt\n",
"from plotnine import *"
"df.plot(\"iteration\", \"walltime (ms)\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A warmup phase is clearly visible when plotting the walltime per iteration so don't use the first lets say 50 iterations and dont use the last 10:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df['walltime propagation (ms)'] = df['walltime (ms)'] - df['walltime filter update (ms)']\n",
"plt.pie([x.mean() for x in [df['walltime propagation (ms)'][50:-10], df['walltime filter update (ms)'][50:-10]]], labels=['walltime propagation (ms)', 'walltime filter update (ms)'])\n",
"#plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
".... ok seems like the environment is still not working - so lets use matplotlib"
"For our dummy case we see that the filter update takes longer than the propagation. This relation wil linverse when we use real world simulatoins that are harder to calculate than a simple addition"
]
},
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment