Enabling multithreaded processing in QGIS?

There isn't multithreaded rendering QGIS 2.2, it's a feature that will be available in QGIS 2.4.

You can try out QGIS Master (nightly) for testing, and then QGIS 2.4 is scheduled for release on June 20th, 2014.


Whoops, misread your question and from the comments, it looks like multithreaded Processing is something that happens at either the QGIS developer level or the Python Plugin contributor level.

If there is a specific QGIS tool you're using from the menus that's built into QGIS than to get multithreaded processing it would probably need to be coded by a developer for QGIS or even to the root of the tool (GDAL, SAGA, Orfeo, GRASS, R developers, etc...).

If there is a certain plugin than it's most likely coded around Python and the contributor or maintainer of that plugin could see if it's possible to include the multiprocessing or threading modules to enhance its performance.

Either way, submitting a feature request, or seeing if one already exists is usually the best way to get started. It would let you know if someone is already tackling the enhancement or what resources would be needed to kickstart it.


Depends what you're after. When processing is ported to the new task manager framework then algorithms will be able to run in parallel (where possible). Eg a buffer for one layer can run while a transform occurs on another layer. If you're after parallelization within a single algorithm (Eg buffering features using multiple threads) then I'm unaware of any plans in place to handle this.

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


Old answer: During the 2015 Google Summer of Code, multi-threading support has been developed for QGIS Processing. The code is currently under review and is expected to land in the developer version in 2016. (Source: http://boundlessgeo.com/2015/12/latest-developments-in-qgis-processing/)

... This solution unfortunately couldn't be merged.


Some threading is being incorporated in the QGIS core functionality (rendering for example as described in SaultDons answer) but many functions or algorithms may or may not have threading incorporated depending on their developement.

For those pyQGIS plugin authors (perhaps including OP) wishing to include threading in their plugin/script some help is available at snorfalorpagus blog Hopefully more and more devs will make use of threading - particularly for the more taxing algorithms.

As a stopgap you may be able to script your process and use a poor-mans parallel process scheme with calls to asychronous shell scripts as described in alexis answer here

If anyone else has any good resources for parallelising QGIS jobs please feel free to edit and add them to this answer :)