Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
talit:python_advanced [2025-08-29 16:06] – [Beispiel] scatalit:python_advanced [2025-08-29 16:33] (aktuell) – [Numba] sca
Zeile 380: Zeile 380:
 ===== Numba ===== ===== Numba =====
  
-Numba ist ein Just-in-Time (JIT) Compiler für Python, der Funktionen mit Hilfe von LLVM in Maschinencode übersetzt. Besonders nützlich ist Numba für numerische Berechnungen mit NumPy, da es diese massiv beschleunigen kann – auch durch Parallelisierung.+Numba ist ein Just-in-Time (JIT) Compiler für Python, der Funktionen mit Hilfe von LLVM in Maschinencode übersetzt. Besonders nützlich ist Numba für **numerische Berechnungen mit NumPy**, da es diese **massiv beschleunigen** kann – auch durch **Parallelisierung**.
  
 Installation Installation
Zeile 386: Zeile 386:
 pip install numba pip install numba
 </code> </code>
 +
 +Tipps:
 +
 +   * **Vermeide Python-Objekte** (z. B. Listen, Dictionaries).
 +   * Nutze **NumPy-Arrays** und primitive Datentypen (z.B. int).
 +   * Verwende `numba.set_num_threads(n)` zur Kontrolle der Thread-Anzahl.
 +
  
 ==== Beispiel: Prinzahlen ==== ==== Beispiel: Prinzahlen ====
Zeile 414: Zeile 421:
 from numba import njit, prange from numba import njit, prange
 import numpy as np import numpy as np
 + 
 @njit @njit
 def is_prime(x): def is_prime(x):
Zeile 421: Zeile 428:
             return False             return False
     return True     return True
- +  
-@njit(parallel=True)+@njit(parallel=True, fastmath=True)
 def run(): def run():
     n_max = 3e4     n_max = 3e4
Zeile 430: Zeile 437:
             nr_primes += 1             nr_primes += 1
     return nr_primes     return nr_primes
 + 
 nr_primes = run() nr_primes = run()
 print(nr_primes) print(nr_primes)
Zeile 464: Zeile 471:
 from numba import njit, prange from numba import njit, prange
  
-@njit(parallel=True)+@njit(parallel=True, fastmath=True)
 def berechne_sinus(x_vals): def berechne_sinus(x_vals):
     result = np.empty_like(x_vals)     result = np.empty_like(x_vals)
  • talit/python_advanced.1756483593.txt.gz
  • Zuletzt geändert: 2025-08-29 16:06
  • von sca