\hypertarget{eo_parallel_apply_8h}{}\doxysection{eo/src/mpi/eo\+Parallel\+Apply.h File Reference} \label{eo_parallel_apply_8h}\index{eo/src/mpi/eoParallelApply.h@{eo/src/mpi/eoParallelApply.h}} Applies a functor with single parameter to elements of a table, in a parallel fashion. {\ttfamily \#include \char`\"{}eo\+Mpi.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}../eo\+Functor.\+h\char`\"{}}\newline {\ttfamily \#include $<$vector$>$}\newline Include dependency graph for eo\+Parallel\+Apply.\+h\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{eo_parallel_apply_8h__incl} \end{center} \end{figure} \doxysubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structeo_1_1mpi_1_1_parallel_apply_assignment}{eo\+::mpi\+::\+Parallel\+Apply\+Assignment}} \begin{DoxyCompactList}\small\item\em Structure used to save assignment to a worker, i.\+e which slice of the table it has to process. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structeo_1_1mpi_1_1_parallel_apply_data}{eo\+::mpi\+::\+Parallel\+Apply\+Data$<$ E\+O\+T $>$}} \begin{DoxyCompactList}\small\item\em Data useful for a parallel apply (map). \end{DoxyCompactList}\item class \mbox{\hyperlink{classeo_1_1mpi_1_1_send_task_parallel_apply}{eo\+::mpi\+::\+Send\+Task\+Parallel\+Apply$<$ E\+O\+T $>$}} \begin{DoxyCompactList}\small\item\em Send task functor implementation for the parallel apply (map) job. \end{DoxyCompactList}\item class \mbox{\hyperlink{classeo_1_1mpi_1_1_handle_response_parallel_apply}{eo\+::mpi\+::\+Handle\+Response\+Parallel\+Apply$<$ E\+O\+T $>$}} \begin{DoxyCompactList}\small\item\em Handle response functor implementation for the parallel apply (map) job. \end{DoxyCompactList}\item class \mbox{\hyperlink{classeo_1_1mpi_1_1_process_task_parallel_apply}{eo\+::mpi\+::\+Process\+Task\+Parallel\+Apply$<$ E\+O\+T $>$}} \begin{DoxyCompactList}\small\item\em Process task functor implementation for the parallel apply (map) job. \end{DoxyCompactList}\item class \mbox{\hyperlink{classeo_1_1mpi_1_1_is_finished_parallel_apply}{eo\+::mpi\+::\+Is\+Finished\+Parallel\+Apply$<$ E\+O\+T $>$}} \begin{DoxyCompactList}\small\item\em Is finished functor implementation for the parallel apply (map) job. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structeo_1_1mpi_1_1_parallel_apply_store}{eo\+::mpi\+::\+Parallel\+Apply\+Store$<$ E\+O\+T $>$}} \begin{DoxyCompactList}\small\item\em Store containing all the datas and the functors for the parallel apply (map) job. \end{DoxyCompactList}\item class \mbox{\hyperlink{classeo_1_1mpi_1_1_parallel_apply}{eo\+::mpi\+::\+Parallel\+Apply$<$ E\+O\+T $>$}} \begin{DoxyCompactList}\small\item\em Parallel apply job. Present for convenience only. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection*{Namespaces} \begin{DoxyCompactItemize} \item \mbox{\hyperlink{namespaceeo_1_1mpi}{eo\+::mpi}} \begin{DoxyCompactList}\small\item\em M\+PI parallelization helpers for \mbox{\hyperlink{class_e_o}{EO}}. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Detailed Description} Applies a functor with single parameter to elements of a table, in a parallel fashion. This file contains all the required classes to do a parallel apply of a table, in a parallel fashion. This can be very useful when applying the function can be made without any dependances within the data. In \mbox{\hyperlink{class_e_o}{EO}}, it occurs in particular during the evaluation\+: the number of individuals to evaluate can be really high, and the evaluation of one individual is independant from the evaluation of other individuals. Elements in the table are directly replaced, as the table is given by reference. No new table is made during the process. User can tune this job, indicating how many elements of the table should be sent and evaluated by a worker, at a time\+: this is called the \char`\"{}packet size\char`\"{}, as individuals are groupped into a packet of individuals which are sent to the worker before evaluation. The problem of choosing the optimal packet size is beyond the purposes of this documentation and deserves a theoritical study. This job is the parallel equivalent to the function apply$<$\+E\+O\+T$>$, defined in apply.\+h. It just applies the function to every element of a table. In Python or Javascript, it\textquotesingle{}s the equivalent of the function Map.