X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/GMRES2stage.git/blobdiff_plain/b86c85516c6889f5d743154ed489941a59ae307b..7363e76514fd9849cdf6d2a17acd7e39414a719e:/IJHPCN/paper.tex

diff --git a/IJHPCN/paper.tex b/IJHPCN/paper.tex
index 4c711cc..4b06bd7 100644
--- a/IJHPCN/paper.tex
+++ b/IJHPCN/paper.tex
@@ -492,7 +492,7 @@ that the proposed TSIRM converges while the GMRES($m$) does not.
 In this section four kinds of experiments have been performed. First, some experiments on real matrices issued from the sparse matrix florida have been achieved out. Second, some experiments in parallel with some linear problems are reported and analyzed. Third, some experiments in parallÃ¨le with som nonlinear problems are illustrated. Finally some parameters of TSIRM are studied in order to understand their influences.
 
 
-\subsection{Real matrices in sequential}
+\subsection{Real matrices}
 %%ENDNEW
 
 
@@ -608,7 +608,7 @@ However, for parallel applications, all  the preconditioners based on matrix fac
 are  not  available. In  our  experiments, we  have  tested  different kinds  of
 preconditioners, but  as it is  not the subject  of this paper, we  will not
 present results with many preconditioners. In  practice, we have chosen to use a
-multigrid (mg)  and successive  over-relaxation (sor). For  further details  on the
+multigrid (MG)  and successive  over-relaxation (SOR). For  further details  on the
 preconditioners in PETSc, readers are referred to~\cite{petsc-web-page}.
 
 
@@ -621,18 +621,18 @@ preconditioners in PETSc, readers are referred to~\cite{petsc-web-page}.
   nb. cores & precond   & \multicolumn{2}{c|}{FGMRES} & \multicolumn{2}{c|}{TSIRM CGLS} &  \multicolumn{2}{c|}{TSIRM LSQR} & best gain \\ 
 \cline{3-8}
              &                       & Time  & \# Iter.  & Time  & \# Iter. & Time  & \# Iter. & \\\hline \hline
-  2,048      & mg                    & 403.49   & 18,210    & 73.89  & 3,060   & 77.84  & 3,270  & 5.46 \\
-  2,048      & sor                   & 745.37   & 57,060    & 87.31  & 6,150   & 104.21 & 7,230  & 8.53 \\
-  4,096      & mg                    & 562.25   & 25,170    & 97.23  & 3,990   & 89.71  & 3,630  & 6.27 \\
-  4,096      & sor                   & 912.12   & 70,194    & 145.57 & 9,750   & 168.97 & 10,980 & 6.26 \\
-  8,192      & mg                    & 917.02   & 40,290    & 148.81 & 5,730   & 143.03 & 5,280  & 6.41 \\
-  8,192      & sor                   & 1,404.53 & 106,530   & 212.55 & 12,990  & 180.97 & 10,470 & 7.76 \\
-  16,384     & mg                    & 1,430.56 & 63,930    & 237.17 & 8,310   & 244.26 & 7,950  & 6.03 \\
-  16,384     & sor                   & 2,852.14 & 216,240   & 418.46 & 21,690  & 505.26 & 23,970 & 6.82 \\
+  2,048      & MG                    & 403.49   & 18,210    & 73.89  & 3,060   & 77.84  & 3,270  & 5.46 \\
+  2,048      & SOR                   & 745.37   & 57,060    & 87.31  & 6,150   & 104.21 & 7,230  & 8.53 \\
+  4,096      & MG                    & 562.25   & 25,170    & 97.23  & 3,990   & 89.71  & 3,630  & 6.27 \\
+  4,096      & SOR                   & 912.12   & 70,194    & 145.57 & 9,750   & 168.97 & 10,980 & 6.26 \\
+  8,192      & MG                    & 917.02   & 40,290    & 148.81 & 5,730   & 143.03 & 5,280  & 6.41 \\
+  8,192      & SOR                   & 1,404.53 & 106,530   & 212.55 & 12,990  & 180.97 & 10,470 & 7.76 \\
+  16,384     & MG                    & 1,430.56 & 63,930    & 237.17 & 8,310   & 244.26 & 7,950  & 6.03 \\
+  16,384     & SOR                   & 2,852.14 & 216,240   & 418.46 & 21,690  & 505.26 & 23,970 & 6.82 \\
 \hline
 
 \end{tabular}
