From: zianekhodja Date: Sun, 17 Jan 2016 15:42:58 +0000 (+0100) Subject: algo 1 X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/kahina_paper2.git/commitdiff_plain/f14dbd4af021900861f4db5d3fc32570e50e5a2f algo 1 --- diff --git a/paper.tex b/paper.tex index 2ee181a..b579c69 100644 --- a/paper.tex +++ b/paper.tex @@ -1,17 +1,8 @@ - - - \documentclass[conference]{IEEEtran} - \usepackage[ruled,vlined]{algorithm2e} - - \hyphenation{op-tical net-works semi-conduc-tor} - \bibliographystyle{IEEEtran} - - \usepackage{amsfonts} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} @@ -123,7 +114,7 @@ This latter approach is more used on clusters to solve very complex problems tha \LZK{Pas d'autres contributions possibles? J'ai supprimé les deux premiers points proposés précédemment.} The paper is organized as follows. In Section~\ref{sec2} we present three different parallel programming models OpenMP, MPI and CUDA. In Section~\ref{sec3} we present the implementation of the Ehrlich-Aberth algorithm on a single GPU. In Section~\ref{sec4} we present the parallel implementations of the Ehrlich-Aberth algorithm on multiple GPUs using the OpenMP and MPI approaches. In section~\ref{sec5} we present our experiments and discuss them. Finally, Section~\ref{sec6} concludes this paper and gives some hints for future research directions in this topic. -%\LZK{A revoir toute cette organization: je viens de la revoir} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -247,20 +238,15 @@ implementation of Ehrlich-Aberth method. Initialize the polynomial $P$ and its derivative $P'$\; Set the initial values of vector $Z$\; Copy $P$, $P'$ and $Z$ from CPU to GPU\; -\While{\emph{not convergence}}{ +\While{$\Delta Z_{max} > \epsilon$}{ $Z^{prev}$ = KernelSave($Z,n$)\; $Z$ = KernelUpdate($P,P',Z,n$)\; $\Delta Z$ = KernelComputeError($Z,Z^{prev},n$)\; $\Delta Z_{max}$ = CudaMaxFunction($\Delta Z,n$)\; - TestConvergence($\Delta Z_{max},\epsilon$)\; } Copy $Z$ from GPU to CPU\; \label{alg1-cuda} -\LZK{J'ai modifié l'algo. Sinon, est ce qu'on doit mettre en paramètre - $Z^{prev}$ ou $Z$ tout court (dans le cas où on exploite - l'asynchronisme des threads cuda!) pour le Kernel\_Update? } -\RC{Le $Z_{prev}$ sert à calculer l'erreur donc j'ai remis Z. La ligne -avec TestConvergence ca fait une ligne de plus.} +\RC{La ligne avec TestConvergence ca fait une ligne de plus.\LZK{Oui j'ai hésité à l'ajouter. On peut faire le test dans la condition de while mais quelle est la valeur initiale de $\Delta Z_{max}$?! Ou bien on s'en fiche?}} \end{algorithm}