From db7ce3c646614e8ee9edb62fa54fa25a3e87f7f5 Mon Sep 17 00:00:00 2001 From: Matt Pagnan Date: Fri, 22 Apr 2016 23:59:43 -0400 Subject: [PATCH] added to key algorithm section --- Documentation/DesignDoc/DetailedDesign.pdf | Bin 147030 -> 147817 bytes Documentation/DesignDoc/DetailedDesign.tex | 9 +++------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Documentation/DesignDoc/DetailedDesign.pdf b/Documentation/DesignDoc/DetailedDesign.pdf index d29f26c902661296e815950bb764ec25736d947b..968a175c1a3d9a608ddfe847aac92996b353b446 100644 GIT binary patch delta 33550 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�ZBO|Z6qP&v= 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

|dL8%+j77kLJ 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 delta 32875 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 M>2=cDCOWMD2mU~(mjD0& diff --git a/Documentation/DesignDoc/DetailedDesign.tex b/Documentation/DesignDoc/DetailedDesign.tex index f8be5330..f6bf0ee8 100644 --- a/Documentation/DesignDoc/DetailedDesign.tex +++ b/Documentation/DesignDoc/DetailedDesign.tex @@ -415,9 +415,6 @@ \subsubsection{Access Program Syntax}% ================ Victor \bottomrule \end{longtable} -\mmp{commented out energy and Xsec functions since X and Y do the exact same thing. Our code no longer has those functions} -\mmp{We do not need the hash function since it was used to make cpu execution faster, which we are porting to the gpu} - \subsubsection{Access Program Semantics}% ============ Rob Note that hyphens in routine names and inputs are just for linebreaks due to the table size. The actual routine names and inputs do not have hyphens. @@ -431,8 +428,6 @@ \subsubsection{Access Program Semantics}% ============ Rob \arrayrulecolor{black} \bottomrule \end{longtable} -\mmp{commented out energy and Xsec functions since X and Y do the exact same thing. Our code no longer has those functions} -\mmp{We do not need the hash function since it was used to make cpu execution faster, which we are porting to the gpu} \subsubsection{State Variables}% ================== Matt The following variables maintain state for the class, and are all private to the class. @@ -451,7 +446,6 @@ \subsubsection{State Variables}% ================== Matt \bottomrule \end{tabularx} \end{table} -\mmp{no longer use theHash since it was a object used to speed up cpu computions, which has been ported to GPU} \subsubsection{Environment Variables}% ============== Matt There are no environment variables for this module. @@ -464,6 +458,9 @@ \subsection{Error Handling} \subsection{Key Algorithms} There are a variety of algorithms used in the module. When porting to the GPU, the same algorithms will be modified to run in parallel. In general, this consists of taking array traversals and running the procedures executed sequentially at the same time on different cores of the GPU. +\subsubsection{GetXsecList} +GetXsecList takes in an array of energy queries, it then sends that array to the GPU to work on. The GPU divides up the work by having each individual thread on the GPU be responsible for a single energy query. Every thread will run the same algorithm that is run on the CPU, but instead they will all be doing it at the same time all checking the same vector for the Xsec corresponding to the energy query that thread has. + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ---- NeutronHPVector