QGIS에서 멀티 스레딩 처리를 사용 하시겠습니까?


11

현재 QGIS 2.2에 존재한다고 말하는 여러 개의 링크를 찾았지만 전체 용량에 대해 하나의 코어 만 사용하고있는 것으로 보입니다.

우분투 14.04에서 실행 중입니다.

현재 프로세스는 많은 양의 규칙적인 포인트를 생성하고 있습니다. 프로세스가 하나 이상의 코어를 사용하도록하려면 어떻게해야합니까?

CPU 사용량


1
나는 이것이 다음 릴리스 인 2.4에 있다고 생각한다. 그러나 시도해보고 싶다면 야간 빌드를 다운로드하십시오.
Matt

GIL로 인해 "멀티 스레딩"으로 인해 동시 코어가 실행되지는 않을 것입니다. stackoverflow.com/questions/1294382/…를 확인하십시오 . 원하는 것은 "멀티 프로세싱"입니다.
Mr Purple

답변:


6

멀티 스레드 렌더링 QGIS 2.2는 없으며 QGIS 2.4에서 사용할 수있는 기능입니다.

테스트를 위해 QGIS Master (야간)를 사용해 볼 수 있으며, QGIS 2.4는 2014 년 6 월 20 일에 출시 될 예정입니다 .


혹시, 귀하의 질문을 읽고 의견에서 멀티 스레드 처리는 QGIS 개발자 수준 또는 Python Plugin 기고자 수준에서 발생하는 것처럼 보입니다.

다중 스레드 처리를하는 것보다 QGIS에 내장 된 메뉴에서 사용중인 특정 QGIS 도구가있는 경우 QGIS 개발자 또는 도구 루트 (GDAL, SAGA, Orfeo, GRASS, R 개발자 등 ...).

특정 플러그인이 Python을 중심으로 코딩 된 것보다 많으면 해당 플러그인의 기여자 또는 관리자가 성능 향상을 위해 multiprocessing또는 threading모듈을 포함시킬 수 있는지 확인할 수 있습니다 .

어느 쪽이든, 기능 요청을 제출하거나 이미 존재하는지 확인하는 것이 일반적으로 시작하는 가장 좋은 방법입니다. 누군가가 이미 개선 사항을 다루고 있는지 또는 개선을 시작하는 데 필요한 리소스를 알려줍니다.


그것은 부끄러운 일입니다 ... 과거에 소스를 구축하는 데 문제가있었습니다. nightlies에 ppa를 추가하고 apt와 동일하게 설치하면 최신 야간을 제공합니까? 안정성에 대한 아이디어가 있습니까?
jpmaniac87

@ jpmaniac87 우분투를 오랫동안 사용하지 않았으며 아치 리눅스에서 GIS 작업을 수행하므로 소스에서 모든 것을 컴파일합니다. 그래서 우분투 PPA가 어떻게되는지, QGIS (마스터)와 QGIS (안정적)를 동시에 설치할 수 있는지 모르겠습니다.
SaultDon 2016 년

@ jpmaniac87 QGIS 버전이 Ubuntu에 패키징되는 방법을 고려할 때 가능하지 않을 수도 있는 또 다른 질문 으로이 답변에서 보입니다 . 하나 또는 다른 것 같습니다.
SaultDon 2016 년

PPA가 작동합니다. 방금 안정적인 회선을 주석 처리하고 야간에 설치했습니다. 빠르다! 그러나 ... 문자 그대로 렌더링하기 위해 여러 스레드 만 사용합니다 ... 더 많은 플러그인 프로세스를 원했습니다. 플러그인 작성자가 코드에서 멀티 스레드 처리를 허용해야한다는 의미입니까?
jpmaniac87

1
@ jpmaniac87 참으로 플러그인은 파이썬에 내장되어 있기 때문에, 저기있다 multiprocessing또는 threading ( threading일반적으로 사용 queue) 가 구체적으로 자신의 스크립트에 추가해야 할 것이라고 파이썬 모듈을.
SaultDon

3

당신이 무엇을하는지에 달려 있습니다. 처리가 새로운 작업 관리자 프레임 워크로 이식되면 알고리즘은 병렬로 (가능한 경우) 실행될 수 있습니다. 예를 들어 한 레이어의 버퍼는 다른 레이어에서 변형이 발생하는 동안 실행될 수 있습니다. 단일 알고리즘 (예 : 다중 스레드를 사용하는 버퍼링 기능) 에서 병렬화 한 후에 는이를 처리 할 계획이 없습니다.

출처 : http://osgeo-org.1560.x6.nabble.com/Will-Processing-in-QGIS-3-support-parallelization-td5301809.html


기존 답변 : 2015 년 Google Summer of Code 동안 QGIS Processing을위한 멀티 스레딩 지원 이 개발되었습니다. 이 코드는 현재 검토 중이며 2016 년 개발자 버전으로 제공 될 예정입니다. (출처 : http://boundlessgeo.com/2015/12/latest-developments-in-qgis-processing/ )

... 불행히도이 솔루션을 병합 할 수 없습니다.


이 문제에 대한 모든 업데이트 @underdark?
Ricardo Barros Lourenço

병렬화는 여전히 대부분의 응용 프로그램에서 어렵습니다. PostGIS / postgres와 같은 데이터베이스 인프라를 사용하면 쿼리를보다 통합적으로 관리하고 더 나은 멀티 스레딩 기능을 사용할 수 있습니다.
CrystallineEntity

2

일부 스레딩이 QGIS 핵심 기능에 통합되고 있지만 (예 : SaultDons 답변에 설명 된대로 렌더링) 많은 기능이나 알고리즘이 개발에 따라 스레딩을 통합하거나 포함하지 않을 수 있습니다.

플러그인 / 스크립트에 스레딩을 포함시키려는 pyQGIS 플러그인 작성자 (아마도 OP 포함)의 경우 snorfalorpagus 블로그 에서 일부 도움말을 사용할 수 있기를 바랍니다. 더 많은 개발자들이 스레딩을 사용할 것입니다.

스톱 갭으로 프로세스를 스크립팅하고 여기 에서 알렉시스 답변에 설명 된 것처럼 비동기 쉘 스크립트를 호출하여 빈약 한 병렬 프로세스 체계를 사용할 수 있습니다

다른 사람이 QGIS 작업을 병렬화하는 데 유용한 자료를 가지고 있다면 자유롭게 편집 하여이 답변에 추가하십시오 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.