Volver al archivo de proyectos

Computación científica

Repositorio de GitHub

Benchmark de reacción-difusión

La misma simulación, dos backends de Python y una comparación cuidadosa de velocidad y consistencia numérica.

Contexto: Computación científica, simulación numérica y rendimiento en Python

Periodo: 2026

Resumen

El benchmark ejecuta el mismo modelo bidimensional FitzHugh-Nagumo con NumPy vectorizado y Numba paralelo. Estados, ecuaciones e iteraciones idénticos permiten comparar tiempo de ejecución, error numérico y significación.

De entradas idénticas a una comparación de rendimiento justificada

Estado inicial

Ambos backends reciben la misma cuadrícula y parámetros

NumPy

La implementación vectorizada ejecuta la referencia

Numba

El backend compilado y paralelo resuelve las mismas ecuaciones

Verificación

Se miden tiempo, error numérico y significación

Informes

Tablas y gráficos hacen comparables los resultados

Qué gestiona el sistema

Simula un sistema FitzHugh-Nagumo bidimensional.

Compara NumPy y Numba bajo condiciones idénticas.

Utiliza fronteras periódicas y difusión con cuatro vecinos.

Genera CSV, gráficos y comparaciones estadísticas.

Benchmark pareado medido

Diez muestras pareadas de 300 iteraciones por cuadrícula bajo condiciones de simulación idénticas.

Aceleración de Numba

8,50×

NumPy en 64 × 64

Aceleración de Numba

3,77×

NumPy en 128 × 128

Aceleración de Numba

2,44×

NumPy en 256 × 256

Prueba t pareada

< 0,001valor p

Todos los tamaños

Error absoluto máximo

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

Numba frente a NumPy

Tecnología

Stack

PythonNumPyNumbapandasSciPyMatplotlibFitzHugh-Nagumo modelCLICSV reports

Áreas

Computación científicaRendimientoSimulación numéricaBenchmarkingPython

Explorador del benchmark

Resultados de benchmark precalculados

Numba comparado con la referencia NumPy

Elige un tamaño de cuadrícula para comparar tiempo medio, aceleración medida y consistencia numérica.

NumPy Numba
64 × 648,50×

más rápido que la referencia NumPy

Error absoluto máximo
2.56e-6
Prueba t pareada
p = 7.50e-4
Muestras × iteraciones
10 × 300
64²8,5×
128²3,77×
256²2,44×

Fuente: archivos CSV del benchmark con diez muestras pareadas de 300 iteraciones por cuadrícula. La ejecución del benchmark permanece en el flujo del repositorio.

Ver los archivos CSV originales en GitHub

Conclusiones

  • Numba redujo el tiempo para todos los tamaños de cuadrícula probados.
  • Varios tamaños muestran cómo escala la aceleración.
  • El error numérico permanece visible junto al rendimiento y cercano a NumPy.

¿Quieres revisar la implementación?

El repositorio contiene el código, las instrucciones de configuración y el historial de desarrollo.

Abrir repositorio