\hypertarget{coll__sm__allreduce_8c}{\section{ompi/mca/coll/sm/coll\+\_\+sm\+\_\+allreduce.c File Reference}
\label{coll__sm__allreduce_8c}\index{ompi/mca/coll/sm/coll\+\_\+sm\+\_\+allreduce.\+c@{ompi/mca/coll/sm/coll\+\_\+sm\+\_\+allreduce.\+c}}
}
{\ttfamily \#include \char`\"{}ompi\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/constants.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/communicator/communicator.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}coll\+\_\+sm.\+h\char`\"{}}\\*
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{coll__sm__allreduce_8c_a987b8740f8fd7d9e82e33189125fa470}{mca\+\_\+coll\+\_\+sm\+\_\+allreduce\+\_\+intra} (void $\ast$sbuf, void $\ast$rbuf, int count, struct \hyperlink{structompi__datatype__t}{ompi\+\_\+datatype\+\_\+t} $\ast$dtype, struct \hyperlink{structompi__op__t}{ompi\+\_\+op\+\_\+t} $\ast$op, struct \hyperlink{structompi__communicator__t}{ompi\+\_\+communicator\+\_\+t} $\ast$comm, \hyperlink{coll_8h_aa26d67e9c1a6d83345102a7ef73ea7d1}{mca\+\_\+coll\+\_\+base\+\_\+module\+\_\+t} $\ast$module)
\begin{DoxyCompactList}\small\item\em Shared memory allreduce. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Function Documentation}
\hypertarget{coll__sm__allreduce_8c_a987b8740f8fd7d9e82e33189125fa470}{\index{coll\+\_\+sm\+\_\+allreduce.\+c@{coll\+\_\+sm\+\_\+allreduce.\+c}!mca\+\_\+coll\+\_\+sm\+\_\+allreduce\+\_\+intra@{mca\+\_\+coll\+\_\+sm\+\_\+allreduce\+\_\+intra}}
\index{mca\+\_\+coll\+\_\+sm\+\_\+allreduce\+\_\+intra@{mca\+\_\+coll\+\_\+sm\+\_\+allreduce\+\_\+intra}!coll\+\_\+sm\+\_\+allreduce.\+c@{coll\+\_\+sm\+\_\+allreduce.\+c}}
\subsubsection[{mca\+\_\+coll\+\_\+sm\+\_\+allreduce\+\_\+intra}]{\setlength{\rightskip}{0pt plus 5cm}int mca\+\_\+coll\+\_\+sm\+\_\+allreduce\+\_\+intra (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{sbuf, }
\item[{void $\ast$}]{rbuf, }
\item[{int}]{count, }
\item[{struct {\bf ompi\+\_\+datatype\+\_\+t} $\ast$}]{dtype, }
\item[{struct {\bf ompi\+\_\+op\+\_\+t} $\ast$}]{op, }
\item[{struct {\bf ompi\+\_\+communicator\+\_\+t} $\ast$}]{comm, }
\item[{{\bf mca\+\_\+coll\+\_\+base\+\_\+module\+\_\+t} $\ast$}]{module}
\end{DoxyParamCaption}
)}}\label{coll__sm__allreduce_8c_a987b8740f8fd7d9e82e33189125fa470}


Shared memory allreduce. 

For the moment, all we're doing is a reduce to root==0 and then a broadcast. It is possible that we'll do something better someday. 

References mca\+\_\+coll\+\_\+sm\+\_\+bcast\+\_\+intra(), and mca\+\_\+coll\+\_\+sm\+\_\+reduce\+\_\+intra().

