Conteo de palabras 494 veces más rápido con SIMD e hilos
Este artículo detalla el recorrido del autor en la optimización de un programa de conteo de palabras, logrando una notable aceleración de 494 veces. Comenzando con una implementación Python ingenua (89,6 segundos), el autor mejoró progresivamente el rendimiento usando el módulo `re` de CPython (13,7 segundos), un bucle escalar en C (1,205 segundos) y, finalmente, instrucciones SIMD y multithreading (181 milisegundos). Cada paso de optimización se explica, cubriendo el uso de extensiones C, bucles C eficientes y la utilización de CPU multinúcleo. Aunque el multithreading produjo ganancias menores a las esperadas, la versión final alcanzó una velocidad de procesamiento impresionante de 5,52 GiB/s. El autor invita a los lectores a sugerir optimizaciones adicionales.
Leer más