2010-12-23 2 views

답변

12

여러 코어에 대해 명시 적으로 프로그램해야합니다. 파이썬의 많은 병렬 처리 솔루션에 대해서는 this page의 Symmetric Multiprocessing 옵션을 참조하십시오. Parallel Python은 옵션을 비교하는 데 신경 쓸 수 없다면 좋은 선택입니다. 예제는 here입니다.

일부 문제는 여러 코어를 활용할 수 없습니다. 세 친구의 도움을 받아 계단을 빨리 달릴 수있는 방법에 대해 생각해보십시오. 그런 일은 없을 것이다!

4

문제의 일부가 병렬로 실행할 수 있다면, 당신은 아직 아무도 CPython과의 GIL (글로벌 통역 잠금)를 언급하지 이유가 궁금 multiprocessing module

4

으로 보일 것입니다. 이것은 기본적으로 하나의 파이썬 인터프리터 안에있는 여러 스레드가 다중 코어의 힘을 사용할 수 없다는 것을 의미합니다. 왜냐하면 많은 연산이 스레드로부터 안전하기 위해서 전역 잠금으로 보호되기 때문입니다. 이는 CPU에 묶여있는 소량의 응용 프로그램에만 적용됩니다. 더 자세한 정보는 "GIL"이라는 용어를 검색하기 만하면 이미 많은 질문이 있습니다 (예 : that one).

이 답변은 물론 실제로 여러 스레드를 사용 중이라고 가정합니다. 그렇지 않으면 여러 코어를 사용할 수 없습니다 (multiprocessing 다른 가능성이 있음).