-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-We did not encounter major blocking problems when adapting the multisplitting algorithm previously described to a simulation environment like SimGrid unless some code
-debugging. Indeed, apart from the review of the program sequence for asynchronous exchanges between processors within a cluster or between clusters, the algorithm was executed successfully with SMPI and provided identical outputs as those obtained with direct execution under MPI. In synchronous
-mode, the execution of the program raised no particular issue but in asynchronous mode, the review of the sequence of MPI\_Isend, MPI\_Irecv and MPI\_Waitall instructions
-and with the addition of the primitive MPI\_Test was needed to avoid a memory fault due to an infinite loop resulting from the non-convergence of the algorithm.
-\CER{On voulait en fait montrer la simplicité de l'adaptation de l'algo a SimGrid. Les problèmes rencontrés décrits dans ce paragraphe concerne surtout le mode async}\LZK{OK. J'aurais préféré avoir un peu plus de détails sur l'adaptation de la version async}
-Note here that the use of SMPI functions optimizer for memory footprint and CPU usage is not recommended knowing that one wants to get real results by simulation.
-As mentioned, upon this adaptation, the algorithm is executed as in the real life in the simulated environment after the following minor changes. First, all declared
-global variables have been moved to local variables for each subroutine. In fact, global variables generate side effects arising from the concurrent access of
-shared memory used by threads simulating each computing unit in the SimGrid architecture. Second, the alignment of certain types of variables such as ``long int'' had
-also to be reviewed.
-\AG{À propos de ces problèmes d'alignement, en dire plus si ça a un intérêt, ou l'enlever.}
- Finally, some compilation errors on MPI\_Waitall and MPI\_Finalize primitives have been fixed with the latest version of SimGrid.
-In total, the initial MPI program running on the simulation environment SMPI gave after a very simple adaptation the same results as those obtained in a real
-environment. We have successfully executed the code in synchronous mode using parallel GMRES algorithm compared with our multisplitting algorithm in asynchronous mode after few modifications.
-
-
-
-\section{Experimental results}
-
-When the \textit{real} application runs in the simulation environment and produces the expected results, varying the input
-parameters and the program arguments allows us to compare outputs from the code execution. We have noticed from this
-study that the results depend on the following parameters:
-\begin{itemize}
-\item At the network level, we found that the most critical values are the
- bandwidth and the network latency.
-\item Hosts power (GFlops) can also influence on the results.
-\item Finally, when submitting job batches for execution, the arguments values
- passed to the program like the maximum number of iterations or the external
- precision are critical. They allow to ensure not only the convergence of the
- algorithm but also to get the main objective of the experimentation of the
- simulation in having an execution time in asynchronous less than in
- synchronous mode. The ratio between the execution time of asynchronous
- compared to the synchronous mode is defined as the \emph{relative gain}. So,
- our objective running the algorithm in SimGrid is to obtain a relative gain
- greater than 1.
- \AG{$t_\text{async} / t_\text{sync} > 1$, l'objectif est donc que ça dure plus
- longtemps (que ça aille moins vite) en asynchrone qu'en synchrone ?
- Ce n'est pas plutôt l'inverse ?}
-\end{itemize}