为什么numpy在更强大的计算机上表现最差?

时间:2016-10-02 20:24:30

标签: python numpy

我有2台电脑:

  1. 2012戴尔Latitude,采用Intel i5处理器,4 gb Ram。
  2. 2016款MacBook Pro,配备(上一代)Intel i5处理器8 gb内存。
  3. 然后,我还有Python程序,它广泛使用numpy的库,可以在两台计算机上运行。这个程序适用于非常大的浮动张量(比如形状500 X 500 X 500

    我担心以下事实:在所有观点下,即使我期待相反的行为,成为最强大的PC,这个代码的执行速度明显快于2012戴尔然后2016年的mac。

    这种行为可能就是这种情况? 可能重要的是我使用了预编译的numpy安装戴尔,而我只是使用

    pip install numpy
    

    对于mac?

    修改

    这可能是由于两台计算机上安装了不同的Blas / Lapack库。如果我在Mac上运行,我运行np.show_config() 我获得了

    lapack_opt_info:
        extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
        extra_compile_args = ['-msse3']
        define_macros = [('NO_ATLAS_INFO', 3), ('HAVE_CBLAS', None)]
    openblas_lapack_info:
      NOT AVAILABLE
    atlas_3_10_blas_threads_info:
      NOT AVAILABLE
    atlas_threads_info:
      NOT AVAILABLE
    atlas_3_10_threads_info:
      NOT AVAILABLE
    atlas_blas_info:
      NOT AVAILABLE
    atlas_3_10_blas_info:
      NOT AVAILABLE
    atlas_blas_threads_info:
      NOT AVAILABLE
    openblas_info:
      NOT AVAILABLE
    blas_mkl_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), ('HAVE_CBLAS', None)]
    atlas_info:
      NOT AVAILABLE
    atlas_3_10_info:
      NOT AVAILABLE
    lapack_mkl_info:
      NOT AVAILABLE
    

    但我不知道如何解释这个......

1 个答案:

答案 0 :(得分:3)

有效问题imo。如果我不得不猜测,最不可能的是:

  1. 2012系统上的numpy使用更快的BLAS / LAPACK库。您可以在两个系统上运行numpy.show_config()来检查使用的是哪个。

  2. 2012系统中的处理器实际上可能比2016系统中的处理器更快。您的macbook最有可能是i5-5287U,具有2.7 ghz基本时钟和3.1 ghz增强。在2012年,已经有i5笔记本电脑发送器,基本时钟为2.9 ghz,增压为3.6 ghz。

  3. 由于各种原因,2016年系统的运行速度可能比平时慢。也许它过热或者有膨胀软件等。