¿Las funciones centrales en QGIS explotarán multi-threading?


10

Después de leer ¿ Habilitar el procesamiento multiproceso en QGIS? , Me preguntaba si QGIS 2.6 incluirá esto cuando ejecute varios procesos. Lo comprobé en línea y solo pude encontrar que el renderizado multiproceso se introdujo en QGIS 2.4 (supongo que nuevamente estará disponible en 2.6). Ahora los mapas se pueden volver a dibujar muy rápidamente, especialmente cuando se trata de grandes conjuntos de datos.

Leí que es bastante difícil incluir la funcionalidad de subprocesos múltiples en el núcleo y que se recomienda a los usuarios que manipulen el código Python para lograr esto, como en el caso de operaciones paralelas de SIG en PyQGIS. .

También verifiqué la solicitud de función, pero Tim Sutton la cerró hace 9 meses y el último comentario fue:

"Estoy cerrando esto: Martin Dobias tiene una implementación en una rama que se fusionará después de QGIS 2.2"

¿Algunas funciones en QGIS 2.6 explotarán múltiples subprocesos (o se enfocarán nuevamente en el renderizado) y, de no ser así, ¿eso cambiará en QGIS 3.0?


El subprocesamiento múltiple no es particularmente apropiado para la mayoría de las tareas de SIG, que tienden a estar orientadas a la transmisión, son simples y están vinculadas a E / S. La dificultad de unir resultados no suele valer la pena para ponerlos en cola de forma independiente (viceversa haciendo la tarea simple de inmediato). La definición de "exploit" está por lo tanto sujeta a un debate significativo.
Vince

@Vince - Gracias, entiendo que el multihilo no es una prioridad para muchos casos de uso. Pero como ya se ha realizado algún trabajo para lograr esto, me preguntaba si el soporte para esto (que podría ser un término mejor que "explotar") estaría presente en la nueva versión de QGIS =)
Joseph

1
@PolyGeo - Gracias, un punto justo y uno que es bastante adecuado para este formato Q / A. Estoy de acuerdo :)
Joseph

Respuestas:


3

Creo que la respuesta para QGIS 3.0 se puede encontrar en esta conversación reciente publicada en Nabble :

¿El procesamiento en QGIS 3 admitirá la paralelización?

Citando a Nyall Dawson:

Si busca la paralelización dentro de un solo algoritmo (p. Ej., Funciones de almacenamiento en búfer utilizando múltiples subprocesos), entonces no conozco ningún plan para manejar esto.


Buen hallazgo! Aunque estoy un poco confundido con la cita que sigue a lo que usted citó: "Forma agradable y (teóricamente) fácil de obtener algoritmos multiproceso, y sería sencillo adaptar muchos algoritmos existentes a esto (buffer, centroide, transformar, traducir, .... Básicamente todo lo que opera en cada función de forma aislada) " . Entendí que la mayoría de los algoritmos operan en cada función individualmente de todos modos porque si no selecciona manualmente las funciones individuales, ¿el algoritmo las procesará automáticamente?
Joseph

Creo que la cita que citó trata sobre la posibilidad de hacer una edición directamente en la capa (en lugar de producir una nueva salida): de hecho, a continuación habla sobre la posibilidad de realizar una operación de almacenamiento intermedio directamente en la capa actual, sin el procesamiento posterior de la salida devuelta.
mgri

1
Hmm buen punto. Espero que un desarrollador de QGIS también pueda comentar y confirmar esto :)
Joseph

2
GIS SE no es un sitio de discusión. Si desea una respuesta de un proveedor específico, le sugiero que los consulte directamente.
Vince

1
@joseph Hay muchos algoritmos (por ejemplo, cálculo de intersecciones de línea o funciones de disolución) en los que no se puede operar en entidades individuales.
oscuro

4

Renderizado solo en este momento actual (QGIS 2.6).

Martin y yo hemos hablado sobre algún tipo de API genérica de procesos enhebrados, pero solo se habla en este momento actual.


1
Gracias Nathan, ¿crees personalmente que vale la pena perseguir esta aventura o agregar o mejorar la funcionalidad se considera una prioridad más alta? Esto es solo por curiosidad :)
Joseph

Vale la pena perseguirlo, pero no sospecho que sea una tarea fácil.
Nathan W
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.