\hypertarget{classmpi_1_1communicator}{}\doxysection{mpi\+::communicator Class Reference} \label{classmpi_1_1communicator}\index{mpi::communicator@{mpi::communicator}} Main object, used to send / receive messages, get informations about the rank and the size of the world, etc. {\ttfamily \#include $<$impl\+Mpi.\+h$>$} \doxysubsection*{Public Member Functions} \begin{DoxyCompactItemize} \item \mbox{\hyperlink{classmpi_1_1communicator_a0e17d90b784f078d3e22a488290cb6aa}{communicator}} () \item \mbox{\Hypertarget{classmpi_1_1communicator_abc438dc60bc424067cfc82b3b6eecbd6}\label{classmpi_1_1communicator_abc438dc60bc424067cfc82b3b6eecbd6}} int \mbox{\hyperlink{classmpi_1_1communicator_abc438dc60bc424067cfc82b3b6eecbd6}{rank}} () \begin{DoxyCompactList}\small\item\em Returns the M\+PI rank of the current process. \end{DoxyCompactList}\item \mbox{\Hypertarget{classmpi_1_1communicator_ad4b5063daa1c5ea994c619af9bce2470}\label{classmpi_1_1communicator_ad4b5063daa1c5ea994c619af9bce2470}} int \mbox{\hyperlink{classmpi_1_1communicator_ad4b5063daa1c5ea994c619af9bce2470}{size}} () \begin{DoxyCompactList}\small\item\em Returns the size of the M\+PI cluster. \end{DoxyCompactList}\item void \mbox{\hyperlink{classmpi_1_1communicator_a754ec08b0baba5515ab1877720efcc32}{send}} (int dest, int tag, int n) \begin{DoxyCompactList}\small\item\em Sends an integer to dest on channel \char`\"{}tag\char`\"{}. \end{DoxyCompactList}\item \mbox{\Hypertarget{classmpi_1_1communicator_acd3145216115067746ceb72425bbb8bb}\label{classmpi_1_1communicator_acd3145216115067746ceb72425bbb8bb}} void {\bfseries recv} (int src, int tag, int \&n) \item void \mbox{\hyperlink{classmpi_1_1communicator_aefdfd31985d0078e4823e76bbd0ca71f}{send}} (int dest, int tag, const std\+::string \&str) \begin{DoxyCompactList}\small\item\em Sends a string to dest on channel \char`\"{}tag\char`\"{}. \end{DoxyCompactList}\item \mbox{\Hypertarget{classmpi_1_1communicator_a9d358c04f6678b1d50bb1e4662a4a6b0}\label{classmpi_1_1communicator_a9d358c04f6678b1d50bb1e4662a4a6b0}} void {\bfseries recv} (int src, int tag, std\+::string \&str) \item void \mbox{\hyperlink{classmpi_1_1communicator_ad8c781d33476d0044411a95a93f6a093}{send}} (int dest, int tag, const \mbox{\hyperlink{classeoserial_1_1_persistent}{eoserial\+::\+Persistent}} \&persistent) \begin{DoxyCompactList}\small\item\em Sends an \mbox{\hyperlink{classeoserial_1_1_persistent}{eoserial\+::\+Persistent}} to dest on channel \char`\"{}tag\char`\"{}. \end{DoxyCompactList}\item {\footnotesize template$<$class T $>$ }\\void \mbox{\hyperlink{classmpi_1_1communicator_a10e1845d471961e6f7360fb4c146a71e}{send}} (int dest, int tag, T $\ast$table, int \mbox{\hyperlink{classmpi_1_1communicator_ad4b5063daa1c5ea994c619af9bce2470}{size}}) \begin{DoxyCompactList}\small\item\em Sends an array of \mbox{\hyperlink{classeoserial_1_1_persistent}{eoserial\+::\+Persistent}} to dest on channel \char`\"{}tag\char`\"{}. \end{DoxyCompactList}\item \mbox{\Hypertarget{classmpi_1_1communicator_ac02b81071d3cf3743c1efc9f4ff8dceb}\label{classmpi_1_1communicator_ac02b81071d3cf3743c1efc9f4ff8dceb}} void {\bfseries recv} (int src, int tag, \mbox{\hyperlink{classeoserial_1_1_persistent}{eoserial\+::\+Persistent}} \&persistent) \item \mbox{\Hypertarget{classmpi_1_1communicator_a4f70d212503450be1581aefb4db70733}\label{classmpi_1_1communicator_a4f70d212503450be1581aefb4db70733}} {\footnotesize template$<$class T $>$ }\\void {\bfseries recv} (int src, int tag, T $\ast$table, int \mbox{\hyperlink{classmpi_1_1communicator_ad4b5063daa1c5ea994c619af9bce2470}{size}}) \item \mbox{\hyperlink{classmpi_1_1status}{status}} \mbox{\hyperlink{classmpi_1_1communicator_a55160c34352ce5df924e81c1fb3b3287}{probe}} (int src=\mbox{\hyperlink{group___parallel_ga9c4a827de4c8d1026de65fc91ed989e0}{any\+\_\+source}}, int tag=\mbox{\hyperlink{group___parallel_gaa60c80af67fe827d0338f4da95fcbd26}{any\+\_\+tag}}) \begin{DoxyCompactList}\small\item\em Wrapper for M\+P\+I\+\_\+\+Probe. \end{DoxyCompactList}\item void \mbox{\hyperlink{classmpi_1_1communicator_a3ea5211743a9c25579511f78a48f1d05}{barrier}} () \begin{DoxyCompactList}\small\item\em Wrapper for M\+P\+I\+\_\+\+Barrier. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Detailed Description} Main object, used to send / receive messages, get informations about the rank and the size of the world, etc. \doxysubsection{Constructor \& Destructor Documentation} \mbox{\Hypertarget{classmpi_1_1communicator_a0e17d90b784f078d3e22a488290cb6aa}\label{classmpi_1_1communicator_a0e17d90b784f078d3e22a488290cb6aa}} \index{mpi::communicator@{mpi::communicator}!communicator@{communicator}} \index{communicator@{communicator}!mpi::communicator@{mpi::communicator}} \doxysubsubsection{\texorpdfstring{communicator()}{communicator()}} {\footnotesize\ttfamily mpi\+::communicator\+::communicator (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} Creates the communicator, using the whole world as a M\+P\+I\+\_\+\+Comm. \begin{DoxyRefDesc}{Todo} \item[\mbox{\hyperlink{todo__todo000033}{Todo}}]Allow the user to precise which M\+P\+I\+\_\+\+Comm to use \end{DoxyRefDesc} \doxysubsection{Member Function Documentation} \mbox{\Hypertarget{classmpi_1_1communicator_a3ea5211743a9c25579511f78a48f1d05}\label{classmpi_1_1communicator_a3ea5211743a9c25579511f78a48f1d05}} \index{mpi::communicator@{mpi::communicator}!barrier@{barrier}} \index{barrier@{barrier}!mpi::communicator@{mpi::communicator}} \doxysubsubsection{\texorpdfstring{barrier()}{barrier()}} {\footnotesize\ttfamily void mpi\+::communicator\+::barrier (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} Wrapper for M\+P\+I\+\_\+\+Barrier. \mbox{\Hypertarget{classmpi_1_1communicator_a55160c34352ce5df924e81c1fb3b3287}\label{classmpi_1_1communicator_a55160c34352ce5df924e81c1fb3b3287}} \index{mpi::communicator@{mpi::communicator}!probe@{probe}} \index{probe@{probe}!mpi::communicator@{mpi::communicator}} \doxysubsubsection{\texorpdfstring{probe()}{probe()}} {\footnotesize\ttfamily \mbox{\hyperlink{classmpi_1_1status}{status}} mpi\+::communicator\+::probe (\begin{DoxyParamCaption}\item[{int}]{src = {\ttfamily \mbox{\hyperlink{group___parallel_ga9c4a827de4c8d1026de65fc91ed989e0}{any\+\_\+source}}}, }\item[{int}]{tag = {\ttfamily \mbox{\hyperlink{group___parallel_gaa60c80af67fe827d0338f4da95fcbd26}{any\+\_\+tag}}} }\end{DoxyParamCaption})} Wrapper for M\+P\+I\+\_\+\+Probe. Waits for a message to come from process having rank src, on the channel tag. \begin{DoxyParams}{Parameters} {\em src} & M\+PI rank of the sender (any\+\_\+source if it can be any sender) \\ \hline {\em tag} & M\+PI tag of the expected message (any\+\_\+tag if it can be any tag) \\ \hline \end{DoxyParams} \mbox{\Hypertarget{classmpi_1_1communicator_ad8c781d33476d0044411a95a93f6a093}\label{classmpi_1_1communicator_ad8c781d33476d0044411a95a93f6a093}} \index{mpi::communicator@{mpi::communicator}!send@{send}} \index{send@{send}!mpi::communicator@{mpi::communicator}} \doxysubsubsection{\texorpdfstring{send()}{send()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}} {\footnotesize\ttfamily void mpi\+::communicator\+::send (\begin{DoxyParamCaption}\item[{int}]{dest, }\item[{int}]{tag, }\item[{const \mbox{\hyperlink{classeoserial_1_1_persistent}{eoserial\+::\+Persistent}} \&}]{persistent }\end{DoxyParamCaption})} Sends an \mbox{\hyperlink{classeoserial_1_1_persistent}{eoserial\+::\+Persistent}} to dest on channel \char`\"{}tag\char`\"{}. \begin{DoxyParams}{Parameters} {\em dest} & M\+PI rank of the receiver \\ \hline {\em tag} & M\+PI tag of message \\ \hline {\em persistent} & The object to send (it must absolutely implement \mbox{\hyperlink{classeoserial_1_1_persistent}{eoserial\+::\+Persistent}}) \\ \hline \end{DoxyParams} \mbox{\Hypertarget{classmpi_1_1communicator_aefdfd31985d0078e4823e76bbd0ca71f}\label{classmpi_1_1communicator_aefdfd31985d0078e4823e76bbd0ca71f}} \index{mpi::communicator@{mpi::communicator}!send@{send}} \index{send@{send}!mpi::communicator@{mpi::communicator}} \doxysubsubsection{\texorpdfstring{send()}{send()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}} {\footnotesize\ttfamily void mpi\+::communicator\+::send (\begin{DoxyParamCaption}\item[{int}]{dest, }\item[{int}]{tag, }\item[{const std\+::string \&}]{str }\end{DoxyParamCaption})} Sends a string to dest on channel \char`\"{}tag\char`\"{}. \begin{DoxyParams}{Parameters} {\em dest} & M\+PI rank of the receiver \\ \hline {\em tag} & M\+PI tag of message \\ \hline {\em str} & The std\+::string to send \\ \hline \end{DoxyParams} \mbox{\Hypertarget{classmpi_1_1communicator_a754ec08b0baba5515ab1877720efcc32}\label{classmpi_1_1communicator_a754ec08b0baba5515ab1877720efcc32}} \index{mpi::communicator@{mpi::communicator}!send@{send}} \index{send@{send}!mpi::communicator@{mpi::communicator}} \doxysubsubsection{\texorpdfstring{send()}{send()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}} {\footnotesize\ttfamily void mpi\+::communicator\+::send (\begin{DoxyParamCaption}\item[{int}]{dest, }\item[{int}]{tag, }\item[{int}]{n }\end{DoxyParamCaption})} Sends an integer to dest on channel \char`\"{}tag\char`\"{}. \begin{DoxyParams}{Parameters} {\em dest} & M\+PI rank of the receiver \\ \hline {\em tag} & M\+PI tag of message \\ \hline {\em n} & The integer to send \\ \hline \end{DoxyParams} \mbox{\Hypertarget{classmpi_1_1communicator_a10e1845d471961e6f7360fb4c146a71e}\label{classmpi_1_1communicator_a10e1845d471961e6f7360fb4c146a71e}} \index{mpi::communicator@{mpi::communicator}!send@{send}} \index{send@{send}!mpi::communicator@{mpi::communicator}} \doxysubsubsection{\texorpdfstring{send()}{send()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}} {\footnotesize\ttfamily template$<$class T $>$ \\ void mpi\+::communicator\+::send (\begin{DoxyParamCaption}\item[{int}]{dest, }\item[{int}]{tag, }\item[{T $\ast$}]{table, }\item[{int}]{size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} Sends an array of \mbox{\hyperlink{classeoserial_1_1_persistent}{eoserial\+::\+Persistent}} to dest on channel \char`\"{}tag\char`\"{}. \begin{DoxyParams}{Parameters} {\em dest} & M\+PI rank of the receiver \\ \hline {\em tag} & M\+PI tag of message \\ \hline {\em table} & The array of \mbox{\hyperlink{classeoserial_1_1_persistent}{eoserial\+::\+Persistent}} objects \\ \hline {\em size} & The number of elements to send (no check is done, the user has to be sure that the size won\textquotesingle{}t overflow!) \\ \hline \end{DoxyParams} The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} \item eo/src/mpi/impl\+Mpi.\+h\item eo/src/mpi/impl\+Mpi.\+cpp\end{DoxyCompactItemize}