Torna all'archivio

Calcolo scientifico

Repository GitHub

Benchmark di reazione-diffusione

La stessa simulazione, due backend Python e un confronto rigoroso tra velocità e coerenza numerica.

Contesto: Calcolo scientifico, simulazione numerica e prestazioni Python

Periodo: 2026

Riepilogo

Il benchmark esegue lo stesso modello FitzHugh-Nagumo bidimensionale con NumPy vettoriale e Numba parallelo. Stati, equazioni e iterazioni identici permettono di confrontare tempo, errore numerico e significatività.

Da input identici a un confronto di prestazioni fondato

Stato iniziale

Entrambi i backend ricevono la stessa griglia e parametri

NumPy

L'implementazione vettoriale esegue il riferimento

Numba

Il backend compilato parallelo risolve le stesse equazioni

Verifica

Si misurano tempo, errore numerico e significatività

Report

Tabelle e grafici rendono confrontabili i risultati

Cosa gestisce il sistema

Simula un sistema FitzHugh-Nagumo bidimensionale.

Confronta NumPy e Numba in condizioni identiche.

Usa condizioni periodiche e diffusione a quattro vicini.

Produce CSV, grafici e confronti statistici.

Benchmark appaiato misurato

Dieci campioni appaiati di 300 iterazioni per griglia in condizioni identiche.

Accelerazione Numba

8,50×

NumPy a 64 × 64

Accelerazione Numba

3,77×

NumPy a 128 × 128

Accelerazione Numba

2,44×

NumPy a 256 × 256

Test t appaiato

< 0,001valore p

Tutte le griglie

Errore assoluto massimo

2,3e-6–2,6e-6

Numba rispetto a NumPy

Tecnologia

Stack

PythonNumPyNumbapandasSciPyMatplotlibFitzHugh-Nagumo modelCLICSV reports

Aree

Calcolo scientificoPrestazioniSimulazione numericaBenchmarkingPython

Esploratore del benchmark

Risultati precalcolati del benchmark

Numba confrontato con il riferimento NumPy

Scegli una dimensione della griglia per confrontare tempo medio, accelerazione misurata e coerenza numerica.

NumPy Numba
64 × 648,50×

più veloce del riferimento NumPy

Errore assoluto massimo
2.56e-6
Test t appaiato
p = 7.50e-4
Campioni × iterazioni
10 × 300
64²8,5×
128²3,77×
256²2,44×

Fonte: file CSV del benchmark con dieci campioni appaiati da 300 iterazioni per griglia. L'esecuzione resta nel workflow del repository.

Vedi i file CSV sorgente su GitHub

Conclusioni

  • Numba riduce il tempo per ogni dimensione testata.
  • Più dimensioni mostrano come scala l'accelerazione.
  • L'errore numerico resta visibile accanto alle prestazioni e vicino a NumPy.

Vuoi esaminare l'implementazione?

Il repository contiene codice sorgente, istruzioni di configurazione e cronologia dello sviluppo.

Apri il repository