I want to find a fast way to do eigen-decomposition using Numpy/Scipy. I found this post whats the fastest way to find eigenvalues/vectors in python? and followed the advices to rebuild Numpy/Scipy with Intel MKL (in an newly created Python virtual environment).
Then I had a simple performance test on both the old virtual environment with ordinarily built Numpy/Scipy, and the new virtual environment with MKL-built Numpy/Scipy. Specifically I tested numpy.dot and scipy.linalg.eig, hoping the MKL version will be faster.
The results show that MKL-built Numpy is faster than normal Numpy, while MKL-built Scipy is slower than normal Scipy:
Numpy: two (3000 * 3000) matrix dot product
MKL:1s / Normal: 2s
Scipy: eigen-decompose (1000 * 1000) matrix
MKL 1.5s / Normal: 1.5s
Why doesn't MKL speed up Scipy? Is there any other way to speed up Scipy's eigen-decomposition?