[GRASS-dev] [SoC] GSoC 2021 - Parallelization of raster modules for GRASS GIS

Hi everyone,

Week 2 has concluded, and this is my report for this week.

  1. What did I get done this week?

r.univar

  • Address changes for the PR [1] , e.g. to use a standard option “nprocs” will now be a parameter for users to indicate the number of threads

r.neighbor

  • Write test cases for parallel execution
  • Drafted a PR alongside its implementation [2]

r.proj

  • Write new test cases for the modules [3]
  1. What do I plan on doing next week?

I have managed to come up with a way to parallelize output-based modules like r.neighbor. The idea is to make use of a temporary segment file to allow threads to perform random write operations, which is not possible directly on compressed raster format file without using intermediate cache. With this design in mind, I intend to continue to parallelize similar modules next week. Also, there may be ideas in discussion to encapsulate a benchmarking framework possibly under grass.benchmark as this will be used repeatedly in the future to measure performance.

  1. Am I blocked on anything?

No, it has been good so far.

Warmest regards,

Aaron

[1] https://github.com/OSGeo/grass/pull/1634
[2] https://github.com/OSGeo/grass/pull/1654

[3] https://github.com/OSGeo/grass/pull/1663

[4] https://github.com/OSGeo/grass/pull/1670