Numba
Numba | ||
---|---|---|
![]() | ||
Información general | ||
Tipo de programa | compilador | |
Autor | Continuum Analytics | |
Desarrollador | Proyecto comunitario | |
Información técnica | ||
Programado en |
| |
Versiones | ||
Última versión estable | 0.50.0 ( 2020 de marzo del 30) | |
Enlaces | ||
Sitio web oficial Repositorio de código | ||
[editar datos en Wikidata] |
Numba es un compilador JIT de código abierto que traduce un subset de Python y NumPy en código de máquina usando LLVM, a través del paquete llvmlite de Python. Ofrece una gama de opciones para paralelizar código Python para CPU y GPU, a menudo con solo cambios menores en el código.[1]
Numba fue iniciado por Travis Oliphant en 2012 y desde entonces ha estado en desarrollo activo en GitHub con lanzamientos frecuentes. El proyecto está impulsado por desarrolladores de Anaconda, Inc., con el apoyo de DARPA, la Fundación Gordon y Betty Moore, Intel, Nvidia y AMD, y una comunidad de colaboradores en GitHub.[1][2]
Ejemplo
Numba se puede usar simplemente aplicando el decorador numba.jit
a una función de Python que hace cálculos numéricos:
import numba import random @numba.jit def monte_carlo_pi(nsamples: int): acc = 0 for i in range(nsamples): x = random.random() y = random.random() if (x**2 + y**2) < 1.0: acc += 1 return 4.0 * acc / nsamples
La compilación en tiempo de ejecución ocurre de forma transparente cuando se llama a la función:
>>> monte_carlo_pi(1000000) 3.14
El sitio web de Numba en contiene más ejemplos, así como información sobre cómo obtener un buen rendimiento de Numba.
Soporte de GPU
Numba puede compilar funciones de Python en código de GPU. Actualmente hay dos backends disponibles: NVIDIA CUDA y AMD ROCm HSA.[2]
Aproximaciones alternativas
Numba es un enfoque para hacer que Python sea rápido, compilando funciones específicas que contienen código Python y NumPy. Existen muchos enfoques alternativos para cálculo numérico rápido con Python, como Cython, TensorFlow, PyTorch, Chainer, Pythran y PyPy .
Enlaces externos
- Sitio web de Numba
- Repositorio de Numba en GitHub
- Backends de Numba:
- Documentación de Numba para CUDA
- Documentación de Numba para AMD ROCm HSA
Referencias
- ↑ a b Lanaro, Gabriele,. Python high performance : build robust application by implementing concurrent and distributed processing techniques (Second edition edición). ISBN 978-1-78728-243-8. OCLC 990086907. Consultado el 22 de septiembre de 2020.
- ↑ a b «Numba: A High Performance Python Compiler». numba.pydata.org. Consultado el 22 de septiembre de 2020.
Datos: Q17132992