Aceleración con NumPy y Numba para Solver Iterativo en HPC
Visión general
De qué trata este proyecto.
Parte del baseline Python puro (provisto: bucles anidados, ~120 líneas). Versión 1: vectoriza con NumPy usando slicing y operaciones broadcast (sin un solo for explícito sobre los puntos de la malla). Versión 2: añade @numba.jit (nopython=True, parallel=True) + numba.prange en el bucle temporal o espacial donde tenga sentido. Versión 3: Cython con tipos estáticos y memoryviews. Benchmark sobre 3 tamaños de malla (256, 512, 1024) y 1.000 iteraciones. Mide tiempo, memoria pico, consumo CPU multi-core. Verifica que las 3 versiones producen el mismo resultado (error relativo menor a 1e-10). Entrega: 3 implementaciones, tabla comparativa, informe de 8 páginas con recomendación.
El Briefing
Lo que harás y lo que demostrarás.
Acelerar un solver iterativo Jacobi de Python puro al menos 100x manteniendo exactitud numérica y comparando vectorización, Numba y Cython.
Earning criteria — what you'll demonstrate
- Vectorizar código numérico con NumPy eliminando bucles Python
- Aplicar Numba JIT con paralelismo en bucles apropiados
- Escribir Cython con tipos estáticos y memoryviews
- Evaluar trade-off entre aceleración y esfuerzo de mantenimiento
Encaje académico
Dónde encaja esto en tus estudios.
Afina las mismas habilidades que tu titulación espera de ti.
Habilidades
Habilidades que demostrarás.
Cada una aparece en tu credencial verificada.
Carreras
Roles para los que esto te prepara.
Títulos reales. Puentes de habilidades reales. Elige el que más se acerque a tu trayectoria.
Trayectorias profesionales que esto construye
Roles canónicosInvestigador Científico
Saber acelerar tu propio código numérico sin depender de ingeniero HPC externo es lo que hace que tu research escale a problemas reales sin esperar 6 meses de portado.
Este proyecto afina
- numpy-vectorization
- numba-jit
- performance-benchmarking
Ingeniero de Aprendizaje Automático
Los ML engineers que pueden bajar a NumPy + Numba para escribir kernels custom resuelven cuellos de botella que llamar PyTorch no resuelve.
Este proyecto afina
- numpy-vectorization
- numba-jit
- scientific-python
Ingeniero de Datos
Optimización de Python científico es trabajo diario en pipelines de simulación industrial y data-engineering en empresas con HPC interno.
Este proyecto afina
- scientific-python
- performance-benchmarking
- numpy-vectorization