代码之家  ›  专栏  ›  技术社区  ›  tgbrooks

努比。利纳格。inv(M)在一个系统上比另一个系统慢得多

  •  1
  • tgbrooks  · 技术社区  · 4 年前

    在我的笔记本电脑上,以下代码只需要3毫秒。在我的集群计算服务器上,大约需要10秒的时间才能使速度降低1000倍以上。为什么?我该怎么修呢?

    import numpy
    mat = numpy.random.random((150,150))
    %timeit numpy.linalg.inv(mat)
    

    我查过了 numpy.show_config() 并得到以下结果。在快速笔记本电脑上:

    blas_mkl_info:
      NOT AVAILABLE
    blis_info:
      NOT AVAILABLE
    openblas_info:
        library_dirs = ['D:\\a\\1\\s\\numpy\\build\\openblas_info']
        libraries = ['openblas_info']
        language = f77
        define_macros = [('HAVE_CBLAS', None)]
    blas_opt_info:
        library_dirs = ['D:\\a\\1\\s\\numpy\\build\\openblas_info']
        libraries = ['openblas_info']
        language = f77
        define_macros = [('HAVE_CBLAS', None)]
    lapack_mkl_info:
      NOT AVAILABLE
    openblas_lapack_info:
        library_dirs = ['D:\\a\\1\\s\\numpy\\build\\openblas_lapack_info']
        libraries = ['openblas_lapack_info']
        language = f77
        define_macros = [('HAVE_CBLAS', None)]
    lapack_opt_info:
        library_dirs = ['D:\\a\\1\\s\\numpy\\build\\openblas_lapack_info']
        libraries = ['openblas_lapack_info']
        language = f77
        define_macros = [('HAVE_CBLAS', None)]
    

    在慢速服务器上:

    blas_mkl_info:
      NOT AVAILABLE
    blis_info:
      NOT AVAILABLE
    openblas_info:
        libraries = ['openblas', 'openblas']
        library_dirs = ['/usr/local/lib']
        language = c
        define_macros = [('HAVE_CBLAS', None)]
    blas_opt_info:
        libraries = ['openblas', 'openblas']
        library_dirs = ['/usr/local/lib']
        language = c
        define_macros = [('HAVE_CBLAS', None)]
    lapack_mkl_info:
      NOT AVAILABLE
    openblas_lapack_info:
        libraries = ['openblas', 'openblas']
        library_dirs = ['/usr/local/lib']
        language = c
        define_macros = [('HAVE_CBLAS', None)]
    lapack_opt_info:
        libraries = ['openblas', 'openblas']
        library_dirs = ['/usr/local/lib']
        language = c
        define_macros = [('HAVE_CBLAS', None)]
    

    我真的不知道如何阅读这些,因为它没有记录在案,但除了 language 背景我尝试改用Fortran有序数组,但没有产生重大影响。

    编辑:跑步 import numpy.distutils.system_info as sysinfo 和 sysinfo.get_info('openblas') 给出以下内容。在快速笔记本电脑上:

    Could not locate executable g77
    Could not locate executable f77
    Could not locate executable ifort
    Could not locate executable ifl
    Could not locate executable f90
    Could not locate executable DF
    Could not locate executable efl
    Could not locate executable gfortran
    Could not locate executable f95
    Could not locate executable g95
    Could not locate executable efort
    Could not locate executable efc
    Could not locate executable flang
    don't know how to compile Fortran code on platform 'nt'
    

    在慢速服务器上:

    {'libraries': ['openblas', 'openblas'],
     'library_dirs': ['/usr/lib64'],
     'language': 'c',
     'define_macros': [('HAVE_CBLAS', None)]}
    
    0 回复  |  直到 4 年前