X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/Krylov_multi.git/blobdiff_plain/1415f00e9e6f2294fc28608315516037f2c4e58b..0d162d0a192a8e0e159e831ba451862a05260ee5:/krylov_multi.tex diff --git a/krylov_multi.tex b/krylov_multi.tex index 64b36e0..ea6cfe9 100644 --- a/krylov_multi.tex +++ b/krylov_multi.tex @@ -6,6 +6,12 @@ \usepackage{algorithm} \usepackage{algpseudocode} +\algnewcommand\algorithmicinput{\textbf{Input:}} +\algnewcommand\Input{\item[\algorithmicinput]} + +\algnewcommand\algorithmicoutput{\textbf{Output:}} +\algnewcommand\Output{\item[\algorithmicoutput]} + \title{A scalable multisplitting algorithm for solving large sparse linear systems} @@ -223,10 +229,7 @@ S=\{x^1,x^2,\ldots,x^s\},~s\leq n, \label{sec03:eq04} \end{equation} where for $j\in\{1,\ldots,s\}$, $x^j=[X_1^j,\ldots,X_L^j]$ is a -solution of the global linear system.%The advantage such a method is that the Krylov subspace does not need to be spanned by an orthogonal basis. -The advantage of such a Krylov subspace is that we need neither an -orthogonal basis nor synchronizations between the different clusters -to generate this basis. +solution of the global linear system. The advantage of such a Krylov subspace is that we need neither an orthogonal basis nor synchronizations between the different clusters to generate this basis. The multisplitting method is periodically restarted every $s$ iterations with a new initial guess $\tilde{x}=S\alpha$ which @@ -258,16 +261,18 @@ gradient method for the normal equations CGNR~\cite{S96,refCGNR}. \begin{algorithm}[!t] \caption{A two-stage linear solver with inner iteration GMRES method} \begin{algorithmic}[1] -\State Load $A_l$, $B_l$, initial guess $x^0$ +\Input $A_l$ (local sparse matrix), $B_l$ (local right-hand side), $x^0$ (initial guess) +\Output $X_l$ (local solution vector)\vspace{0.2cm} +\State Load $A_l$, $B_l$, $x^0$ \State Initialize the minimizer $\tilde{x}^0=x^0$ \For {$k=1,2,3,\ldots$ until the global convergence} \State Restart with $x^0=\tilde{x}^{k-1}$: \textbf{for} $j=1,2,\ldots,s$ \textbf{do} \State\hspace{0.5cm} Inner iteration solver: \Call{InnerSolver}{$x^0$, $j$} -\State\hspace{0.5cm} Construct the basis $S$: add the column vector $X_l^j$ to the matrix $S_l$ +\State\hspace{0.5cm} Construct the basis $S$: add the column vector $X_l^j$ to the matrix $S_l^k$ \State\hspace{0.5cm} Exchange the local solution vector $X_l^j$ with the neighboring clusters -\State\hspace{0.5cm} Compute the dense matrix $R$: $R_l^j=\sum^L_{i=1}A_{li}X_i^j$ +\State\hspace{0.5cm} Compute the dense matrix $R$: $R_l^{k,j}=\sum^L_{i=1}A_{li}X_i^j$ \State\textbf{end for} -\State Minimization $\|b-R\alpha\|_2$: \Call{UpdateMinimizer}{$S_l$, $R$, $b$} +\State Minimization $\|b-R\alpha\|_2$: \Call{UpdateMinimizer}{$S_l$, $R$, $b$, $k$} \State Local solution of the linear system $Ax=b$: $X_l^k=\tilde{X}_l^k$ \State Exchange the local minimizer $\tilde{X}_l^k$ with the neighboring clusters \EndFor @@ -276,15 +281,15 @@ gradient method for the normal equations CGNR~\cite{S96,refCGNR}. \Function {InnerSolver}{$x^0$, $j$} \State Compute the local right-hand side: $Y_l = B_l - \sum^L_{i=1,i\neq l}A_{li}X_i^0$ -\State Solving the local splitting $A_{ll}X_l^j=Y_l$ with the parallel GMRES method, such that $X_l^0$ is the initial guess. +\State Solving the local splitting $A_{ll}X_l^j=Y_l$ using the parallel GMRES method, such that $X_l^0$ is the initial guess \State \Return $X_l^j$ \EndFunction \Statex \Function {UpdateMinimizer}{$S_l$, $R$, $b$, $k$} -\State Solving the normal equations $R^TR\alpha=R^Tb$ in parallel by $L$ clusters using the parallel CGNR method -\State Compute the local minimizer: $\tilde{X}_l^k=S_l\alpha$ +\State Solving the normal equations $(R^k)^TR^k\alpha^k=(R^k)^Tb$ in parallel by $L$ clusters using the parallel CGNR method +\State Compute the local minimizer: $\tilde{X}_l^k=S_l^k\alpha^k$ \State \Return $\tilde{X}_l^k$ \EndFunction \end{algorithmic}