Убедитесь, что numpy использует библиотеку MKL на mac pro

Я использую Enthought Canopy/EPD версию python, которая поставляется с numpy, связанным с MKL. В настоящее время я запускаю набор симуляций параллельно (используя PP) на моем рабочем компьютере (Windows 7, Quad Core i5 @3,33 ГГц, 4 ГБ оперативной памяти) и моей домашней рабочей станции (Mac Pro 3.1, Ubuntu 12.04, 2x Quad Core Xeon @2.8 ГГц, 6 ГБ оперативной памяти).

Но когда я сравниваю свои симуляции, они работают намного быстрее на рабочем компьютере (35 секунд на итерацию против 60 на mac pro). Проблема полностью сбалансирована между ядрами (смущающая параллельная проблема), поэтому я подозреваю, что есть проблема с библиотекой MKL на рабочей станции Linux дома. Есть ли способ проверить, что библиотека MKL фактически используется в python. Я прочитал потоки, которые говорят, что вы можете проверить, связан ли с ним python, но он не гарантирует, что он был создан правильно и фактически используется.

Ответ 1

>>> numpy.show_config()

Вы увидите вывод что-то вроде этого, показывая, что MKL действительно связан.

lapack_opt_info:
    libraries = ['mkl_lapack95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'mkl_mc', 'mkl_mc3', 'pthread']
    library_dirs = ['/Users/vagrant/src/master-env/Resources/Python.app/Contents/MacOS/../../../../lib']
    define_macros = [('SCIPY_MKL_H', None)]
    include_dirs = ['/Users/vagrant/src/master-env/Resources/Python.app/Contents/MacOS/../../../../include']
blas_opt_info:
    libraries = ['mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'mkl_mc', 'mkl_mc3', 'pthread']
    library_dirs = ['/Users/vagrant/src/master-env/Resources/Python.app/Contents/MacOS/../../../../lib']
    define_macros = [('SCIPY_MKL_H', None)]
    include_dirs = ['/Users/vagrant/src/master-env/Resources/Python.app/Contents/MacOS/../../../../include']
openblas_info:
NOT AVAILABLE
lapack_mkl_info:
    libraries = ['mkl_lapack95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'mkl_mc', 'mkl_mc3', 'pthread']
    library_dirs = ['/Users/vagrant/src/master-env/Resources/Python.app/Contents/MacOS/../../../../lib']
    define_macros = [('SCIPY_MKL_H', None)]
    include_dirs = ['/Users/vagrant/src/master-env/Resources/Python.app/Contents/MacOS/../../../../include']
blas_mkl_info:
    libraries = ['mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'mkl_mc', 'mkl_mc3', 'pthread']
    library_dirs = ['/Users/vagrant/src/master-env/Resources/Python.app/Contents/MacOS/../../../../lib']
    define_macros = [('SCIPY_MKL_H', None)]
    include_dirs = ['/Users/vagrant/src/master-env/Resources/Python.app/Contents/MacOS/../../../../include']
mkl_info:
    libraries = ['mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'mkl_mc', 'mkl_mc3', 'pthread']
    library_dirs = ['/Users/vagrant/src/master-env/Resources/Python.app/Contents/MacOS/../../../../lib']
    define_macros = [('SCIPY_MKL_H', None)]
    include_dirs = ['/Users/vagrant/src/master-env/Resources/Python.app/Contents/MacOS/../../../../include']