Parallel Final Project

Submitted my final version of code and project presentation last night, felt pretty good. The program simulates the transfer of heat that occurs when a solid object placed in a fixed temperature space. My job was to take the sequential code and make it run on more than one machine on a cluster. It's in SPMD style, and utilizes PVM for message passing between machines. The algorithm it uses is a point by point calculation based on the north, south, east and west neighbor of the cell in the array, which is of course done for each point. The results were kind of odd. For synchronous iterations (data was synchronized with all the neighbors after each round of processing), I got at best a speed up factor of 2.1, and this was for 4 machines on the cluster. More machines meant more message overhead and slowed the performance down to 1.5 for 16 machines. However, for asynchronous processing, speedup was much higher, though still not linear. It also varied on how big the data set size was compared to the number of processors (again the overhead of communication). For a 512x512 matrix, 8 processors still proved faster than 16, but not by much. And for using 8 processors, the speedup was almost linear, a factor of 6.2. Considering other problems that we solved in class and other programs the professor gave us, it was kind of disappointing to see not even linear speed up, but that's how it goes. For more information you can check out my presentation online.


© 2017 Chad Jorgenson. All Rights Reserved.