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
무엇 이것에 대해 가장 흥미로운 일이다 나는 64 개 CPU가 클러스터 컴퓨터를 사용하고, 7백기가바이트 또는 RAM 및 소프트웨어 피크 1.3에서하고 있다는 것입니다 ps 모니터링에 따라 메모리 사용량의 10 % (~ 10GB), 나중에 실행 및 분쇄 할 수 있습니다. 나는 RAM의 사용에 제한이 없다는 말을 들었다. 그래서 나는 정말로 일어날 수있는 일에 대해 아무런 단서가 없다. 소프트웨어 개발자는 많은 도움이되지 않는다. ...
아마 누군가는 여기있다. 그것을 대신하거나 해결할 수있는 대안을 찾도록 도와주세요.
하나의 노드 만 사용 중이기 때문에 메모리 오류가 발생할 수 있습니까? 이 경우 노드를 통해 어떻게 작업을 배포 할 수 있습니까?
미리 감사드립니다.
클러스터를 사용한다고해서 SciPy가 클러스터에서 작업을 배포하는 방법을 알 수있는 것은 아닙니다. 이 것은 아마도 하나의 노드에서 실행 중일 것입니다. – user2357112
또한 모니터링에서 % cpu 사용이 항상 99 %에 가까웠으므로 하나의 노드 만 사용하고 있다고 생각합니다. (각 추가 백은 사용중인 다른 노드입니다.) 그러나 이것이 제한적인 문제가 아니라고 생각했습니다. 이 경우 노드를 통해 어떻게 작업을 배포 할 수 있습니까? –
배포 하시겠습니까? 그것은 매우 복잡합니다. 희소 한 경우조차에서! 내가 아는 라이브러리는 파이썬 래퍼가있는 [libelemental] (http://libelemental.org/)과 같은 것들입니다. – sascha