-\caption{Comparison of FGMRES and TSIRM with FGMRES for example ex15 of PETSc/KSP with two preconditioners (mg and sor) having 25,000 components per core on Juqueen ($\epsilon_{tsirm}=1e-3$, $max\_iter_{kryl}=30$, $s=12$, $max\_iter_{ls}=15$, $\epsilon_{ls}=1e-40$),  time is expressed in seconds.}
+\caption{Comparison of FGMRES and TSIRM with FGMRES for example ex15 of PETSc/KSP with two preconditioners (MG and SOR) having 25,000 components per core on Juqueen ($\epsilon_{tsirm}=1e-3$, $max\_iter_{kryl}=30$, $s=12$, $max\_iter_{ls}=15$, $\epsilon_{ls}=1e-40$),  time is expressed in seconds.}
 \label{tab:03}
 \end{center}
 \end{table*}
@@ -640,7 +640,7 @@ preconditioners in PETSc, readers are referred to~\cite{petsc-web-page}.
 Table~\ref{tab:03} shows  the execution  times and the  number of  iterations of
 example ex15  of PETSc on the  Juqueen architecture. Different  numbers of cores
 are studied  ranging from 2,048 up-to  16,383 with the  two preconditioners {\it
-  mg}  and {\it  sor}.   For those  experiments,  the number  of components  (or
+  MG}  and {\it  SOR}.   For those  experiments,  the number  of components  (or
 unknowns  of  the problems)  per  core  is fixed  at  25,000,  also called  weak
 scaling. This number  can seem relatively small. In  fact, for some applications
 that  need a  lot of  memory, the  number of  components per  processor requires
@@ -776,70 +776,198 @@ taken into account with TSIRM.
 \end{figure}
 
 
-%%%*********************************************************
-%%%*********************************************************
+\begin{figure}[htbp]
+\centering
+  \includegraphics[width=0.5\textwidth]{nb_iter_sec_ex45_curie}
+\caption{Number of iterations per second with ex45 and the same parameters as in Table~\ref{tab:06} (weak scaling)}
+\label{fig:03}
+\end{figure}
 
 
 %%NEW
 
-\subsection{Nonlinear problems in parallel}
+{\bf example ex45/ksp Ã  dÃ©crire et commenter en montrant que hypre est pourri avec cet exemple}
 
+\begin{table*}[htbp]
+\begin{center}
+\begin{tabular}{|r|r|r|r|r|r|r|r|} 
+\hline
 
+  nb. cores   & \multicolumn{2}{c|}{FGMRES/ASM} & \multicolumn{2}{c|}{TSIRM CGLS/ASM} & gain& \multicolumn{2}{c|}{FGMRES/HYPRE}   \\ 
+\cline{2-5} \cline{7-8}
+                    & Time  & \# Iter.  & Time  & \# Iter. &        & Time  & \# Iter.   \\\hline \hline
+   512              & 5.54      & 685    & 2.5 &       570 & 2.21   & 128.9 & 9     \\
+   2048             & 14.95     & 1,560  &  4.32 &     746 & 3.48   & 335.7 & 9 \\
+   4096             & 25.13    & 2,369   & 5.61 &   859    & 4.48   & >1000  & -- \\
+   8192             & 44.35   & 3,197   &  7.6  &  1083    &  5.84  & >1000 &  --   \\
 
-\begin{figure}[htbp]
-\centering
-  \includegraphics[width=0.5\textwidth]{nb_iter_sec_ex45_curie}
-\caption{Number of iterations per second with ex45 and the same parameters as in Table~\ref{tab:06} (weak scaling)}
-\label{fig:03}
-\end{figure}
+\hline
+
+\end{tabular}
+\caption{Comparison of FGMRES  and TSIRM for ex45 of PETSc/KSP with two preconditioner (ASM and HYPRE)  having 5,000 components per core on Curie ($\epsilon_{tsirm}=1e-10$, $max\_iter_{kryl}=30$, $s=12$, $max\_iter_{ls}=15$,$\epsilon_{ls}=1e-40$),  time is expressed in seconds.}
+\label{tab:06}
+\end{center}
+\end{table*}
 
 
+\subsection{Parallel nonlinear problems}
+
+With  PETSc,  linear  solvers  are  used inside  nonlinear  solvers.   The  SNES
+(Scalable Nonlinear  Equations Solvers) module  in PETSc implements easy  to use
+methods,  like  Newton-type, quasi-Newton  or  full  approximation scheme  (FAS)
+multigrid to  solve systems of  nonlinears equations.  As  SNES is based  on the
+Krylov methods of PETSc, it is interesting to investigate if the TSIRM method is
+also efficient  and scalable with non  linear problems. In PETSc,  some examples
+are provided.  An important criteria is the scalability of the initial code with
+classical solvers. Consequently, we have chosen  two of these examples: ex14 and
+ex20.  In ex14, the code solves the  Bratu (SFI - solid fuel ignition) nonlinear
+partial  difference equations  in 3  dimension.  In  ex20, the  code solves  a 3
+dimension radiative transport test problem.  For more details on these examples,
+interested readers are invited  to see the code in the  PETSc examples. For both
+these  examples,   a  weak  scaling   case  is  chosen  where   processors  have
+approximately a number of components equals to 100,000.
+
+In Table~\ref{tab:07}  we report the result  of our experiments for  the example
+ex14 with the block Jacobi preconditioner.  For TSIRM the CGLS algorithm is used
+to solve  the minimization step. In  this table, we  can see that the  number of
+iterations used by the linear solver is smaller with TSIRM compared with FGMRES.
+Consequently the execution times are smaller  with TSIRM. The gain between TSIRM
+and FGMRES  is around  6 and  7. The parameters  of TSIRM  are expressed  in the
+caption of the table.
 
 \begin{table*}[htbp]
 \begin{center}
 \begin{tabular}{|r|r|r|r|r|r|} 
 \hline
 
