Hi Ben On Thu, Feb 14, 2013 at 4:30 PM, Benjamin Adcock <[email protected]> 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 _______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
