{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Parte 5 - Buenas pr\u00e1cticas" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Correcci\u00f3n de c\u00f3digo y pruebas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Escribir pruebas tiene muchas ventajas:\n", "\n", "* Comprobaci\u00f3n de que lo que funcionaba antes sigue funcionando ahora\n", "* Dan una idea de c\u00f3mo se usa el c\u00f3digo\n", "* Ayudan a descubrir casos raros y fallos ocultos" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from maxima import find_maxima" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "find_maxima([1, 2, 3, 2, 4, 1])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 2, "text": [ "[2, 4]" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "%run test_maxima.py" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "find_maxima([1, 2, 1, 2, 3])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "[1, 4]" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "find_maxima([1, 1, 1])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "[]" ] } ], "prompt_number": 5 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Nociones de optimizaci\u00f3n de c\u00f3digo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hay un par de trucos que podemos utilizar en IPython para medir el rendimiento del c\u00f3digo. El primero es usa la *magic function* `%%timeit`, que mide cu\u00e1nto tiempo tarda en ejecutarse una celda." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "a = np.random.randn(100, 200)\n", "b = np.random.randn(100, 200)\n", "c = np.zeros_like(a)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "%%timeit\n", "assert a.shape == b.shape\n", "N = a.shape[0]\n", "M = a.shape[1]\n", "for i in range(N):\n", " for j in range(M):\n", " c[i, j] = a[i, j] + b[i, j]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "100 loops, best of 3: 17.2 ms per loop\n" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "%%timeit\n", "c = a + b" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "100000 loops, best of 3: 18.4 \u00b5s per loop\n" ] } ], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Observamos que la versi\u00f3n vectorizada con NumPy es, en mi ordenador, cerca de 1000 veces m\u00e1s r\u00e1pida. Aun as\u00ed, en cuanto empecemos a escribir c\u00f3digo num\u00e9rico de cierta magnitud nuestro programa empezar\u00e1 a ir lento. Puede ser que lleguemos a unos tiempos de ejecuci\u00f3n inaceptables (8 horas para ejecutar un programa de un trabajo de clase por ejemplo). \u00bfC\u00f3mo hacer que vaya m\u00e1s r\u00e1pido?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\u201c Premature optimization is the root of all evil\u201d.

\n", "\n", "

Donald E. Knuth

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Existen unas herramientas llamadas *profilers* que ejecutan nuestro programa y analizan cu\u00e1nto tiempo tarda cada funci\u00f3n dentro de nuestro programa. Podemos usar esta valiosa informaci\u00f3n para escoger qu\u00e9 partes de nuestro programa tenemos que optimizar *y qu\u00e9 partes **no** tenemos que optimizar*." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Por ejemplo, supongamos que quiero reproducir la gr\u00e1fica de la ecuaci\u00f3n de Kepler que aparece en la Wikipedia:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import HTML\n", "HTML('')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "" ] } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "El c\u00f3digo ser\u00eda algo as\u00ed:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "from scipy import optimize\n", "import matplotlib.pyplot as plt" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Utilizando la *magic function* `%%prun` y ordenando los resultados por tiempo acumulado `-s cumtime` obtenemos un an\u00e1lisis de cu\u00e1les son las partes m\u00e1s lentas del c\u00f3digo. Si utilizas un valor de N alto (por ejemplo 10000) la celda tardar\u00e1 unos segundos en ejecutarse, y la mayor parte del tiempo se ir\u00e1 en resolver la ecuaci\u00f3n para cada uno de los puntos. Sin embargo, si utilizas un N bajo (por ejemplo 10) la gr\u00e1fica es de peor calidad \u00a1y en representarla es donde se pierde la mayor parte del tiempo!" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%prun -s cumtime\n", "def kepler(E, e, M):\n", " \"\"\"Kepler's equation.\"\"\"\n", " return E - e * np.sin(E) - M\n", "\n", "fig, axes = plt.subplots(figsize=(6, 6))\n", "\n", "N = 10000\n", "M_domain = np.linspace(0, 2 * np.pi, N)\n", "for ecc in 0.0167, 0.249, 0.432, 0.775, 0.967:\n", " E_domain = np.zeros_like(M_domain)\n", " ii = 0\n", " for M in M_domain:\n", " sol = optimize.root(kepler, E_domain[ii], args=(ecc, M))\n", " E_domain[ii] = sol.x\n", " ii += 1\n", "\n", " axes.plot(M_domain, E_domain)\n", "\n", "axes.set_xlim(0, 2 * np.pi)\n", "axes.set_ylim(0, 2 * np.pi)\n", "axes.set_xlabel(\"$M$\", fontsize=15)\n", "axes.set_ylabel(\"$E$\", fontsize=15)\n", "axes.set_aspect(1)\n", "axes.grid(True)\n", "axes.legend([\"Earth\", \"Pluto\", \"Comet Holmes\", \"28P/Neujmin\", \"Halley's Comet\"], loc=2)\n", "axes.set_title(\"Kepler's equation solutions\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " " ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nYVaTfHu9rgAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 21 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Por eso es fundamental analizar nuestro progama antes de optimizarlo, no sea que lo que nosotros pensamos que puede ser lento en realidad no lo sea o sea menos importante que otras partes del programa." ] } ], "metadata": {} } ] }