[Qgis-developer] Parallel Development

Martin Dobias wonder.sk at gmail.com
Fri Feb 15 11:32:58 PST 2013


Hi Ben

On Thu, Feb 14, 2013 at 4:30 PM, Benjamin Adcock
<badcock2 at student.gsu.edu> wrote:
> Hi all,
>
> I am a graduate student looking to contribute to QGIS.  Specifically, I am
> looking to tackle a project that requires parallel computing techniques.

Welcome to the list!


> I'm somewhat new here; from reading the archives it looks like there is
> multithreading support in QGIS, maybe some support for OpenCL, but it
> doesn't look like much has been done with it.

Some time ago (within GSoC 2010) I have been experimenting with
multithreaded rendering of map canvas [1]. That work has not been
merged back to master branch, but in recent months I have started
again with some preparations for introduction of multithreaded
rendering. The basic idea is simple: instead of drawing layers one
after other, we can start rendering of several layers at once. For
that we have already tried using QtConcurrent framework which is quite
convenient way to get the threads running.

Apart from rendering, there are surely various other tasks where you
could use multithreading - I'm not sure what exactly is of your
interest. You have mentioned OpenCL - how would you like to apply it
in context of QGIS? There are other OSGeo project that have started
experimenting with implementation of some algorithms on GPU - I know
of GDAL (and maybe GRASS).


> Frankly, I don't know where to start.  If someone could point me in the
> right direction, or if they have any insight into parts of the codebase that
> could benefit from parallelization, I'd appreciate it.

First of all you should get familiar with QGIS application, then start
looking into the code, especially the qgis_core library which lays
ground for most of the other code. You may find Sextante plugin
interesting as it defines a framework for various processing
algorithms - some algorithms are used from other processing libraries,
others are "native" to QGIS (e.g. coming from fTools plugin) and they
could see some speed improvement. However often a reasonable
optimization is to use more sophisticated algorithm (e.g. with
complexity N*logN instead of N^2) than paralellizing naive algorithm.

[1] http://hub.qgis.org/wiki/quantum-gis/QGIS_on_steroids_GSoC_2010

Regards
Martin


More information about the Qgis-developer mailing list