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



我一直在尝试使用 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,并且软件在存储器使用率的1.3%(〜10GB)上达到峰值(〜10GB)。监视,在执行的某个时刻和稍后破碎。有人告诉我,RAM的使用没有限制...所以我真的不知道会发生什么...

也许这里有人可以帮助我找到Scipy或解决它的替代方案。

可能仅使用一个节点而出现内存错误?在这种情况下,我该如何在节点上分发工作?

预先感谢。

是正确的,对于这样的大型网络,您需要在单个节点上进行高内存。最简单的解决方案当然是解决方法:

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

(2)使用新的Cytoscape API为您进行扩散:http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.pcbi.1005598(https://github.com/iDekerlab/热水膨胀)

(3)使用pagerank而不是计算热核(不理想,因为我们已经表明扩散倾向于在生物网络上更好地工作)。

希望这会有所帮助!-evan Paull(Tiedie Developer/Lead Woter)

最新更新