¿Habilitando el procesamiento multiproceso en QGIS?

11

He encontrado múltiples enlaces que parecen decir que esto ahora existe en QGIS 2.2, pero parece que solo está usando un núcleo a plena capacidad.

Esto se está ejecutando en Ubuntu 14.04

El proceso actual está creando una gran cantidad de puntos regulares. ¿Cómo puedo hacer que ese proceso use más de un núcleo?

Uso de CPU

jpmaniac87
fuente
1
Creo que esto será en 2.4, el próximo lanzamiento. Sin embargo, si desea probarlo, descargue la compilación nocturna.
Matt
Probablemente valga la pena comentar que debido al GIL "multihilo" no ejecutará núcleos concurrentes. Echa un vistazo a stackoverflow.com/questions/1294382/… Lo que quieres es "multiprocesamiento".
Mr Purple

Respuestas:

6

No hay renderizado multiproceso QGIS 2.2, es una característica que estará disponible en QGIS 2.4.

Puede probar QGIS Master (todas las noches) para las pruebas, y luego QGIS 2.4 se lanzará el 20 de junio de 2014 .


Vaya, leyó mal su pregunta y, según los comentarios, parece que el procesamiento multiproceso es algo que sucede tanto en el nivel de desarrollador QGIS como en el nivel de contribuidor de Python Plugin.

Si hay una herramienta QGIS específica que está utilizando en los menús integrados en QGIS que para obtener un procesamiento multiproceso, es probable que deba ser codificada por un desarrollador de QGIS o incluso a la raíz de la herramienta (GDAL, SAGA, Orfeo, GRASS, desarrolladores R, etc ...).

Si hay un complemento determinado, es muy probable que esté codificado alrededor de Python y el contribuyente o mantenedor de ese complemento podría ver si es posible incluir los módulos multiprocessingo threadingpara mejorar su rendimiento.

De cualquier manera, enviar una solicitud de función o ver si ya existe es la mejor manera de comenzar. Le informaría si alguien ya está abordando la mejora o qué recursos serían necesarios para iniciarla.

SaultDon
fuente
Es una pena ... Tuve problemas construyendo desde la fuente en el pasado. Si solo agrego el ppa para los nightlies e instalo de todos modos con apt, ¿eso me daría lo último en noches? ¿Alguna idea sobre la estabilidad?
jpmaniac87
@ jpmaniac87 No he usado Ubuntu en mucho tiempo y hago mi trabajo SIG en Arch Linux, así que compilo todo desde la fuente. Así que no sabría cómo son los PPA para Ubuntu y si pudiera instalar QGIS (estable) con QGIS (maestro) al mismo tiempo.
SaultDon
@ jpmaniac87 Se desprende de esta respuesta en otra pregunta que podría no ser posible dada la forma en que se empaquetan las versiones de QGIS en Ubuntu. Parece que es uno u otro.
SaultDon
Las PPA funcionan. Acabo de comentar las líneas estables e instalé las noches. ¡Es rápido! Pero ... solo usa múltiples hilos literalmente para renderizar ... Esperaba más de los procesos de complementos. Supongo que eso significaría que los creadores de complementos tendrían que permitir el procesamiento multiproceso en su código.
jpmaniac87
1
@ jpmaniac87 Sí, porque los complementos se construyen con Python, y hay un módulo multiprocessingo threading ( threadinggeneralmente se usa con queue) para Python que tendrían que agregar específicamente a sus scripts.
SaultDon
3

Depende de lo que estés buscando. Cuando el procesamiento se transfiere al nuevo marco del administrador de tareas, los algoritmos podrán ejecutarse en paralelo (cuando sea posible). Por ejemplo, se puede ejecutar un búfer para una capa mientras se produce una transformación en otra capa. 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.

Fuente: http://osgeo-org.1560.x6.nabble.com/Will-Processing-in-QGIS-3-support-parallelization-td5301809.html


Respuesta anterior: Durante el Google Summer of Code 2015, se ha desarrollado compatibilidad con subprocesos múltiples para el procesamiento QGIS. El código se encuentra actualmente en revisión y se espera que llegue a la versión de desarrollador en 2016. (Fuente: http://boundlessgeo.com/2015/12/latest-developments-in-qgis-processing/ )

... Desafortunadamente, esta solución no se pudo fusionar.

bajo oscuro
fuente
¿Alguna actualización sobre este asunto @underdark?
Ricardo Barros Lourenço
La paralelización sigue siendo limitada en la mayoría de las aplicaciones, desafortunadamente. Según tengo entendido, la utilización de la infraestructura de la base de datos, como PostGIS / postgres, permite una gestión más integrada de las consultas y mejores capacidades de subprocesamiento múltiple.
CrystallineEntity
2

Se están incorporando algunos subprocesos en la funcionalidad central de QGIS (renderizando, por ejemplo, como se describe en la respuesta de SaultDons), pero muchas funciones o algoritmos pueden o no tener subprocesos incorporados dependiendo de su desarrollo.

Para aquellos autores de complementos de pyQGIS (quizás incluyendo OP) que deseen incluir subprocesos en su complemento / script, hay alguna ayuda disponible en el blog de snorfalorpagus. Esperemos que cada vez más desarrolladores hagan uso de subprocesos, especialmente para los algoritmos más exigentes.

Como un recurso provisional, es posible que pueda escribir su proceso y utilizar un esquema de proceso paralelo para hombres pobres con llamadas a scripts de shell asícronos como se describe en alexis.

Si alguien más tiene buenos recursos para paralelizar los trabajos de QGIS, no dude en editarlos y agregarlos a esta respuesta :)

Señor púrpura
fuente