Numba
Numba és un compilador JIT de còdic obert que traduïx un subconjunt de Python i NumPy en còdic de màquina usant LLVM, a través del paquet llvmlite de Python. Oferix una gama d'opcions per a paralelizar còdic Python per a CPU i GPU, a sovint en sol canvis menors en el còdic.[1]
Numba va ser iniciat per Travis Oliphant en 2012 i des de llavors ha estat en desenroll actiu en GitHub en llançaments freqüents. El proyecte està impulsat per desenrolladors de Anaconda, Inc., en el respal de DARPA, la Fundació Gordon i Betty Moore, Intel, Nvidia i AMD, i una comunitat de colaboradors en GitHub.[1][2]
Eixemple
[editar | editar còdic]
Numba es pot usar simplement aplicant el decorador numba.jit a una funció de Python que fa càlculs numèrics:
import numba
import random
numba.jit
def monte_carlo_pi(nsamples: int):
acc = 0
for i in range(nsamples):
x = random.random()
i = random.random()
if (x**2 + i**2) < 1.0:
acc += 1
return 4.0 * acc / nsamplesLa compilació en temps d'eixecució ocorre de forma transparent quan es diu a la funció:
>>> mont_carlo_pi(1000000)
3.14El lloc web de Numba en conté més eixemples, aixina com informació sobre cóm obtindre un bon rendiment de Numba.
Soport de GPU
[editar | editar còdic]Numba pot compilar funcions de Python en còdic de GPU. Actualment hi ha dos backends disponibles: NVIDIA CUDA i AMD ROCm HSA.[2]
Referències
[editar | editar còdic]- ↑ 1,0 1,1 Lanaro, Gabriele,. Python high performance : build robust application by implementing concurrent and distributed processing techniques, Second edition edició. OCLC 990086907. ISBN 978-1-78728-243-8.
- ↑ 2,0 2,1 «Numba: A High Performance Python Compiler». numba.pydata.org. Consultat el 2020-09-22.
- Este artícul conté una traducció derivada de «Numba» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.