Comptage de mots 494 fois plus rapide avec SIMD et threads
Cet article détaille le parcours de l'auteur dans l'optimisation d'un programme de comptage de mots, réalisant une accélération remarquable de 494 fois. En commençant par une implémentation Python naïve (89,6 secondes), l'auteur a progressivement amélioré les performances en utilisant le module `re` de CPython (13,7 secondes), une boucle scalaire en C (1,205 secondes), et enfin, des instructions SIMD et du multithreading (181 millisecondes). Chaque étape d'optimisation est expliquée, couvrant l'utilisation d'extensions C, des boucles C efficaces et l'utilisation de CPU multinœuds. Bien que le multithreading ait produit des gains moins importants que prévu, la version finale a atteint une vitesse de traitement impressionnante de 5,52 GiB/s. L'auteur invite les lecteurs à suggérer des optimisations supplémentaires.