[GRASS-dev] [SoC] Parallelization of Raster and Vector libraries

Jordan Neumeyer jordan.neumeyer at mines.sdsmt.edu
Tue Mar 30 02:24:32 EDT 2010


Hi,

My name is Jordan. I'm currently a 3rd year (junior) computer science
student at South Dakota School of Mines and Technology (SDSMT). I don't have
much knowledge about GIS, but Wolf did give me a few links and book (An
Introduction to Geographic Information Systems by Heywood). I got the book
from my school's library, but haven't had an opportunity to read any of it.
But I'm willing to learn more. I'm also trying to find an interest area,
since I'm not sure where I want to go with my career or if I want to
continue my education.

Basic premise:
Begin to parallelize the suggested modules (from the OpenMP page) using
openMP and profile/parallelize others if time permits.

Why I want this specific project? Practice and experience. I'm currently
taking an Intro to Parallel Computing course, and I want to practice what
I've learned. It's interesting to me so I want to get better at it.

Initial thoughts and ideas on doing this:
I think my first step would be to understand the code by reading the
documentation, and the code. To be understand the code I could probably
generate some UML diagrams, and how functions are connected (I saw a tool a
couple days ago, basically what I wanted). Which would help determine entry
points and help me determine (likely) spots to parallelize since the code
itself is not thread-safe, and breaking at or below entry point is likely
safer (less dependency, fewer threads created for micro tasks, etc.). I
would then profile the code. I've never used a profiling tool before, but
good time to learn and useful in the future. Come up with a sharing strategy
(do I need locks, can I avoid them (also ensuring const-correctness would
likely help), is duplicate data possible/needed, etc.). Then try to
parallelize the code. Afterwards make sure the results are the same as
before parallelization (likely using the test suite) or other sort of
testing.

Just kind of my thought process about how I would try to go about
parallelizing a module. I haven't had a chance to look over any code or read
much documentation yet. Hopefully, I'll get a chance to look at in-depth
sometime this week, but it's a fairly busy week as-is.

~Jordan

IRC Nick: RevisionD
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/grass-dev/attachments/20100330/90944c63/attachment-0001.html


More information about the grass-dev mailing list