On Sun, Mar 25, 2012 at 2:50 PM, matteo poletti <pollo1_91@yahoo.it> wrote:
Hi,
I am a 2th year student in Compuer Science at the University of Trento, in Italy. I would like to apply for Gsoc with the GRASS project: I am interested in implementing parallelization support for some raster module.
I have read that good knowledge of OpenMP is required. To be honest, I haven't got any experience with OpenMP. Is this a problem? I'm very interested in parallel computing so I will do all my best to learn using it. I have already deal with parallelization using C-Cuda so maybe I will be ready faster (I hope).
For a number or raster modules, essentially all is needed is something like
#pragma omp parallel for schedule (static) private (col)
before the loop going through all columns of a row. The speed-up is
minimal, however, and CPU time will probably always increase.
If OpenMP isn't a problem, could you suggest me which are the modules that probably will take more advantages by the parallelization? Another thing that I cannot figure out is how much time does it take implementing parallelization for a module such r.cost or similar. Having an idea of this will be important for start thinking about a possible timeline.
r.cost is not such a good example because cells must be processed
sequentially in a specific order and because intermediate data are
written to the same output file. I/O is not thread safe, however, and
OpenMP specifies nothing about parallel I/O. That is also the reason
why raster rows can not be written out in parallel.
In short, the number of candidates is limited, the required code
modifications on raster module level are probably not that drastic if
single thread performance is to be preserved, and the performance gain
is probably often not given. Maybe parallelization support for some
raster modules is not really suitable for a GSoC project?
Markus M
Thank you!
Matteo
_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev