内存不足,无法执行因子分解表达式scipy.sparse.linalg.splu公司

2024-09-30 01:35:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试使用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个CPU、700GB或RAM的群集计算机,根据一个ps监控,在执行和压缩之后的某个时刻,软件的峰值为内存使用量的1.3%(约10GB)。我听说内存的使用没有限制。。。所以我真的不知道会发生什么,软件开发人员也帮不了什么忙。。。在

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

内存错误是否可能是因为只使用了一个节点?在这种情况下,如何跨节点分配工作?在

提前谢谢。在


Tags: inpyhomelibpackageslocallinesite
1条回答
网友
1楼 · 发布于 2024-09-30 01:35:47

是的,对于这样一个非常大的网络,在一个节点上需要高内存。当然,最简单的解决方案是一个变通办法,或者:

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

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

(3)使用PageRank而不是计算热核(这不是理想的,因为我们已经证明扩散在生物网络上更有效)。在

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

相关问题 更多 >

    热门问题