From: zianekhodja Date: Sun, 17 Jan 2016 18:16:15 +0000 (+0100) Subject: algo 2 X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/kahina_paper2.git/commitdiff_plain/cebad47898c16e7229d945e3a8fe361d18316cb4?ds=inline algo 2 --- diff --git a/paper.tex b/paper.tex index 6d8658f..9733c3d 100644 --- a/paper.tex +++ b/paper.tex @@ -239,8 +239,7 @@ Copy $P$, $P'$ and $Z$ from CPU to GPU\; \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$)\; + $\Delta Z_{max}$ = KernelComputeError($Z,Z^{prev},n$)\; } Copy $Z$ from GPU to CPU\; \label{alg1-cuda} @@ -285,27 +284,24 @@ arrays containing all the roots. \KwOut{$Z$ (solution vector of roots)} Initialize the polynomial $P$ and its derivative $P'$\; Set the initial values of vector $Z$\; -Start of a parallel part with OpenMP ($Z$, $\Delta Z$, $\Delta -Z_{max}$, $P$, $P'$ are shared variables)\; +Start of a parallel part with OpenMP ($Z$, $\Delta Z_{max}$, $P$, $P'$ are shared variables)\; $id_{gpu}$ = cudaGetDevice()\; $n_{loc}$ = $n/ngpu$ (local size)\; -%$idx$ = $id_{gpu}\times n_{loc}$ (local offset)\; +$offset$ = $id_{gpu}\times n_{loc}$ (local offset)\; Copy $P$, $P'$ from CPU to GPU\; \While{$max > \epsilon$}{ Copy $Z$ from CPU to GPU\; $Z^{prev}$ = KernelSave($Z,n$)\; - $Z_{loc}$ = KernelUpdate($P,P',Z,n_{loc}$)\; - $\Delta Z_{loc}$ = KernelComputeError($Z_{loc},Z^{prev}_{loc},n_{loc}$)\; - $\Delta Z_{max}[id_{gpu}]$ = CudaMaxFunction($\Delta Z_{loc},n_{loc}$)\; - Copy $Z_{loc}$ from GPU to $Z$ in CPU\; + $Z[offset]$ = KernelUpdate($P,P',Z,n_{loc}$)\; + $\Delta Z_{max}[id_{gpu}]$ = KernelComputeError($Z[offset],Z^{prev}[offset],n_{loc}$)\; + Copy $Z[offset]$ from GPU to $Z$ in CPU\; $max$ = MaxFunction($\Delta Z_{max},ngpu$)\; } \label{alg2-cuda-openmp} -\LZK{J'ai modifié l'algo. Le $P$ est mis shared. Qu'en est-il pour - $P'$?}\RC{Je l'ai rajouté. Bon sinon le n\_loc ne remplace pas +\RC{Je l'ai rajouté. Bon sinon le n\_loc ne remplace pas vraiment un offset et une taille mais bon... et là il y a 4 lignes pour la convergence, c'est bcp ... Zloc, Zmax, max et - testconvergence. On pourrait faire mieux} + testconvergence. On pourrait faire mieux\LZK{Modifié, c'est bon!}} \end{algorithm}