2.5 de Python Science and Technology Computation Distribution Anaconda a été publié. Selon DEVELOPER BLOG, MKL (Intel Math Kernel), qui était auparavant fourni en version payante, Library) semble également être disponible dans la version gratuite.
J'ai essayé de voir à quelle vitesse c'était. Préparez la version OpenBLAS [^ 1] et la version MKL docker jusqu'à présent, et vérifiez avec la plus petite de Digital Ocean. Vu.
[^ 1]: "conda install nomkl" sera la version OpenBLAS.
J'ai chronométré le calcul de la matrice inverse d'une matrice aléatoire de 2000 x 2000.
$ docker run -it --rm tsutomu7/scientific-python python -m timeit -c \
'import numpy as np; np.linalg.inv(np.random.rand(2000, 2000))'
10 loops, best of 3: 2.61 sec per loop
$ docker run -it --rm tsutomu7/scientific-python:mkl python -m timeit -c \
'import numpy as np; np.linalg.inv(np.random.rand(2000, 2000))'
10 loops, best of 3: 1.61 sec per loop
Cela semble être environ 40% plus rapide.
À propos, 4 cœurs peuvent être exécutés en parallèle par défaut. Il semble qu'il ne puisse pas être réglé au-delà de 4 cœurs.
python
import mkl
mkl.get_max_threads()
>>>
4
mkl.set_num_threads(1)
mkl.get_max_threads()
>>>
1
mkl.set_num_threads(8)
mkl.get_max_threads()
>>>
4
c'est tout