cm_*_*cm_ 7 python memory-leaks numpy intel-mkl
以下简单的四行代码在我的Python 2.6.6/NumPy 1.7.0/MKL 10.3.6设置中产生内存泄漏:
import numpy as np
t = np.random.rand(10,10)
while True:
t = t / np.trace(t)
Run Code Online (Sandbox Code Playgroud)
每次操作时,使用的内存都会增加10x10矩阵的大小.但是,当我使用NumPy 1.4.1/ATLAS设置时,没有这种行为.
我已经读过关于MKL不一定自动释放内存,所以我猜这就是爆炸的原因.是否有一种简单的方法来修改NumPy(编译之前或之后),这样四线程可以正常工作?
输出np.show_config()
numpy 1.7.0
lapack_opt_info:
libraries = ['mkl_rt', 'pthread']
library_dirs = ['$MKLPATH/lib/intel64']
define_macros = [('SCIPY_MKL_H', None)]
include_dirs = ['$MKLPATH/include']
blas_opt_info:
libraries = ['mkl_rt', 'pthread']
library_dirs = ['$MKLPATH/lib/intel64']
define_macros = [('SCIPY_MKL_H', None)]
include_dirs = ['$MKLPATH/include']
lapack_mkl_info:
libraries = ['mkl_rt', 'pthread']
library_dirs = ['$MKLPATH/lib/intel64']
define_macros = [('SCIPY_MKL_H', None)]
include_dirs = ['$MKLPATH/include']
blas_mkl_info:
libraries = ['mkl_rt', 'pthread']
library_dirs = ['$MKLPATH/lib/intel64']
define_macros = [('SCIPY_MKL_H', None)]
include_dirs = ['$MKLPATH/include']
mkl_info:
libraries = ['mkl_rt', 'pthread']
library_dirs = ['$MKLPATH/lib/intel64']
define_macros = [('SCIPY_MKL_H', None)]
include_dirs = ['$MKLPATH/include']
Run Code Online (Sandbox Code Playgroud)