I have an I7 quad-core processor in my laptop. I use QGIS 3.8 to do dissolve jobs on large polygonsets. The biggest set takes 131 minutes. If I look a the load monitor I see my system on a constant load balancing cycle over the 4 cores. (It alternates over the 4 cores, 1 core on 100% whilst the rest idle)

I have an, untested, idea to chop the sets into 3 subsets and then run 3 dissolve jobs on 3 cores. After that is done I only have to merge and dissolve the edges of the three subsets.

Does anybody have experience on this or a better method to speed up the process. Is there any news on multi-thread processing in QGIS ?

  • I'm confused... I would assume that balancing the effort evenly across the 4 cores indicates that a single QGIS job is efficiently using multithreading by spreading the load, which would be the fastest way to accomplish the task. If multithreading wasn't happening, then you'd see that same QGIS job utilizing only one core, while the other 3 loafed around... – Stu Smith Jul 4 '19 at 18:27
  • Sorry I was unclear, I changed my post. With loadcycle I meant one was at 100% whilst the rest idle. After x amount of seconds it puts the next core at 100% and idles the other three, and so on – CaptainAhab Jul 4 '19 at 18:38
  • I don't know anything about the inner workings of QGIS, so I can't speak to its ability to multithread a dissolve. I would imagine, though, that if QGIS multithreading was possible, it would be on by default. Assuming that it is not possible, your idea would make for an interesting experiment (since you have 4 cores, why not perform 4 simultaneous dissolves instead of 3?) However, the gains made from the simultaneous dissolves might be offset by the additional effort required to "chop" the source data into 4 parts and then merge it back together. Please report back if you try it! – Stu Smith Jul 5 '19 at 16:55

As far as I know, QGIS is not multi-thread application in any algorythm. You can only set it in rendering.

Render options

You can find some thread in dev list about making qgis multi-thread, but I don't recall anything about it in changelog since version 3.0.

  • This does not affect the processing operation - only the display. This enables each available core to access storage, read, convert to display units, and add to the rendering pipeline. It does not affect any processing tools and should be discouraged as an answer to the multi-core processing question because it can be misleading for those who do not know the difference. – anakaine Feb 9 '20 at 22:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.