Czy podstawowe funkcje QGIS będą wykorzystywać wielowątkowość?


10

Po przeczytaniu Włączanie przetwarzania wielowątkowego w QGIS? , Zastanawiałem się, czy QGIS 2.6 uwzględni to podczas uruchamiania różnych procesów. Sprawdziłem online i mogłem tylko stwierdzić, że rendering wielowątkowy został wprowadzony do QGIS 2.4 (zakładam, że będzie ponownie dostępny w wersji 2.6). Teraz mapy można bardzo szybko przerysować, szczególnie w przypadku dużych zestawów danych.

Czytałem, że dość trudno jest włączyć wielowątkowość do podstawowej funkcjonalności i że użytkownikom zaleca się manipulowanie kodem Python, aby to osiągnąć, na przykład w równoległych operacjach GIS w PyQGIS? .

Sprawdziłem również żądanie funkcji, ale zostało zamknięte przez 9 miesięcy przez Tima Suttona, a ostatni komentarz to:

„Zamykam to - Martin Dobias ma implementację w oddziale, który zostanie scalony po QGIS 2.2”

Czy niektóre funkcje w QGIS 2.6 będą wykorzystywać wielowątkowość (czy znowu będzie koncentrować się na renderowaniu), a jeśli nie, czy zmieni się to w QGIS 3.0?


Wielowątkowość nie jest szczególnie odpowiednia dla większości zadań GIS, które są z reguły zorientowane na strumień, proste i związane z I / O. Trudność koalescencji wyników zwykle nie jest warta wysiłku, aby ustawić je w kolejce niezależnie (od razu wykonując proste zadanie). Definicja „wykorzystywania” jest zatem przedmiotem poważnej debaty.
Vince

@Vince - Dzięki, rozumiem, że wielowątkowość nie jest najwyższym priorytetem w wielu przypadkach użycia. Ponieważ jednak pewne prace nad tym osiągnięciem zostały już wykonane, zastanawiałem się, czy wsparcie dla tego (co może być lepszym terminem niż „exploit”) byłoby obecne w nowej wersji QGIS =)
Joseph

1
@PolyGeo - Dzięki, sprawiedliwy punkt i taki, który jest całkiem odpowiedni dla tego formatu Q / A. Zgadzam się :)
Joseph

Odpowiedzi:


3

Myślę, że odpowiedź na QGIS 3.0 można znaleźć w ostatniej rozmowie opublikowanej w Nabble :

Czy przetwarzanie w QGIS 3 będzie wspierać równoległość?

Powołując się na Nyall Dawson:

Jeśli masz do czynienia z równoległością w ramach jednego algorytmu (np. Buforowanie funkcji za pomocą wielu wątków), to nie jestem świadomy żadnych planów, aby sobie z tym poradzić.


Niezłe znalezisko! Chociaż jestem trochę zdezorientowany cytatem, który podąża za tym, co zacytowałeś: „Ładny i (teoretycznie) łatwy sposób na uzyskanie algorytmów wielowątkowych, i byłoby łatwo dostosować do tego wiele istniejących algorytmów (bufor, centroid, transformacja, tłumaczenie, .... w zasadzie wszystko, co działa na każdej funkcji w izolacji). " . Rozumiałem, że większość algorytmów i tak działa na każdą funkcję osobno, ponieważ jeśli nie wybierzesz ręcznie poszczególnych funkcji, algorytm automatycznie przetworzy je wszystkie?
Joseph

Myślę, że cytowany przez ciebie cytat dotyczy możliwości wykonania edycji bezpośrednio na warstwie (zamiast tworzenia nowego wyniku): w rzeczywistości, w dalszej części mówi o możliwości wykonania operacji buforowania bezpośrednio na bieżącej warstwie, bez dalszego przetwarzania zwróconego wyjścia.
mgri

1
Hmm dobry punkt. Mam nadzieję, że twórca QGIS również mógłby to skomentować i potwierdzić :)
Joseph

2
GIS SE nie jest witryną dyskusji. Jeśli chcesz uzyskać odpowiedź od konkretnego dostawcy, sugeruję, abyś zapytał ich bezpośrednio.
Vince

1
@Joseph Istnieje wiele algorytmów (np. obliczanie przecięć linii lub rozkładanie elementów), w których nie można operować na poszczególnych elementach.
Podmrok

4

Renderowanie tylko w tym momencie (QGIS 2.6).

Martin i ja rozmawialiśmy o jakimś ogólnym interfejsie API procesu wątkowego, ale w tej chwili jest to tylko rozmowa.


1
Dzięki Nathan, czy osobiście uważasz, że warto podjąć to przedsięwzięcie, czy też dodawanie / ulepszanie funkcjonalności jest uważane za wyższy priorytet? To po prostu z ciekawości :)
Joseph

Warto je realizować, ale nie podejrzewam, że jest to łatwe zadanie.
Nathan W
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.