2017-12-09 2 views
1

jupyter 노트북의 python에서 다중 처리를 사용하고 있습니다. 나는 근로자 풀을 사용하여 코드를 병렬화 할 수있다. 나는 메모리 할당 해제 문제에 직면하고있다.Jupyter Notebook에서 파이썬으로 다중 처리 작업 후 RAM을 비우는 방법은 무엇입니까?

import multiprocessing 

def forSources(n): 
    temp_pairings = [] 
    temp_pairings += dfs_edges2(digraph, flights[n[0]], n[1]) 
    print(multiprocessing.current_process().name, len(temp_pairings)) 
    return (temp_pairings) 

for depth in range(0, 2): 
    pool = multiprocessing.Pool() 
    result = pool.map(forSources, [[i, depth] for i in range(0, 3000)]) 
    for pairings in result: 
     final_result += pairings 
    if len(final_result) > 5000: 
     break 
    pool.terminate() 
    pool.join() 

final_result를 추출 후, 나는 즉시 프로세스가 종료됩니다로 RAM을 확보하고자합니다. 예 :이 실행에는 약 3.5GB의 RAM이 필요하며 실행이 완료된 후 시스템 모니터에는 추가 3.5GB가 표시됩니다. 나는 모든 변수를 삭제하려고 시도했다. 심지어는 jupyter 노트북을 닫아도 문제가 해결되지 않는다.

답변

-1

생성 된 모든 프로세스의 프로세스 ID를 저장하고 완료 후 모든 프로세스를 종료하십시오.

관련 문제