\BOOKMARK [1][-]{section.1}{Introduction}{} \BOOKMARK [1][-]{section.2}{Euler's Method}{} \BOOKMARK [1][-]{section.3}{Parallelisation}{} \BOOKMARK [2][-]{subsection.3.1}{Graphics}{section.3} \BOOKMARK [1][-]{section.4}{POSIX Threads \(pthreads\)}{} \BOOKMARK [2][-]{subsection.4.1}{Barriers}{section.4} \BOOKMARK [2][-]{subsection.4.2}{Division of Labour}{section.4} \BOOKMARK [2][-]{subsection.4.3}{Single Threaded Section}{section.4} \BOOKMARK [1][-]{section.5}{OpenMP}{} \BOOKMARK [1][-]{section.6}{Barnes Hut Algorithm}{} \BOOKMARK [2][-]{subsection.6.1}{Errors}{section.6} \BOOKMARK [2][-]{subsection.6.2}{Performance for different \040values}{section.6} \BOOKMARK [1][-]{section.7}{Performance Analysis}{} \BOOKMARK [2][-]{subsection.7.1}{Time vs Steps}{section.7} \BOOKMARK [2][-]{subsection.7.2}{Time to compute vs Number of Bodies}{section.7} \BOOKMARK [2][-]{subsection.7.3}{Analysis with Callgrind}{section.7}