]> AND Private Git Repository - kahina_paper2.git/commitdiff
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
algo 2
authorzianekhodja <zianekhodja.lilia@gmail.com>
Sun, 17 Jan 2016 18:16:15 +0000 (19:16 +0100)
committerzianekhodja <zianekhodja.lilia@gmail.com>
Sun, 17 Jan 2016 18:16:15 +0000 (19:16 +0100)
paper.tex

index 6d8658fa7d82f412d8fec037ac55f3c93a4e30a9..9733c3d8f8d79250a360d64b04c1f42699048ae4 100644 (file)
--- 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$)\;
 \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}
 }
 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$\;
 \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)\;
 $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$)\;
 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}
   $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
   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}
 
 
 \end{algorithm}