[파이썬] multiprocessing jupyter에서 안되면 .py로 돌려라

multiprocessing Pool, Process, Queue 기본 설명: https://m.blog.naver.com/townpharm/220951524843

Pool

def f(x):
    print("값", x, "에 대한 작업 Pid = ",os.getpid())
    time.sleep(1)
    return x*x

p = Pool(n_process)
...
p.map(f, range(0, 10))

입력값을 process들을 건너건너 분배하여 함수 실행을 병렬화하는 편리한 수단을 제공한다 - Python document

Process

procs = []

for n in range(0, 10):
	proc = Process(target = f,args = (n, ))
    procs.append(proc)
    proc.start()
   
for proc in procs:
	proc.join()

Pool과 다르게 각각 다른 프로세스를 할당해주는 느낌?


실제 이슈는 upyter에서 왜 Queue()에 할당이 안되고 Pool에서도 자꾸 error가 뜰까..했는데

https://github.com/ipython/ipython/issues/10894

이 글에서 interactive interpreter에서 안 된다고 한 거보고 걍 python file(.py)로 만들어서 terminal에서 돌리니 해결됨

좋은 웹페이지 즐겨찾기