54 lines
No EOL
4.3 KiB
TeX
54 lines
No EOL
4.3 KiB
TeX
\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. |