Le funzioni principali di QGIS sfrutteranno il multi-threading?


10

Dopo aver letto Abilitare l'elaborazione multithread in QGIS? , Mi chiedevo se QGIS 2.6 includerà questo durante l'esecuzione di vari processi. Ho controllato online e ho trovato solo che il rendering multi-thread è stato introdotto in QGIS 2.4 (suppongo che sarà di nuovo disponibile in 2.6). Ora le mappe possono essere ridisegnate molto rapidamente soprattutto quando si tratta di set di dati di grandi dimensioni.

Ho letto che è abbastanza difficile includere il multi-threading nella funzionalità principale e che agli utenti viene consigliato di manipolare il codice Python per raggiungere questo obiettivo, come ad esempio nel parallelizzare le operazioni GIS in PyQGIS? .

Ho anche controllato la richiesta di funzionalità ma è stata chiusa per 9 mesi da Tim Sutton con l'ultimo commento che è:

"Lo sto chiudendo - Martin Dobias ha un'implementazione in una filiale che verrà unita dopo QGIS 2.2"

Alcune funzioni di QGIS 2.6 sfrutteranno il multi-threading (o si concentreranno nuovamente sul rendering) e, in caso contrario, cambierà in QGIS 3.0?


Il multithreading non è particolarmente appropriato per la maggior parte delle attività GIS, che tendono ad essere orientate al flusso, semplici e legate all'I / O. La difficoltà di ottenere risultati coalescenti di solito non merita lo sforzo di metterli in coda in modo indipendente (vice eseguendo immediatamente il semplice compito). La definizione di "exploit" è quindi soggetta a dibattiti significativi.
Vince il

@Vince - Grazie, capisco che il multithreading non è una priorità assoluta per molti casi d'uso. Ma dato che alcuni lavori per raggiungere questo obiettivo sono già stati fatti, mi chiedevo se il supporto per questo (che potrebbe essere un termine migliore di "exploit") sarebbe presente nella nuova versione di QGIS =)
Joseph

1
@PolyGeo - Grazie, un punto giusto e uno che è abbastanza adatto per questo formato Q / A. Sono d'accordo :)
Joseph,

Risposte:


3

Penso che la risposta per QGIS 3.0 possa essere trovata in questa recente conversazione pubblicata in Nabble :

L'elaborazione in QGIS 3 supporterà la parallelizzazione?

Citando Nyall Dawson:

Se stai cercando la parallelizzazione all'interno di un singolo algoritmo (ad esempio funzionalità di buffering che utilizzano più thread), non sono a conoscenza di alcun piano in atto per gestirlo.


Bella scoperta! Anche se sono un po 'confuso con la citazione che segue ciò che hai citato: "Un modo piacevole e (teoricamente) facile per ottenere algoritmi multithread, e sarebbe semplice adattare molti algoritmi esistenti a questo (buffer, centroide, trasformazione, traduzione, .... Fondamentalmente tutto ciò che opera su ciascuna funzione in isolamento). " . Avevo capito che la maggior parte degli algoritmi operano su ciascuna funzionalità singolarmente comunque, perché se non si selezionano manualmente singole funzionalità, l'algoritmo le elabora automaticamente?
Joseph,

Penso che la citazione che hai citato riguardi la possibilità di effettuare una modifica direttamente sul livello (anziché produrre un nuovo output): in effetti, di seguito parla della possibilità di eseguire un'operazione di buffer direttamente sul livello corrente, senza l'ulteriore elaborazione dell'output restituito.
mgri

1
Hmm buon punto. Spero che anche uno sviluppatore di QGIS possa commentare e confermare questo :)
Joseph

2
GIS SE non è un sito di discussione. Se desideri una risposta da un fornitore specifico, ti suggerisco di interrogarlo direttamente.
Vince il

1
@joseph Esistono molti algoritmi (ad es. calcolo di intersezioni di linee o dissolvenza di funzioni) in cui non è possibile operare su singole funzionalità.
underdark

4

Rendering solo in questo momento (QGIS 2.6).

Martin e io abbiamo parlato di una sorta di API di processo filettata generica, ma in questo momento parla solo.


1
Grazie Nathan, pensi che valga la pena perseguire questa impresa o l'aggiunta / miglioramento della funzionalità è considerata una priorità più alta? Questo è solo per curiosità :)
Joseph,

Vale la pena perseguire, ma non sospetto che sia un compito facile.
Nathan W,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.