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.