paradiseo/Doxygen doc/latex/eo_parallel_apply_8h.tex
aaziz-alaoui e79679b3c9 adding the problem configuration interface to irace interface
problem_config_mapping created
2020-10-01 15:55:30 +02:00

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.