Numba

Numba
Originalautor (en) Kontinuumanalytics
Entwickler (en) Gemeinschaftsprojekt
Erstveröffentlichung 15. August 2012; Vor 9 Jahren
Stabile Version
0,55,2[1] / 26. Mai 2022; Vor 2 Monaten
Vorschau -Version
0,54,0RC2 / 16 Juli 2021; Vor 12 Monaten
Repository
Geschrieben in Python, C
Betriebssystem Plattformübergreifend
Typ Technisches Computer
Webseite Numba.pydata.org

Numba ist ein Open Source JIT -Compiler das übersetzt eine Teilmenge von Python und Numpy in einen schnellen Maschinencode verwendet Llvmüber das LLVMLite Python -Paket. Es bietet eine Reihe von Optionen zum parallelisierenden Python -Code für CPUs und GPUs, häufig mit nur geringfügigen Codeänderungen.

Numba wurde von gestartet Travis Oliphant im Jahr 2012 und ist seitdem aktiv bei der aktiven Entwicklung bei https://github.com/numba/numba mit häufigen Veröffentlichungen. Das Projekt wird von Entwicklern von Anaconda, Inc. mit Unterstützung durch angetrieben DARPA, das Gordon und Betty Moore Foundation, Intel, Nvidia und AMDund eine Gemeinschaft von Mitwirkenden auf GitHub.

Beispiel

Numba kann verwendet werden, indem einfach das angewendet wird numba.jit Dekorateur einer Python -Funktion, die numerische Berechnungen ausführt:

importieren Numba importieren zufällig @numba.Jit def mONTE_CARLO_PI(N_samples: int):  Acc = 0  zum i in Angebot(N_samples):  x = zufällig.zufällig()  y = zufällig.zufällig()  wenn (x**2 + y**2) < 1.0:  Acc += 1  Rückkehr 4.0 * Acc / N_samples 

Das Just-in-Time-Zusammenstellung passiert transparent, wenn die Funktion aufgerufen wird:

>>> mONTE_CARLO_PI(1000000) 3.14 

Die Numba -Website unter https://numba.pydata.org Enthält viele weitere Beispiele sowie Informationen darüber, wie Sie eine gute Leistung von Numba erzielen können.

GPU -Unterstützung

Numba kann Python -Funktionen zum GPU -Code kompilieren. Derzeit sind zwei Backends verfügbar:

Alternative Ansätze

Numba ist ein Ansatz, um Python schnell zu machen, indem bestimmte Funktionen zusammengestellt werden, die Python- und Numpy -Code enthalten. Es gibt viele alternative Ansätze für das schnelle numerische Computing mit Python, wie z. Cython, Tensorflow, Pytorch, Kette, Pythran, und Pypy.

Verweise

  1. ^ "Releases · numba/numba". GitHub. Abgerufen 2021-06-01.