49
edits
Changes
no edit summary
= Profiling =
== Introduction : GPU Benchmarking/Testing using Mandelbrot Sets : Kartik Nagarajan ==
----
== Introduction : GPU Benchmarking/Testing for NBody : Joshua Kraitberg ==
This program uses Newtonian mechanics and a four-order symplectic Candy-Rozmus integration (a symplectic algorithm guarantees exact conservation of energy and angular momentum). The initial conditions are obtained from JPL Horizons, ahd constants (like masses, gravitational constant) are those recommended by the International Astronomical Union. The program currently does not take into account effects like general relativity, the non-spherical shapes of celestial objects, tidal effects on Earth, etc. It also does not take the 500 asteroids used by JPL Horizons into accound in its model of the Solar System.
[https://github.com/fding/nbody Source]
=== Compilation Instructions: ===
For Unix/Linux based systems:
g++ -std=c++11 c++/nbody.cpp
=== Observations ===
The program is quite fast for being a single-threaded CPU application. Almost all the CPU time is spent manipulating data or iterating vectors.
=== Hotspot ===
Essentially all the time spent running is spent in the dowork function. The do work function iteratively calls the CRO_step function found in integrators.h file. The CRO_step function is where most of the vector calculations take place.
=== Profiling Data and Screenshots ===