Înapoi la lista de proiecte

Calcul științific

Repository GitHub

Benchmark pentru simulări de reacție-difuzie

Aceeași simulare, două backenduri Python și o comparație atentă între viteză și consistență numerică.

Context: Calcul științific, simulare numerică și benchmarkuri Python

Perioadă: 2026

Rezumat

Benchmarkul rulează același model bidimensional FitzHugh-Nagumo prin implementări NumPy vectorizate și Numba paralele. Starea inițială, ecuațiile, numărul de iterații și metricile identice așază timpul de execuție lângă eroarea numerică și semnificația statistică.

De la intrări identice la o comparație de performanță justificată

Stare inițială

Ambele backenduri primesc aceeași grilă și aceiași parametri

NumPy

Implementarea vectorizată rulează simularea de referință

Numba

Backendul compilat și paralel rezolvă aceleași ecuații

Verificare

Sunt măsurate timpul, eroarea numerică și semnificația

Rapoarte

Tabelele și graficele fac rezultatele comparabile

Ce gestionează sistemul

Evaluează o simulare 2D FitzHugh-Nagumo de reacție-difuzie.

Compară NumPy vectorizat cu Numba paralel folosind aceleași ecuații și intrări.

Include condiții periodice la frontieră și difuzie cu patru vecini.

Generează CSV-uri, grafice, timpi de execuție, erori numerice și comparații statistice.

Benchmark perechi măsurat

Zece eșantioane perechi a câte 300 de iterații pentru fiecare grilă, comparând Numba cu referința NumPy în condiții identice de simulare.

Accelerare Numba

8,50×

NumPy pe 64 × 64

Accelerare Numba

3,77×

NumPy pe 128 × 128

Accelerare Numba

2,44×

NumPy pe 256 × 256

Test t perechi

< 0,001valoare p

Toate dimensiunile testate

Eroare absolută maximă

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

Numba comparat cu NumPy

Tehnologie

Stack

PythonNumPyNumbapandasSciPyMatplotlibFitzHugh-Nagumo modelCLICSV reports

Domenii

Calcul științificPerformanțăSimulare numericăBenchmarkingPython

Explorator de benchmark

Rezultate de benchmark precomputate

Numba comparat cu referința NumPy

Alege dimensiunea grilei pentru a analiza timpul mediu și accelerarea măsurată, păstrând consistența numerică vizibilă lângă performanță.

NumPy Numba
64 × 648,50×

mai rapid decât referința NumPy

Eroare absolută maximă
2.56e-6
Test t perechi
p = 7.50e-4
Eșantioane × iterații
10 × 300
64²8,5×
128²3,77×
256²2,44×

Sursă: fișierele CSV de benchmark din repository, cu 10 eșantioane perechi a câte 300 de iterații pentru fiecare grilă. Exploratorul prezintă rezultatele precomputate, iar rularea benchmarkului rămâne în fluxul repository-ului.

Inspectează fișierele CSV sursă pe GitHub

Concluzii

  • Numba a redus timpul de execuție pentru fiecare dimensiune testată, cu cel mai mare câștig pe grila 64 × 64.
  • Rezultatele pentru mai multe dimensiuni arată cum se schimbă performanța odată cu grila.
  • Păstrarea erorii numerice lângă timp confirmă că implementarea mai rapidă rămâne apropiată de referința NumPy.

Vrei să inspectezi implementarea?

Repository-ul conține codul sursă, instrucțiunile de configurare și istoricul dezvoltării.

Deschide repository-ul