簡體   English   中英

沒有足夠的內存來執行分解 expm scipy.sparse.linalg.slu

[英]Not enough memory to perform factorization 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

最有趣的是,根據ps監控,我正在使用具有 64 個 CPU 和 700GB 或 RAM 的集群計算機,並且軟件在內存使用量的 1.3%(~10GB)時達到峰值,在某個時刻之后執行和粉碎。 有人告訴我 RAM 的使用沒有限制......所以我真的不知道會發生什么......

也許這里有人可以幫助我找到 scipy 的替代方案或解決它。

內存錯誤是否可能是因為僅使用了一個節點? 在這種情況下,我如何在節點之間分配工作?

提前致謝。

沒錯,對於像這樣的非常大的網絡,您將需要單個節點上的高內存。 最簡單的解決方案當然是一種解決方法,要么:

(1) 有什么辦法可以在捕獲相關生物學的同時減小輸入網絡的大小? 也許只是尋找距離輸入節點 2 步遠的所有節點?

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

(3) 使用 PageRank 而不是計算熱核(不理想,因為我們已經證明 Diffusion 在生物網絡上效果更好)。

希望這可以幫助! -Evan Paull(TieDIE 開發人員/主要作者)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM