2015-09-07 Numpy version MKL

Sur la page Unofficial Windows Binaries for Python Extension Packages, on distingue deux versions de Numpy : MKL (Math Kernel Library) et unoptimized. La version MKL est la plus rapide comme le montre l’article Numpy/Scipy with Intel MKL. Elle est compilée avec un jeu d’instructions processeur étendu.

Les instructions des processeurs sont très simples et s’exécutent en quelques nanosecondes : faire une addition, aller chercher une valeur dans la mémoire pour la stocker dans un registre du processeur… La version unoptimized de numpy n’utilisent que ce jeu d’instructions basiques.

Le calcul matriciel requiert de nombreux opérations sur des vecteurs, addition terme à terme, multiplication… Comme elles sont très fréquentes et que tout le monde en a besoin, les processeurs ont développé des instructions complexes utilisant le parallèlisme : Parallelism in the Intel Math Kernel Library. Ces instructions portent le nom de SIMD (Single instruction, multiple data). Intel MKL désigne une librairie mathématique qui implémente des opérations vectorielles avec ces instructions SIMD. Voir également OpenMP.