| 295 | === Week 5 === |
| 296 | |
| 297 | '''1) What did I get done this week?''' |
| 298 | |
| 299 | To benchmark both r.mfilter and r.neighbor implementation, I have made use of the recently merged benchmark library on randomly generated raster using r.surf.fractal. |
| 300 | |
| 301 | The preliminary result is as follows for both modules (y-axis - time/secs, x-axis - nprocs | benchmarked on my local workstation): |
| 302 | Furthermore, checks are done to compare between performance on master branch vs after implementation (nprocs = 1), and the results are comparable. |
| 303 | |
| 304 | These two implementations make use of extensive disk I/O to write to temporary file buffer before transferring to the final raster file format. This behavior is default in r.mfilter, but is explicitly introduced in r.neighbors to allow for parallelization. Upon discussion with the mentors, we decided that we should make better use of memory over disk. Ideally, the user will be able to input the size of memory usage to be used for buffer. However, r.mfilter will still preserve its original usage of temporary files buffer. |
| 305 | |
| 306 | '''2) What do I plan on doing next week?''' |
| 307 | |
| 308 | - Complete rework of r.neighbors implementation |
| 309 | - Compare benchmark between the two implementations |
| 310 | |
| 311 | '''3) Am I blocked on anything?''' |
| 312 | |
| 313 | No major roadblock, but I need to catch up a bit to rework my r.neighbor implementation. |
| 314 | |
| 315 | === Week 6 === |
| 316 | |
| 317 | '''1) What did I get done this week?''' |
| 318 | |
| 319 | r.neighbors |
| 320 | |
| 321 | The main goal that I have accomplished is to do a complete rework of the r.neighbors implementation (PR: [https://github.com/OSGeo/grass/pull/1724]). A benchmark script is ready under 'benchmark' directory for users to test the performance on their local machine. The performance is comparable to the previous implementation that make use of temporary files as buffer (on SSD) instead of memory. The result of the benchmarking on my local machine (12 cores) under the PR. |
| 322 | |
| 323 | r.mfilter |
| 324 | |
| 325 | There are issues pointed out when working on raster files > 2GB (PR: [https://github.com/OSGeo/grass/pull/1708]). This is promptly addressed with commit (4caa96), and the cause is due to overflow from multiplication. This PR is ready, and a benchmark script is provided as well for local benchmarking. |
| 326 | |
| 327 | '''2) What do I plan on doing next week?''' |
| 328 | |
| 329 | - Introduce an environment variable that overwrites the default nprocs parameter which is currently 1. This is so that the users do not need to add nprocs parameter explicitly. |
| 330 | - Implement r.resamp.filter/r.resamp.interp parallelization |
| 331 | |
| 332 | '''3) Am I blocked on anything?''' |
| 333 | No major issues. |
| 334 | |
| 335 | === Week 7 === |
| 336 | |
| 337 | '''1) What did I get done this week?''' |
| 338 | |
| 339 | - Introduce an environment variable that overwrites the default nprocs parameter which is currently 1. This is so that the users do not need to add nprocs parameter explicitly. |
| 340 | |
| 341 | r.resamp.filter |
| 342 | |
| 343 | - Implement parallelization |
| 344 | - Add test cases |
| 345 | |
| 346 | '''2) What do I plan on doing next week?''' |
| 347 | |
| 348 | - Implement parallelization for r.slope.aspect with testing and benchmarking |
| 349 | |
| 350 | '''3) Am I blocked on anything?''' |
| 351 | |
| 352 | No major issues. |
| 353 | |
| 354 | === Week 8 === |
| 355 | |
| 356 | '''1) What did I get done this week?''' |
| 357 | |
| 358 | r.resamp.interp [https://github.com/OSGeo/grass/pull/1771] |
| 359 | |
| 360 | - Implement parallelization |
| 361 | |
| 362 | r.slope.aspect [https://github.com/OSGeo/grass/pull/1767] |
| 363 | |
| 364 | - Implement parallelization |
| 365 | |
| 366 | Both implementation above follows similarly to r.neighbor [https://github.com/OSGeo/grass/pull/1724]. r.slope.aspect keeps track of global statistics variable like min/max, thus additional variable reduction is required aside from map computation. The benchmarking of the modules will be supplemented in the PR. |
| 367 | |
| 368 | '''2) What do I plan on doing next week?''' |
| 369 | |
| 370 | - Refactor r.univar |
| 371 | - Implement parallelization for r.series, r.patch |
| 372 | - Revisit r.proj to decide on implementation |
| 373 | |
| 374 | '''3) Am I blocked on anything?''' |
| 375 | |
| 376 | No major issues. |
| 377 | |