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:29] – [Numba] 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 389: Zeile 389:
 Tipps: Tipps:
  
-   Verwende **Numpy-Arrays** anstelle von normalen Python-Listen.+   * **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 417: 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 424: 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 433: 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 467: 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.1756484993.txt.gz
  • Zuletzt geändert: 2025-08-29 16:29
  • von sca