-  nb. cores   & \multicolumn{2}{c|}{FGMRES/BJAC} & \multicolumn{2}{c|}{TSIRM CGLS/BJAC} & gain   \\ 
+  nb. cores   & \multicolumn{2}{c|}{FGMRES/BJAC} & \multicolumn{2}{c|}{TSIRM CGLS/BJAC} & gain  \\ 
 \cline{2-5}
-                    & Time         & \# Iter.  & Time   & \# Iter.  &  \\\hline \hline
-   1024              & 667.92      & 48,732    & 81.65  &     5,087 &  8.18 \\
-   2048             & 966.87       & 77,177    &  90.34 &     5,716 &  10.70\\
-   4096             & 1,742.31     & 124,411   &  119.21 &   6,905  & 14.61\\
-   8192             & 2,739.21     & 187,626   &  168.9  &  9,000   & 16.22\\
+                    & Time         & \# Iter.  & Time   & \# Iter. &  \\\hline \hline
+   1,024              & 159.52      & 11,584    &  26.34  &     1,563  &  6.06  \\
+   2,048             & 226.24       & 16,459    &  37.23 &     2,248   &  6.08\\
+   4,096             & 391.21     & 27,794   &  50.93 &   2,911  &  7.69\\
+   8,192             & 543.23     & 37,770   &  79.21  &  4,324  & 6.86 \\
 
 \hline
 
 \end{tabular}
-\caption{Comparison of FGMRES  and TSIRM for ex20 of PETSc/SNES with a Block Jacobi  preconditioner  having 100,000 components per core on Curie ($\epsilon_{tsirm}=1e-10$, $max\_iter_{kryl}=30$, $s=12$, $max\_iter_{ls}=15$, $\epsilon_{ls}=1e-40$),  time is expressed in seconds.}
+\caption{Comparison of FGMRES  and TSIRM for ex14 of PETSc/SNES with a Block Jacobi  preconditioner  having 100,000 components per core on Curie ($\epsilon_{tsirm}=1e-10$, $max\_iter_{kryl}=30$, $s=12$, $max\_iter_{ls}=15$, $\epsilon_{ls}=1e-40$),  time is expressed in seconds.}
 \label{tab:07}
 \end{center}
 \end{table*}
 
+In Table~\cite{tab:08}, the results of the experiments with the example ex20 are
+reported. The block  Jacobi preconditioner has also been used  and CGLS to solve
+the minimization step for TSIRM. For this example, we can observ that the number
+of  iterations  for  FMGRES  increase  drastically  when  the  number  of  cores
+increases. With  TSIRM, we can  see that the  number of iterations  is initially
+very small compared  to the FGMRES ones  and when the number  of cores increase,
+the number  of iterations increases slighther  with TSIRM than with  FGMRES. For
+this example,  the gain  between TSIRM  and FGMRES ranges  between 8  with 1,024
+cores to more than 16 with 8,192 cores.
+
 \begin{table*}[htbp]
 \begin{center}
 \begin{tabular}{|r|r|r|r|r|r|} 
 \hline
 
-  nb. cores   & \multicolumn{2}{c|}{FGMRES/BJAC} & \multicolumn{2}{c|}{TSIRM CGLS/BJAC} & gain  \\ 
+  nb. cores   & \multicolumn{2}{c|}{FGMRES/BJAC} & \multicolumn{2}{c|}{TSIRM CGLS/BJAC} & gain   \\ 
 \cline{2-5}
