From d9b67dec27e5c814c0b3f4587b7fd9648100ce9f Mon Sep 17 00:00:00 2001 From: schnetter Date: Wed, 9 Nov 2005 14:11:14 +0000 Subject: Don't call the API "new API"; the word "new" loses its meaning after some time. Reformat latex source to fit 80 columns. git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/LocalReduce/trunk@69 7daa882c-dc44-4453-834e-278d26b18e6a --- doc/documentation.tex | 81 ++++++++++++++++++++------------------------------- 1 file changed, 32 insertions(+), 49 deletions(-) diff --git a/doc/documentation.tex b/doc/documentation.tex index b05c1a5..2bf7d95 100644 --- a/doc/documentation.tex +++ b/doc/documentation.tex @@ -99,66 +99,49 @@ % Add an abstract for this thorn's documentation \begin{abstract} -Implement reduction operations using the new reduction API. + This thorn implement processor-local reduction operations. \end{abstract} % The following sections are suggestive only. % Remove them or add your own. \section{Introduction} -A local reduction operation can be defined as an operation -on arrays (tuples) of variables resulting in a single number. -Typical reduction operations are sum, minimum/maximum value, and boolean -operations. A typical application is, for example, -finding the minimum value in an n-dimensional array. +A reduction operation can be defined as an operation on arrays +(tuples) of variables resulting in a single number. Typical reduction +operations are sum, minimum/maximum value, and boolean operations. A +typical application is, for example, finding the minimum value in an +$n$-dimensional array. -This implementation of local reduction implements reduction and registers -functions using the new local reduction API as discussed on the developers -mailing lists. -\section{Physical System} +This thorn provides processor-local reduction operations only. Global +reduction operations can make use of these local reduction operations +by providing the necessary inter-processor communication. \section{Numerical Implementation} -The new local reduce thorn has several new features including index strides and offsets -for array indexing and full complex number support. Pending request, weight support -can be enabled (there are some issues that a mask is essentially a weight with 1 or 0 value). - -Modifying or extending this thorn is quite a simple matter. The heart of all the reduction -operations is the large iterator macro in local\_reductions.h. This iterator supports n-dimensional -arrays with offsets and strides. The iterator is used in all local reduction operators in this thorn. -To add a reduction operator, or change an existing one, all that needs to be done is to change the -actual reduction operation definition which is called from within the iterator to perform the reduction. - -To use a custom local reduction operator from the new global reduction implementation, some values -must be returned to the global reduction implementation, such as the type of MPI reduction operation that -needs to be performed (MPI\_SUM, MPI\_MIN, MPI\_MAX) and if the final result should include a division by the -total number of points used in the reduction. These are set in the parameter table with keys: mpi\_operation and perform\_division. +The new local reduce thorn has several new features including index +strides and offsets for array indexing and full complex number +support. Pending request, weight support can be enabled (there are +some issues that a mask is essentially a weight with 1 or 0 value). + +Modifying or extending this thorn is quite a simple matter. The heart +of all the reduction operations is the large iterator macro in +local\_reductions.h. This iterator supports n-dimensional arrays with +offsets and strides. The iterator is used in all local reduction +operators in this thorn. To add a reduction operator, or change an +existing one, all that needs to be done is to change the actual +reduction operation definition which is called from within the +iterator to perform the reduction. + +To use a custom local reduction operator from the new global reduction +implementation, some values must be returned to the global reduction +implementation, such as the type of MPI reduction operation that needs +to be performed (MPI\_SUM, MPI\_MIN, MPI\_MAX) and if the final result +should include a division by the total number of points used in the +reduction. These are set in the parameter table with keys: +mpi\_operation and perform\_division. \section{Using This Thorn} -Please refer to the TestLocalReduce thorn in the CactusTest arrangement. -\subsection{Obtaining This Thorn} - -\subsection{Basic Usage} - -\subsection{Special Behaviour} - -\subsection{Interaction With Other Thorns} - -\subsection{Examples} - -\subsection{Support and Feedback} - -\section{History} - -\subsection{Thorn Source Code} - -\subsection{Thorn Documentation} - -\subsection{Acknowledgements} - - -\begin{thebibliography}{9} - -\end{thebibliography} +Please refer to the TestLocalReduce thorn in the CactusTest +arrangement. % Do not delete next line % END CACTUS THORNGUIDE -- cgit v1.2.3