Skip to content

Instantly share code, notes, and snippets.

@Santiago-j-s
Last active September 6, 2017 15:50
Show Gist options
  • Select an option

  • Save Santiago-j-s/344d7d20fca22aaf24556006a6fd98fa to your computer and use it in GitHub Desktop.

Select an option

Save Santiago-j-s/344d7d20fca22aaf24556006a6fd98fa to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Speed-up (n_procs vs aplicacion)\n",
" A B C\n",
"2 1.714286 1.770492 2.040816\n",
"4 3.333333 3.428571 5.000000\n",
"8 5.714286 6.087937 10.000000\n",
"\n",
"Eficiencia (n_procs vs aplicacion)\n",
" A B C\n",
"2 0.857143 0.885246 1.020408\n",
"4 0.833333 0.857143 1.250000\n",
"8 0.714286 0.760992 1.250000\n"
]
},
{
"data": {
"image/png": "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\nDegiK6MyUDQAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f921ca34780>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.cm as cm\n",
"\n",
"%matplotlib inline\n",
"\n",
"plt.style.use('seaborn-ticks')\n",
"\n",
"tiempos = np.array([12, 54, 10])\n",
"n_procs = np.array([2, 4, 8])\n",
"aplicaciones = ['A', 'B', 'C']\n",
"\n",
"tiempos_paralelos = np.array([\n",
" [07.00, 30.50, 04.90],\n",
" [03.60, 15.75, 02.00],\n",
" [02.10, 08.87, 01.00]\n",
"])\n",
"\n",
"speed_ups = tiempos / tiempos_paralelos\n",
"\n",
"print('Speed-up (n_procs vs aplicacion)')\n",
"print(pd.DataFrame(speed_ups, index=n_procs, columns=aplicaciones))\n",
"\n",
"eficiencias = speed_ups * (1 / n_procs)\n",
"\n",
"print('\\nEficiencia (n_procs vs aplicacion)')\n",
"print(pd.DataFrame(eficiencias, index=n_procs, columns=aplicaciones))\n",
"\n",
"for i, app in enumerate(aplicaciones):\n",
" plt.plot(n_procs, speed_ups[:, i], ':o', label=app, c=cm.Set1.colors[i])\n",
"\n",
"line = plt.Line2D(plt.xlim(), plt.xlim(), label='1/1', c=cm.Set1.colors[len(aplicaciones)])\n",
"plt.gca().add_line(line)\n",
"\n",
"plt.xlabel('Nro. Procesadores')\n",
"plt.ylabel('Speed-Up')\n",
"\n",
"plt.legend()\n",
"\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"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.4.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment