2009-10-16 2 views
1

이것은 더 스타일에 관한 질문입니다. 다중 코어를 사용하는 데 실제로 도움이되는 CPU 바운드 프로세스의 경우 일반적으로 멀티 프로세싱 모듈을 사용합니까, 아니면 GIL이없는 인터프리터로 스레드를 사용합니까? 나는 다중 처리 라이브러리를 가볍게 사용했지만 CPython 이외에는 아무런 경험이 없다. 나는 선호하는 접근 방식이 무엇인지 그리고 다른 해석기를 사용하는지 궁금합니다.다중 프로세서 컴퓨터에서의 Python : 다중 처리 또는 비 GIL 인터프리터

+0

작업량은 어떻습니까? "스타일"관점 (분명히 * 파이썬 프로그래머에게는 매우 중요 함)에서 많은 파이썬 옹호자가 GIL이 아닌 인터프리터를 선호하지 않는다고 생각합니다. – BobbyShaftoe

답변

3

CPython 2.6에서 multiprocessingthreading (예 : 현재 버전의 자이 썬과 IronPython) 모두 "스타일"인수가 실제로 여기에 표시되지 않습니다. 매우 유사하게 코딩 할 수 있습니다. 방법 (및 스타일 ;-). 그래서, 나는 매우 까다로운 고려 사항을 기반으로 선택할 것입니다. 각 선택과 같은 성능이 무엇입니까? (만약 내가 인 경우 여러 코어의 이점을 얻으려면 CPU 바인딩이 필요합니다. 성능은 입니다. 분명히입니다. (예 : numpy) 또는 CPython 전용 라이브러리 (예 : numpy) 또는 JVM 또는 .NET 전용 라이브러리 등 모든 라이브러리에 심각한 이익을 가져다 사용할 수 있습니까?

1

Parallel Python (www.parallelpython.com) - 제 쿼드 코어 상자의 프로세서간에 작업을 멋지게 나눠서 사용했습니다. 그것은 심지어 클러스터를 지원합니다!

+0

이상적으로 CPU 당 파이썬 프로세스 수를 결정할 수있는 벤치마킹이 필요합니다. 성능 저하없이 처리 할 수 ​​있습니다. 코어 당 3 개의 파이썬 프로세스로 시작해서 위쪽으로 작업 할 것입니다. –

관련 문제