저는 파이썬의 multiprocessing module에 대해 읽었습니다. 나는 아직도 내가 할 수있는 일에 대해 아주 잘 이해하고 있다고 생각하지 않는다.파이썬 : 멀티 코어 프로세싱?
쿼드 코어 프로세서가 있고 1,000,000 개의 정수가있는 목록이 있고 모든 정수의 합이 필요하다고 가정 해 봅시다. 간단히 할 수 있습니다 :
list_sum = sum(my_list)
그러나 이것은 하나의 코어에만 보냅니다.
다중 처리 모듈을 사용하여 배열을 나눌 수 있으며 각 코어가 합계를 구하여 합계를 계산할 수 있도록 값을 반환 할 수 있습니까? 같은
뭔가 : 어떤 도움을 주시면 감사하겠습니다
core1_sum = sum(my_list[0:500000]) #goes to core 1
core2_sum = sum(my_list[500001:1000000]) #goes to core 2
all_core_sum = core1_sum + core2_sum #core 3 does final computation
.
@Martin, http://docs.python.org/library/multiprocessing.html#multiprocessing-programming에 따라이 교착 상태가 발생한다고 생각합니다. 대기열은 모든 버퍼링 된 항목이 "피더"스레드에 의해 기본 파이프로 공급 될 때까지 종료 될 것입니다. "- 교착 상태가 발생하는 예제는 코드와 매우 유사합니다 (시작, 결합, get의 단일 하위 프로세스입니다. 시퀀스)와 하나가 아닌 두 개의 하위 프로세스가 도움이되지 않습니다. 조인을 바꾸고 가져 오거나 조인을 제거하십시오. –
"그것은 나를 위해 일했습니다"아마도 데이터가 단순히 파이프에 맞기 때문입니다. 어떤 경우이든 조인을 제거했습니다. –
Linux에서 이것을 실행하고 있습니까? – Nope