.. blogpost:: :title: Numpy version MKL :keywords: numpy, MKL, Intel, SIMD, Math Kernel Library, OpenMP :date: 2015-09-07 :categories: modules Sur la page `Archived: 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 `_.