paper-ParallelPython-Short/data/plots.ipynb

514 lines
66 KiB
Plaintext
Raw Normal View History

2022-04-02 22:19:50 -04:00
{
"cells": [
{
"cell_type": "code",
2022-04-02 23:35:22 -04:00
"execution_count": 64,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"x = ['1K','10K','100K','1M','10M']\n",
"\n",
"term = pow (10,-6)\n",
"\n",
"labelfontsize = 22\n",
"ticfontsize=22\n",
"ticwidth=2\n",
"ticlength=6\n",
"mylinewidth=3"
]
},
{
"cell_type": "code",
"execution_count": 66,
2022-04-02 22:19:50 -04:00
"metadata": {
"collapsed": 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>datasize</th>\n",
" <th>coldruntime</th>\n",
" <th>hotruntime</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1K</td>\n",
" <td>0.100575</td>\n",
" <td>0.055373</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>10K</td>\n",
" <td>0.091807</td>\n",
" <td>0.054508</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>100K</td>\n",
" <td>0.130599</td>\n",
" <td>0.077568</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1M</td>\n",
" <td>0.755035</td>\n",
" <td>0.330882</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>10M</td>\n",
" <td>4.626190</td>\n",
" <td>3.199181</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" datasize coldruntime hotruntime\n",
"0 1K 0.100575 0.055373\n",
"1 10K 0.091807 0.054508\n",
"2 100K 0.130599 0.077568\n",
"3 1M 0.755035 0.330882\n",
"4 10M 4.626190 3.199181"
]
},
2022-04-02 23:35:22 -04:00
"execution_count": 66,
2022-04-02 22:19:50 -04:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
2022-04-02 23:35:22 -04:00
"# read data and setup plot metadata and settings\n",
"df=pd.read_csv(\"./scalability-write.csv\")\n",
"yseries = [ \"coldruntime\", \"hotruntime\" ]\n",
"colors = { \"coldruntime\": \"blue\",\n",
" \"hotruntime\": \"red\" }\n",
"serieslabels = { \"coldruntime\" : \"Cold cache\",\n",
" \"hotruntime\": \"Hot cache\" }\n",
"df"
2022-04-02 22:19:50 -04:00
]
},
{
"cell_type": "code",
2022-04-02 23:35:22 -04:00
"execution_count": 69,
2022-04-02 22:19:50 -04:00
"metadata": {
"collapsed": false
},
"outputs": [
2022-04-02 23:35:22 -04:00
{
"name": "stderr",
"output_type": "stream",
"text": [
"<ipython-input-69-d4eecc53a5f0>:21: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n",
" plt.axes().spines[axis].set_linewidth(ticwidth)\n"
]
},
2022-04-02 22:19:50 -04:00
{
"data": {
"text/plain": [
"<module 'matplotlib.pyplot' from '/Users/lord_pretzel/.pyenv/versions/3.9.0/lib/python3.9/site-packages/matplotlib/pyplot.py'>"
]
},
2022-04-02 23:35:22 -04:00
"execution_count": 69,
2022-04-02 22:19:50 -04:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2022-04-02 23:35:22 -04:00
"image/png": "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
2022-04-02 22:19:50 -04:00
"text/plain": [
2022-04-02 23:35:22 -04:00
"<Figure size 432x216 with 1 Axes>"
2022-04-02 22:19:50 -04:00
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
2022-04-02 23:35:22 -04:00
"fig = plt.figure(figsize=(6,3))\n",
"\n",
"for s in yseries:\n",
" plt.plot(x, df[s],color=colors[s],label=serieslabels[s],linewidth=mylinewidth,marker=\"o\")\n",
2022-04-02 22:19:50 -04:00
"\n",
"#plt.xticks(x)\n",
"plt.yscale(\"log\")\n",
2022-04-02 23:35:22 -04:00
"\n",
"# axes\n",
"plt.xlabel('Dataset size (rows)', fontsize=labelfontsize)\n",
"plt.xticks(fontsize = ticfontsize)\n",
"plt.tick_params(width=ticwidth,length=ticlength,which='both')\n",
"\n",
"plt.ylabel('Runtime (sec)', fontsize=labelfontsize)\n",
"plt.yticks(fontsize = ticfontsize)\n",
"\n",
"# grid and axis lines\n",
"plt.grid(visible=True, linewidth=2, color=\"black\",which=\"major\", axis=\"y\")\n",
"\n",
"for axis in ['top','bottom','left','right']:\n",
" plt.axes().spines[axis].set_linewidth(ticwidth)\n",
"\n",
2022-04-02 22:19:50 -04:00
"plt.tight_layout()\n",
2022-04-02 23:35:22 -04:00
"\n",
"# legend\n",
"plt.legend(fontsize=labelfontsize,handlelength=1.5,frameon=False)\n",
"# save\n",
"plt.savefig('../graphics/scalability-write.pdf')\n",
2022-04-02 22:19:50 -04:00
"plt"
]
},
{
"cell_type": "code",
2022-04-02 23:35:22 -04:00
"execution_count": 72,
2022-04-02 22:19:50 -04:00
"metadata": {
"collapsed": false
},
"outputs": [],
2022-04-02 23:35:22 -04:00
"source": [
"def gantt(data, title):\n",
" from bokeh.plotting import figure, show\n",
"\n",
" columns = [str(row[\"id\"]) for row in data.rows]\n",
" components = [\"start\", \"runtime\"]\n",
" colors = [\"#fff\", \"#718dbf\"]\n",
" labelfontsize = \"13pt\"\n",
" p = figure(\n",
2022-04-02 23:42:50 -04:00
" x_range=columns,\n",
2022-04-02 23:35:22 -04:00
" height=250,\n",
" width=370\n",
" # title=title\n",
" )\n",
"\n",
" p.vbar_stack(components, x='id', width=0.9, color=colors, source=data.to_bokeh(),\n",
" legend_label=[\"\", \"Cell Executing\"])\n",
"\n",
" p.y_range.start = 0\n",
" p.x_range.range_padding = 0.1\n",
" p.xaxis.axis_label = \"Cell ID\"\n",
" p.xaxis.axis_label_text_font_size = labelfontsize\n",
" p.yaxis.axis_label = \"Time (s)\"\n",
" p.yaxis.axis_label_text_font_size = labelfontsize\n",
" p.xgrid.grid_line_color = None\n",
" p.axis.minor_tick_line_color = None\n",
" p.outline_line_color = None\n",
" p.legend.label_text_font_size = labelfontsize\n",
" p.legend.location = \"bottom_right\"\n",
" p.legend.orientation = \"horizontal\"\n",
" p.legend.background_fill_alpha = 0\n",
" p.legend.border_line_alpha = 0\n",
" export_png(p, filename=)\n",
" show(p)"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {
"collapsed": 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>cellid</th>\n",
" <th>start</th>\n",
" <th>end</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1.262</td>\n",
" <td>3.288</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>4.644</td>\n",
" <td>17.450</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>4.659</td>\n",
" <td>18.390</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>4.676</td>\n",
" <td>15.598</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>4.691</td>\n",
" <td>15.455</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>6</td>\n",
" <td>4.708</td>\n",
" <td>18.359</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>7</td>\n",
" <td>4.727</td>\n",
" <td>18.292</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>8</td>\n",
" <td>4.753</td>\n",
" <td>18.345</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>9</td>\n",
" <td>4.771</td>\n",
" <td>18.049</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>10</td>\n",
" <td>4.790</td>\n",
" <td>18.294</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>11</td>\n",
" <td>4.811</td>\n",
" <td>18.225</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" cellid start end\n",
"0 1 1.262 3.288\n",
"1 2 4.644 17.450\n",
"2 3 4.659 18.390\n",
"3 4 4.676 15.598\n",
"4 5 4.691 15.455\n",
"5 6 4.708 18.359\n",
"6 7 4.727 18.292\n",
"7 8 4.753 18.345\n",
"8 9 4.771 18.049\n",
"9 10 4.790 18.294\n",
"10 11 4.811 18.225"
]
},
"execution_count": 77,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dfp = pd.read_csv(\"./gantt_parallel.csv\")\n",
"dfp"
]
},
{
"cell_type": "code",
2022-04-02 23:52:08 -04:00
"execution_count": 107,
2022-04-02 23:42:50 -04:00
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def gantt(infile,outfile):\n",
" import matplotlib.pyplot as plt\n",
" import numpy as np\n",
" import pandas as pd\n",
"\n",
" dfp = pd.read_csv(infile)\n",
" fig = plt.figure(figsize=(6,3))\n",
" x = df[\"cellid\"]\n",
"\n",
" plt.bar(x, dfp[\"start\"],color=\"white\")\n",
" plt.bar(x, dfp[\"end\"], bottom=dfp[\"start\"],color=\"blue\",zorder=3)\n",
"\n",
" # axes\n",
" plt.xlabel('Cell Position', fontsize=labelfontsize)\n",
" plt.xticks(fontsize = ticfontsize,ticks=[1,2,3,4,5,6,7,8,9,10,11])\n",
" plt.tick_params(width=ticwidth,length=ticlength,which='both')\n",
"\n",
" plt.ylabel('Runtime (sec)', fontsize=labelfontsize)\n",
" plt.yticks(fontsize = ticfontsize)\n",
"\n",
" # grid and axis lines\n",
" plt.grid(visible=True, linewidth=2, color=\"black\",which=\"major\", axis=\"y\")\n",
"\n",
" for axis in ['top','bottom','left','right']:\n",
" plt.axes().spines[axis].set_linewidth(ticwidth)\n",
"\n",
" plt.tight_layout()\n",
"\n",
" # legend\n",
" plt.legend(fontsize=labelfontsize,handlelength=1.5,frameon=False)\n",
" # save\n",
" plt.savefig(outfile)\n",
" plt"
]
},
{
"cell_type": "code",
2022-04-02 23:52:08 -04:00
"execution_count": 108,
2022-04-02 23:35:22 -04:00
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
2022-04-02 23:52:08 -04:00
"<ipython-input-107-8019dd655d18>:25: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n",
2022-04-02 23:35:22 -04:00
" plt.axes().spines[axis].set_linewidth(ticwidth)\n",
"No handles with labels found to put in legend.\n"
]
},
{
"data": {
2022-04-02 23:52:08 -04:00
"image/png": "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
2022-04-02 23:35:22 -04:00
"text/plain": [
2022-04-02 23:42:50 -04:00
"<Figure size 432x216 with 1 Axes>"
2022-04-02 23:35:22 -04:00
]
},
2022-04-02 23:42:50 -04:00
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt = gantt(\"./gantt_parallel.csv\", \"../graphics/gantt_parallel.pdf\")\n",
"plt"
]
},
{
"cell_type": "code",
2022-04-02 23:52:08 -04:00
"execution_count": 109,
2022-04-02 23:42:50 -04:00
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
2022-04-02 23:52:08 -04:00
"<ipython-input-107-8019dd655d18>:25: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n",
2022-04-02 23:42:50 -04:00
" plt.axes().spines[axis].set_linewidth(ticwidth)\n",
"No handles with labels found to put in legend.\n"
]
2022-04-02 23:35:22 -04:00
},
{
"data": {
2022-04-02 23:52:08 -04:00
"image/png": "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
2022-04-02 23:35:22 -04:00
"text/plain": [
"<Figure size 432x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
2022-04-02 23:42:50 -04:00
"plt = gantt(\"./gantt_serial.csv\", \"../graphics/gantt_serial.pdf\")\n",
2022-04-02 23:35:22 -04:00
"plt"
]
2022-04-02 23:52:08 -04:00
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
2022-04-02 22:19:50 -04:00
}
],
"metadata": {
"kernelspec": {
"argv": [
"python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3",
"env": null,
"interrupt_mode": "signal",
"language": "python",
"metadata": null,
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.0"
},
"name": "plots.ipynb"
},
"nbformat": 4,
"nbformat_minor": 4
}