私はTieDIEを使用しようとしています。つまり、このソフトウェアには、クエリノードとネットワークを渡すときに重要なサブネットワークを見つけるアルゴリズムが含まれています。小さなネットワークでは問題なく動作しますが、私が興味を持っているネットワークはかなり大きく、ノード21988と360474エッジがあります。 TieDIEは、scipyを使用して初期ネットワークカーネルを生成します(ただし、Matlabはライセンスを所有していないこのカーネルを生成するオプションです)。このカーネルの生成中に、私は次のエラーを取得する:分解を実行するメモリが足りません。expipy.sparse.linalg.splu
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
これについての最も興味深いのは、私は1.3で64個のCPU、および700ギガバイトまたはRAMとソフトウェアのピークを持つクラスタコンピュータを使用していますということです何psの監視によると、実行のある瞬間にはメモリ使用量の%(〜10GB)、後で破棄されます。私はRAMの使用に制限がないと言われています...だから、実際に何が起こっているのか分からず、ソフトウェア開発者はあまり助けにはなっていません...
多分誰かが私に助けを借りて解決するか、それを解決するのを助けてください。
1つのノードしか使用されていないためにメモリエラーが発生する可能性はありますか?この場合、どのようにしてノード間で作業を配布できますか?
ありがとうございます。
クラスタを使用しているということは、SciPyがどのようにクラスタ全体で作業を配布するかを知っているわけではありません。このことはおそらく1つのノードで実行されています。 – user2357112
私は、監視では、%cpuの使用率が常に99%に近くなっていたので(それは余分な百が別のノードであるため)、ノードが1つしか使用されていないと考えました。この場合、どのようにしてノード間で作業を配布できますか? –
これを配布していますか?それは非常に複雑です。疎の場合でもさらに!私が知っている唯一のライブラリは、[libelemental](http://libelemental.org/)のようなものをビルドします。これにはPythonラッパーも含まれています。 – sascha