Multiprocessing Pool 수와 코드실행시간.

조회수 32회

파이썬에서 Multiprocessing.Pool 수가 n이라 하면 코드 실행 시간이 대략적으로 1/n이 되는게 맞나요?

  • 그렇게 계산할 수 있는 것이 아닙니다. 사용하는 cpu 의 코어갯수가 중요한 문제이고 만약 4코어인데 4개 멀티프로세스로 수행하면 실행시간이 1/4로 줄어들지는 않습니다. 이론적으로는 그러한데...실제적으로는 2~3배 정도 성능이 나옵니다. 그런데 무작정 멀티프로세스를 사용하면 안되고 io 작업이면 차라리 쓰레드를 사용하는 편이 낫습니다. 혹은 async/await 도 좋구요. 멀티프로세스를 고려할때는 산술연산이 많은 작업...예를 들면 압축, 이미지처리나, 수치해석 같은 cpu를 많이 사용하는 작업들에서나 유리합니다. 질문자가 하려는 db작업은 io 작업이라 보다 가벼운 쓰레드로 해도 코어를 다 사용합니다. 정영훈 2019.12.2 14:54

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.