我正在建立我的numpy/scipy环境基于blas和lapack或多或少基于这个步骤.
当我完成后,如何检查,我的numpy/scipy函数是否确实使用了之前构建的blas/lapack功能?
TL; DR如何在没有重建的情况下将ATLAS/MKL链接到现有的Numpy.
我用Numpy用大矩阵计算,我发现它非常慢,因为Numpy只使用1个核心进行计算.经过大量的搜索,我发现我的Numpy没有链接到像ATLAS/MKL这样的优化库.这是我的numpy配置:
>>>import numpy as np
>>>np.__config__.show()
blas_info:
libraries = ['blas']
library_dirs = ['/usr/lib']
language = f77
lapack_info:
libraries = ['lapack']
library_dirs = ['/usr/lib']
language = f77
atlas_threads_info:
NOT AVAILABLE
blas_opt_info:
libraries = ['blas']
library_dirs = ['/usr/lib']
language = f77
define_macros = [('NO_ATLAS_INFO', 1)]
atlas_blas_threads_info:
NOT AVAILABLE
openblas_info:
NOT AVAILABLE
lapack_opt_info:
libraries = ['lapack', 'blas']
library_dirs = ['/usr/lib']
language = f77
define_macros = [('NO_ATLAS_INFO', 1)]
atlas_info:
NOT AVAILABLE
lapack_mkl_info:
NOT AVAILABLE
blas_mkl_info:
NOT AVAILABLE
atlas_blas_info:
NOT AVAILABLE
mkl_info: …Run Code Online (Sandbox Code Playgroud) 我正在尝试求解一个由 1 百万 x 1 百万方阵和一个 1 百万解向量组成的方程组。
为此,我使用 np.linalg.solve(matrix,answers) 但需要很长时间。
有办法加快速度吗?
谢谢@Chris,但这并不能回答问题,因为我也尝试过使用 Scipy 模块,但仍然需要很长时间才能解决。我认为我的计算机无法在 RAM 中保存那么多数据
好吧,为了清楚起见,我刚刚发现我试图求解的矩阵的名称是希尔伯特矩阵