Les fonctions principales de QGIS exploiteront-elles le multithread?

10

Après avoir lu Activer le traitement multithread dans QGIS? , Je me demandais si QGIS 2.6 inclurait cela lors de l'exécution de divers processus. J'ai vérifié en ligne et je n'ai pu constater que le rendu multi-thread a été introduit dans QGIS 2.4 (je suppose qu'il sera à nouveau disponible en 2.6). Désormais, les cartes peuvent être redessinées très rapidement, en particulier lorsqu'il s'agit de grands ensembles de données.

J'ai lu qu'il est assez difficile d'inclure le multi-threading aux fonctionnalités de base et que les utilisateurs sont invités à manipuler du code Python pour y parvenir, comme dans Parallelising GIS operations in PyQGIS? .

J'ai également vérifié la demande de fonctionnalité mais elle est fermée depuis 9 mois par Tim Sutton avec le dernier commentaire étant:

"Je termine ceci - Martin Dobias a une implémentation dans une branche qui sera fusionnée après QGIS 2.2"

Certaines fonctions de QGIS 2.6 exploiteront-elles le multithread (ou seront-elles à nouveau axées sur le rendu) et sinon, cela changera-t-il dans QGIS 3.0?

Joseph
la source
Le multithreading n'est pas particulièrement approprié pour la majorité des tâches SIG, qui ont tendance à être orientées flux, simples et liées aux E / S. La difficulté de fusionner les résultats ne vaut généralement pas l'effort de les mettre en file d'attente indépendamment (vice faisant la tâche simple immédiatement). La définition d '"exploit" fait donc l'objet d'un débat important.
Vince
@Vince - Merci, je comprends que le multithreading n'est pas une priorité absolue pour de nombreux cas d'utilisation. Mais comme un travail a déjà été fait pour y parvenir, je me demandais si le support pour cela (qui peut être un meilleur terme que "exploiter") serait présent dans la nouvelle version de QGIS =)
Joseph
1
@PolyGeo - Merci, un bon point et un qui est tout à fait approprié pour ce format Q / A. Je suis d'accord :)
Joseph

Réponses:

3

Je pense que la réponse pour QGIS 3.0 peut être trouvée dans cette récente conversation publiée dans Nabble :

Le traitement dans QGIS 3 prendra-t-il en charge la parallélisation?

Citant Nyall Dawson:

Si vous recherchez la parallélisation au sein d' un seul algorithme (par exemple, la mise en mémoire tampon de fonctionnalités utilisant plusieurs threads), je ne connais aucun plan en place pour gérer cela.

mgri
la source
Belle trouvaille! Bien que je sois un peu confus avec la citation qui suit ce que vous avez cité: "Un moyen agréable et (théoriquement) facile d'obtenir des algorithmes multithreads, et il serait simple d'adapter de nombreux algorithmes existants à cela (tampon, centroïde, transformation, traduction, .... Fondamentalement, tout ce qui opère sur chaque fonctionnalité de manière isolée). " . J'ai cru comprendre que la plupart des algorithmes opèrent sur chaque fonctionnalité individuellement de toute façon parce que si vous ne sélectionnez pas manuellement les fonctionnalités individuelles, l'algorithme les traite automatiquement toutes?
Joseph
Je pense que la citation que vous avez citée concerne la possibilité de faire un montage directement sur la couche (au lieu de produire une nouvelle sortie): en fait, dans ce qui suit, il parle de la possibilité de faire une opération tampon directement sur la couche actuelle, sans traitement supplémentaire de la sortie renvoyée.
mgri
1
Hmm bon point. J'espère qu'un développeur QGIS pourra également commenter et confirmer cela :)
Joseph
2
GIS SE n'est pas un site de discussion. Si vous souhaitez une réponse d'un fournisseur spécifique, je vous suggère de les interroger directement.
Vince
1
@joseph Il existe de nombreux algorithmes (par exemple le calcul d'intersections de lignes ou la dissolution d'entités) où l'on ne peut pas opérer sur des entités individuelles.
underdark
4

Rendu uniquement à l'heure actuelle (QGIS 2.6).

Martin et moi avons parlé d'une sorte d'API générique de processus fileté, mais ce ne sont que des discussions à l'heure actuelle.

Nathan W
la source
1
Merci Nathan, pensez-vous personnellement que cette entreprise mérite d'être poursuivie ou est-ce que l'ajout / l'amélioration de fonctionnalités est considéré comme une priorité plus élevée? C'est juste par curiosité :)
Joseph
Cela vaut la peine de poursuivre, mais je ne pense pas que ce soit une tâche facile.
Nathan W