Python numpy.show_config显示“ATLAS不可用”,但np.dot似乎使用多核

Python numpy.show_config显示“ATLAS不可用”,但np.dot似乎使用多核,python,multithreading,numpy,Python,Multithreading,Numpy,我在OSX上使用水蟒。我希望允许numpy使用多核 我的numpy.show_配置似乎显示atlas还不可用,或者使用blas和lapack???对不起,我是这里的新手 atlas_threads_info: NOT AVAILABLE blas_opt_info: extra_link_args = ['-Wl,-framework', '-Wl,Accelerate'] extra_compile_args = ['-msse3', '-I/System/Library/

我在OSX上使用水蟒。我希望允许numpy使用多核

我的numpy.show_配置似乎显示atlas还不可用,或者使用blas和lapack???对不起,我是这里的新手

atlas_threads_info:
  NOT AVAILABLE
blas_opt_info:
    extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
    extra_compile_args = ['-msse3', '-I/System/Library/Frameworks/vecLib.framework/Headers']
    define_macros = [('NO_ATLAS_INFO', 3)]
atlas_blas_threads_info:
  NOT AVAILABLE
openblas_info:
  NOT AVAILABLE
lapack_opt_info:
    extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
    extra_compile_args = ['-msse3']
    define_macros = [('NO_ATLAS_INFO', 3)]
atlas_info:
  NOT AVAILABLE
lapack_mkl_info:
  NOT AVAILABLE
blas_mkl_info:
  NOT AVAILABLE
atlas_blas_info:
  NOT AVAILABLE
mkl_info:
  NOT AVAILABLE
但当numpy.matrix.dot函数运行时,python进程会使用几个核心:

import numpy as np
a = np.array([])
for i in range(20000):
    a = np.append(a,i/100.0)
m = np.matrix([a])
for _ in range(12):
    m = np.vstack([m,m])
m.dot(m.T) # => product of large matrix
活动监视器告诉我,在执行上述代码期间,大约使用了七个内核。


我对发生的事感到困惑。。。?我想知道至少numpy是以多线程方式运行的。

输出告诉您,它正在使用苹果在OSX上提供的BLAS/LAPACK库。您并不特别需要OSX上的Atlas或Openblas,Accelerate是多线程的,在实践中可能与其他产品一样好