Week 9: Analysis And Parallel Processing
This is my next-to-last week of my internship (and my blog posts). I learned how to use multiple cores of a computer’s CPU (to use more of the computer’s processing power by processing things in parallel instead of just in series) and integrate that into my code, seeing the execution time of my programs drop drastically. As an example, with “normal” processing, running just one core, it took about 7.7 seconds to run my test program. With two cores, it took about 4.1 seconds to run that same program, and with eight cores, it only took 1.8 seconds (see picture below). I also tried to access the GPU (more processing power using a graphical interface) on my computer, but Apple has discontinued support for OpenACC, a common software to do so, and has made it truly difficult to run commands that would allow processing to move between the CPU and the GPU.
As for my independent project, I am writing the analysis section of my paper and will soon move on to the conclusion. Right now, I’m analyzing the terrain and characteristics (soil type, etc.) of the Featherstone Refuge and how those relate to the way water moves across the land there. In retrospect, I see I wasn’t doing as much research work the first few weeks of my project as I have been doing these past few writing weeks, and it may have been better to have split my work more evenly. What’s done is done, though, so I can only try to learn from it. See you next week,
Parallel processing example: The time after “real” means the actual amount of time between me pressing the enter key and the results printing to the screen. The time after “user” means, essentially, if the computer did this with one core, processing in series, that’s how long it would take. The times of each run can vary, but their scale is obviously proportionate to the number of cores running.