\relax \ifx\hyper@anchor\@undefined \global \let \oldcontentsline\contentsline \gdef \contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} \global \let \oldnewlabel\newlabel \gdef \newlabel#1#2{\newlabelxx{#1}#2} \gdef \newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} \AtEndDocument{\let \contentsline\oldcontentsline \let \newlabel\oldnewlabel} \else \global \let \hyper@last\relax \fi \@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{2}{section.1}} \@writefile{toc}{\contentsline {section}{\numberline {2}Euler's Method}{2}{section.2}} \@writefile{toc}{\contentsline {section}{\numberline {3}Parallelisation}{3}{section.3}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Graphics}{3}{subsection.3.1}} \@writefile{toc}{\contentsline {section}{\numberline {4}POSIX Threads (pthreads)}{4}{section.4}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Barriers}{4}{subsection.4.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Division of Labour}{4}{subsection.4.2}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Single Threaded Section}{5}{subsection.4.3}} \@writefile{toc}{\contentsline {section}{\numberline {5}OpenMP}{5}{section.5}} \@writefile{toc}{\contentsline {section}{\numberline {6}Barnes Hut Algorithm}{5}{section.6}} \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Barnes Hut - One body per cube\relax }}{6}{figure.1}} \newlabel{cubes.png}{{1}{6}{Barnes Hut - One body per cube\relax \relax }{figure.1}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Errors}{6}{subsection.6.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Performance for different $\theta $ values}{6}{subsection.6.2}} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Barnes Hut mean error\relax }}{7}{figure.2}} \newlabel{error_graph.png}{{2}{7}{Barnes Hut mean error\relax \relax }{figure.2}{}} \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Barnes Hut single threaded performance\relax }}{8}{figure.3}} \newlabel{efficiency.png}{{3}{8}{Barnes Hut single threaded performance\relax \relax }{figure.3}{}} \@writefile{toc}{\contentsline {section}{\numberline {7}Performance Analysis}{9}{section.7}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Time vs Steps}{9}{subsection.7.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Time to compute vs Number of Bodies}{9}{subsection.7.2}} \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Implementation Performance\relax }}{10}{figure.4}} \newlabel{time_vs_steps.png}{{4}{10}{Implementation Performance\relax \relax }{figure.4}{}} \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Efficiency vs $n$\relax }}{11}{figure.5}} \newlabel{time_vs_n.png}{{5}{11}{Efficiency vs $n$\relax \relax }{figure.5}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.3}Analysis with Callgrind}{12}{subsection.7.3}} \@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Kcachegrind reveals why my program is slow\relax }}{13}{figure.6}} \newlabel{kcachegrind.png}{{6}{13}{Kcachegrind reveals why my program is slow\relax \relax }{figure.6}{}}