Skip to content

Commit

Permalink
Merge branch 'master' of github.com:studouglas/GEANT4-GPU
Browse files Browse the repository at this point in the history
  • Loading branch information
studouglas committed Apr 14, 2016
2 parents 3be3ed2 + d90a1d8 commit 72e5e3e
Showing 1 changed file with 46 additions and 1 deletion.
47 changes: 46 additions & 1 deletion Documentation/FinalPresentation/Presentation.tex
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,32 @@ \subsection{Scope}
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Possible Implementations}
There were initially five possible implementations to reach
a solution:
\begin{itemize}
\item Port Geant4 to the GPU such that each particle runs in parallel
\item Port all the functions of some class(es) to the GPU, with those functions privatized to the GPU
\item Port some functions of some class(es) to the GPU, memory stored on host, passing mem to device as necessary
\item Port some functions of some class(es) to the GPU, memory stored and updated on host and device
\item Port some functions of some class(es) to the GPU, data divided between host and device, passing mem as necessary
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Solution Choice}
\begin{itemize}
\item Implementation 1 was believed to be unreasonable given schedule/resource limitations
\item Implementation 5 was found to be most suitable
\begin{itemize}
\item Easy to switch between CPU & GPU versions
\item Less memory usage than other implementations
\item Least redundancy in computation
\end{itemize}
\end{itemize}
\end{frame}

\subsection{Purpose}
\begin{frame}
\begin{itemize}
Expand Down Expand Up @@ -466,7 +492,7 @@ \subsection{Accuracy / Testing}
\frametitle{Accuracy}
\begin{itemize}
\item All modified functions except SampleLin and Sample
yield results that precisely match
yield results that precisely match original implementations
\end{itemize}
\begin{itemize}
\item Some functions fell extremely close in accuracy to
Expand Down Expand Up @@ -565,6 +591,25 @@ \subsection{Summary of Results}
\subsection{Recommendations}
\begin{frame}
\frametitle{Recommendations}
For further work with regards to ParticleHPVector:
\begin{itemize}
\item Abstact further up the Geant4 system, parallelizing
components that make reference to NeutronHPVector
\item This will decrease the frequency of data transfer
between the host and device
\item Up-to-date work can be found on out github, along
with instructions for installing and testing
\end{itemize}
For further work with regards to parallelizing Geant4:
\begin{itemize}
\item Try parallelizing other commonly use components in similar style
\begin{itemize}
\item Look for classes manipulating list-style data structures
\item Classes with functions that have nested loops or are heavy in computation are prime candidates
\item Probabilistic functions and getter/setter functions won't benefit greatly
\item Functions with conditional branching may cause bottlenecks in parallelization
\end{itemize}
\end{itemize}
\end{frame}

\end{document}

0 comments on commit 72e5e3e

Please sign in to comment.