나는 최근에 파이썬이 한 번에 하나의 코어 만 사용한다는 것을 알았습니다. 모든 리소스 (두 번째 코어)를 사용하는 특별한 빌드 나 명령이 있습니까?
나는 최근에 파이썬이 한 번에 하나의 코어 만 사용한다는 것을 알았습니다. 모든 리소스 (두 번째 코어)를 사용하는 특별한 빌드 나 명령이 있습니까?
답변:
하위 프로세스를 사용하여 Python 스크립트 내에서 여러 코어를 활용하여 여러 작업을 병렬로 실행할 수 있습니다. 그러나 단일 작업을 여러 코어로 분할 할 수는 없습니다. 이 FAQ의 자세한 설명을 참조하십시오. ArcGIS 10은 멀티 코어 프로세서 및 / 또는 64 비트 운영 체제를 지원합니까?
숙련 된 Python 사용자 인 경우 Dev Summit 2014에서이 사용자 프리젠 테이션에 설명 된 접근 방식 ( Python Multiprocessing 및 Critical Path Methodology를 사용한 Parallel Geoprocessing)에 관심이있을 수 있지만 여전히 여러 코어를 사용할 수는 없습니다. 같은 작업.
그렇지 않으면 올해 말 멀티 스레딩의 성능을 테스트하기 위해 ArcGIS Pro (완전 64 비트 애플리케이션)가 출시 될 때까지 기다려야합니다.
일부 언급했듯이 ArcGIS Desktop에서는 멀티 프로세싱이 지원되지 않습니다. 데스크탑 환경에서 GIS 데이터 세트 처리에 관해 이야기 할 때, 큰 워크 플로를 여러 개의 코어를로드하는 동시에 계산되는 작은 청크로 분할 할 수 있는지 알아 내려고합니다. GP 도구 동작이 크게 다를 수 있으므로 거의 모든 경우를 개별적으로 조사해야합니다.
간단한 수학 문제를 해결할 때해야 할 일이 더 빠르다고 생각하십시오. 1에서 100까지의 모든 숫자를 계산하는 가장 빠른 방법은 무엇입니까?
1) 결과를 하나씩 합산하고 합계를 서로 점진적으로 추가하여 (1 + 2 = 3, 3 + 3 = 6, 6 + 4 = 10 등). 하나의 핵심이이 작업을 수행하고 있습니다.
2) 값을 미리 개별 청크로 나누고 그 값을 먼저 합산하십시오 (1-30, 31-60 및 60-100). 3 개의 코어가 동시에 작동합니다 (마지막 단계는 3 개의 값을 합산하는 것입니다).
다른 GP 도구는 big-O 표기법 이 다른 여러 알고리즘을 구현하기 때문에 다중 프로세스 제출 측면에서 다르게 접근해야합니다.
좋은 시작점 은 파이썬에서 멀티 프로세싱 라이브러리가 어떻게 작동 하는지 배우는 것 입니다. 나는 꽤 많이 사용합니다.
또한 64 비트 Python을 사용하여 명령 줄에서 Python 스크립트를 실행하면 일반적으로 실행 속도가 빠릅니다 (IDE의 실행과 비교하지만 컴퓨터에서는 그렇지 않을 수 있음). 백그라운드 지오 프로세싱은 10.1에 도입되었지만 64 비트 Python으로 Python 스크립트를 실행하여 성능에 미치는 영향을 확인하십시오.
다른 답변으로 명명 된 ArcGIS Pro는 베타 5 로 다운로드 할 수 있습니다 ( 버그를 제출하고 ArcGIS Online for Organizations 계정에 액세스 하려면 Esri 베타 커뮤니티 의 참여자 여야 함을 명심하십시오) Pro를 실행하십시오).
간단한 대답은 '아니요'입니다. 더 나은 대답은 그것이 달려 있다는 것입니다.
CPython (가장 일반적으로 사용되는 파이썬)의 구현으로 인해 파이썬이 실제로 멀티 스레딩을 이용할 수 없다고 가정하는 것이 안전합니다. 보다:
http://en.wikipedia.org/wiki/Global_Interpreter_Lock
https://wiki.python.org/moin/GlobalInterpreterLock
IO는 GIL에 영향을받지 않습니다.
이제 이것에 대해 작업 할 수 있습니다. 다른 사람들이 지적했듯이 하위 프로세스를 생성 할 수 있으며 다중 처리 라이브러리가 도움이 될 수 있습니다.