没有足够的内存来执行分解expm scipy.sparse.linalg.splu

问题描述 投票:0回答:1

我一直在尝试使用TieDIE。简而言之,该软件包含一种算法,当您传递一些查询节点和网络时,该算法可以找到重要的子网。使用较小的网络它工作得很好,但我感兴趣的网络非常大,它有21988个节点和360474边缘。 TieDIE使用scipy生成初始网络内核(尽管Matlab也是生成此内核的选项,我没有许可证)。在生成此内核期间,我收到以下错误:

Not enough memory to perform factorization. Traceback (most recent call last):   
File "Trials.py", 
line 44, in <module> diffuser = SciPYKernel(network_path)   
File "lib/kernel_scipy.py", 
line 83, in __init__ self.kernel = expm(time_T*L)   
File "/home/agmoreno/TieDIE-trials/TieDIE/local/lib/python2.7/site-packages/scipy/sparse/linalg/matfuncs.py",
line 602, in expm return _expm(A, use_exact_onenorm='auto')   
File "/home/agmoreno/TieDIE-trials/TieDIE/local/lib/python2.7/site-packages/scipy/sparse/linalg/matfuncs.py",
line 665, in _expm X = _solve_P_Q(U, V, structure=structure)   
File "/home/agmoreno/TieDIE-trials/TieDIE/local/lib/python2.7/site-packages/scipy/sparse/linalg/matfuncs.py",
line 699, in _solve_P_Q return spsolve(Q, P)   
File "/home/agmoreno/TieDIE-trials/TieDIE/local/lib/python2.7/site-packages/scipy/sparse/linalg/dsolve/linsolve.py",
line 198, in spsolve Afactsolve = factorized(A)   
File "/home/agmoreno/TieDIE-trials/TieDIE/local/lib/python2.7/site-packages/scipy/sparse/linalg/dsolve/linsolve.py",
line 440, in factorized return splu(A).solve   
File "/home/agmoreno/TieDIE-trials/TieDIE/local/lib/python2.7/site-packages/scipy/sparse/linalg/dsolve/linsolve.py", 
line 309, in splu ilu=False, options=_options) 
MemoryError

最有趣的是,我使用的是具有64 cpus,700GB或RAM的集群计算机,软件峰值占内存使用量的1.3%(~10GB),根据ps监控,在某个时刻执行和破碎以后。我被告知RAM的使用没有限制......所以我真的不知道会发生什么,软件开发人员没有太多帮助......

也许这里有人可以帮我找到scipy或解决它的替代品。

由于只使用了一个节点,是否可能出现内存错误?在这种情况下,我如何在节点之间分配工作?

提前致谢。

python memory scipy sparse-matrix
1个回答
0
投票

这是正确的,对于像这样的非常大的网络,你需要在单个节点上拥有高内存。最简单的解决方案当然是一种解决方法,或者:

(1)在捕获相关生物学的同时,是否有任何方法可以减小输入网络的大小?也许只是寻找离输入节点2步的所有节点?

(2)使用新的Cytoscape API为您做扩散:http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005598https://github.com/idekerlab/heat-diffusion

(3)使用PageRank而不是计算热核(不理想,因为我们已经证明Diffusion往往在生物网络上更好地工作)。

希望这可以帮助! -Evan Paull(TieDIE开发人员/主要作者)

© www.soinside.com 2019 - 2024. All rights reserved.