From CDOT Wiki
Revision as of 14:24, 2 February 2013 by Acraig1 (talk | contribs) (Assignment 1)
Jump to: navigation, search

GPU610/DPS915 | Student List | Group and Project Index | Student Resources | Glossary


Team Members

  1. Clinton Bale, Some responsibility
  2. Alex Craig, Some responsibility
  3. Jesse Santos, Some responsibility
  4. Neil Guzman, Some responsibility

Email All


Assignment 1

For our assignment 1, we are looking into finding and N-body simulator. All of us in the group have agreed to find 1 each, and after profiling them, we will choose the most inefficient one to parallelize.

Alex's Profiling Findings

I have found a Java applet that uses a brute force method for an N-Body simulator. It also has an improved algorithm to speed up the simulation and allow for a lot more bodies to be added. I will profile and show some sample run results for both, and see which one may be more fitting to try and parallelize.

Example Profiles of Brute Force Algorithm

When run with 1000 bodies: 1000BodyProfile.png

When run with 2500 bodies: 2500 bodies profile.PNG

When run with 10000 bodies: 10000 bodies profile.PNG

All of these profiles were ran for about 4 to 5 minutes each. It seems that when the body count is low (1000) the program spends most of its time in the addforces() function, which is a user defined function within one of the source files. However, when the body count gets higher, it seems that the program slows down so much from having to draw all of the bodies, it spends most of its time in the Java definedfillOval() function, rather than the addforces() function. I'm not entirely sure if we would be able to parrallelize that function, since it is in a library. It may be possible to simply define a function that does the same thing and put it in the program.

Example Profiles of Barnes Hut Algorithm

When run with 10000 bodies: 10000 bodies BH profile.PNG

When run with 25000 bodies: 25000 bodies BH profile.PNG

When run with 50000 bodies: 50000 bodies BH profile.PNG

All of these profiles were ran for about 5 minutes each. The percentage of time the program spends in all of the functions is pretty consistent. Again, the Java defined fillOval() function is taking the longest amount of time. I'll have to look into adding that function into the main class. Although the updateForce() and insert() functions combined take over 25% of the execution time, so something can be done about that.

If someone knows how to add spoiler tags, it would be much appreciated if you could add them to my 2 groups of pictures.

Assignment 2

Assignment 3