pygrn / xerrades

Xerrades de Python Girona
http://pythongirona.cat
GNU Affero General Public License v3.0
37 stars 4 forks source link

[Xerrada] ¿Es un pájaro? ¿Es un avión? Acelerando código con numba #66

Open astrojuanlu opened 2 years ago

astrojuanlu commented 2 years ago

¿Es un pájaro? ¿Es un avión? Acelerando código con numba

Tipus de la proposta:

Tenemos suerte de tener soluciones muy variadas para hacer nuestro código Python más rápido: desde escribir parte del código en lenguajes compilados (NumPy, pandas) a alterar la sintaxis del lenguaje para hacerla más digerible a los compiladores (Cython) pasando por usar un subconjunto del lenguaje que pueda ser acelerado (numba, mypyc), y muchas más. Sin embargo, cada una de estas opciones tiene sus pros y sus contras, y no hay una solución mágica a todos nuestros problemas de rendimiento.

En esta charla vamos a enfocarnos en numba, el proyecto que elegí para acelerar los algoritmos de mi biblioteca de astrodinámica en Python, poliastro. numba compila código Python al vuelo usando LLVM, acelerando el rendimiento de manera bastante notable y con muy poco esfuerzo. numba es perfecto para código limitado por CPU (CPU-bound), puesto que para código limitado por E/S (IO-bound) otras estrategias como la concurrencia son más efectivas. Mencionaremos las GPUs solo de pasada.

Duració estimada: 30 minutos a 1 hora

TAGS: rendimiento, numba, llvm