-                    & Time         & \# Iter.  & Time   & \# Iter. &  \\\hline \hline
-   1024              & 159.52      & 11,584    &  26.34  &     1,563  &  6.06  \\
-   2048             & 226.24       & 16,459    &  37.23 &     2,248   &  6.08\\
-   4096             & 391.21     & 27,794   &  50.93 &   2,911  &  7.69\\
-   8192             & 543.23     & 37,770   &  79.21  &  4,324  & 6.86 \\
+                    & Time         & \# Iter.  & Time   & \# Iter.  &  \\\hline \hline
+   1,024              & 667.92      & 48,732    & 81.65  &     5,087 &  8.18 \\
+   2,048             & 966.87       & 77,177    &  90.34 &     5,716 &  10.70\\
+   4,096             & 1,742.31     & 124,411   &  119.21 &   6,905  & 14.61\\
+   8,192             & 2,739.21     & 187,626   &  168.9  &  9,000   & 16.22\\
 
 \hline
 
 \end{tabular}
-\caption{Comparison of FGMRES  and TSIRM for ex14 of PETSc/SNES with a Block Jacobi  preconditioner  having 100,000 components per core on Curie ($\epsilon_{tsirm}=1e-10$, $max\_iter_{kryl}=30$, $s=12$, $max\_iter_{ls}=15$, $\epsilon_{ls}=1e-40$),  time is expressed in seconds.}
+\caption{Comparison of FGMRES  and TSIRM for ex20 of PETSc/SNES with a Block Jacobi  preconditioner  having 100,000 components per core on Curie ($\epsilon_{tsirm}=1e-10$, $max\_iter_{kryl}=30$, $s=12$, $max\_iter_{ls}=15$, $\epsilon_{ls}=1e-40$),  time is expressed in seconds.}
 \label{tab:08}
 \end{center}
 \end{table*}
 
 
+
+
+
+
+
+%%NEW
 \subsection{Influence of parameters for TSIRM}
 
+\begin{figure}[htbp]
+\centering
+  \includegraphics[angle=-90,width=0.5\textwidth]{ksp_tsirm_cgls_iter_total}
+\caption{Number of total iterations using two different methods for the minimization: LSQR and CGLS.}
+\label{fig:cgls-iter} 
+\end{figure}
+
+\begin{figure}[htbp]
+\centering
+  \includegraphics[angle=-90,width=0.5\textwidth]{ksp_tsirm_cgls_time}
+\caption{Execution time in seconds using two different methods for the minimization: LSQR and CGLS.}
+\label{fig:cgls-time} 
+\end{figure}
+
+\begin{figure}[htbp]
+\centering
+  \includegraphics[angle=-90,width=0.5\textwidth]{ksp_tsirm_inner_restarts_iter_total}
+\caption{Number of total iterations with variation of restarts in the inner solver FGMRES.}
+\label{fig:inner_restarts_iter_total} 
+\end{figure}
+
+\begin{figure}[htbp]
+\centering
+  \includegraphics[angle=-90,width=0.5\textwidth]{ksp_tsirm_inner_restarts_time}
+\caption{Execution time in seconds with variation of restarts in the inner solver FGMRES.}
+\label{fig:inner_restarts_time} 
+\end{figure}
+
+\begin{figure}[htbp]
+\centering
+  \includegraphics[angle=-90,width=0.5\textwidth]{ksp_tsirm_max_inner_iter}
+\caption{Number of total iterations with variation of number of inner iterations.}
+\label{fig:max_inner_iter} 
+\end{figure}
+
+\begin{figure}[htbp]
+\centering
+  \includegraphics[angle=-90,width=0.5\textwidth]{ksp_tsirm_max_inner_time}
+\caption{Execution time in seconds with variation of number of inner iterations.}
+\label{fig:max_inner_time} 
+\end{figure}
+
+\begin{figure}[htbp]
+\centering
+  \includegraphics[angle=-90,width=0.5\textwidth]{ksp_tsirm_maxiter_ls_iter}
+\caption{Number of total iterations with variation of number of iterations in the minimization process.}
+\label{fig:maxiter_ls_iter} 
+\end{figure}
+
+\begin{figure}[htbp]
+\centering
+  \includegraphics[angle=-90,width=0.5\textwidth]{ksp_tsirm_maxiter_ls_time}
+\caption{Execution time in seconds with variation of number of iterations in the minimization process.}
+\label{fig:maxiter_ls_time} 
+\end{figure}
+
+\begin{figure}[htbp]
+\centering
+  \includegraphics[angle=-90,width=0.5\textwidth]{ksp_tsirm_size_ls_iter}
+\caption{Number of total iterations with variation of the size of the least-squares problem in the minimization process.}
+\label{fig:size_ls_iter} 
+\end{figure}
+
+\begin{figure}[htbp]
+\centering
+  \includegraphics[angle=-90,width=0.5\textwidth]{ksp_tsirm_size_ls_time}
+\caption{Execution time in seconds with variation of the size of the least-squares problem in the minimization process.}
+\label{fig:size_ls_time} 
+\end{figure}
+
+%%ENDNEW
+
 
 
 
