mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
Added Polynomial Smoother infos
This commit is contained in:
@@ -92,8 +92,14 @@ P.~D'Ambra, S.~Filippone and P.\,S.~Vassilevski,
|
||||
ACM Transactions on Mathematical Software, 44, (2018) 39:1--39:25.
|
||||
%
|
||||
\bibitem{DDF2020}
|
||||
P.~D'Ambra, F~Durastante, S.~Filippone,
|
||||
\emph{AMG preconditioners for Linear Solvers towards Extreme Scale}, 2020, \href{https://arxiv.org/abs/2006.16147v3arXiv:2006.16147v2}{arXiv:2006.16147v3}.
|
||||
P.~D'Ambra, F.~Durastante, S.~Filippone,
|
||||
\emph{AMG preconditioners for Linear Solvers towards Extreme Scale},
|
||||
SIAM Journal on Scientific Computing 43, no. 5 (2021): S679-S703.
|
||||
%
|
||||
\bibitem{DDFMT2024}
|
||||
P.~D'Ambra, F.~Durastante, S.~Filippone, S.~Massei, S.~Thomas
|
||||
\emph{Optimal Polynomial Smoothers for Parallel AMG}, 2024,
|
||||
\href{https://arxiv.org/abs/2407.09848}{arXiv:2407.09848}.
|
||||
%
|
||||
\bibitem{UMFPACK}
|
||||
T.~A.~Davis,
|
||||
@@ -165,6 +171,11 @@ C.~L.~Lawson, R.~J.~Hanson, D.~Kincaid, F.~T.~Krogh,
|
||||
\emph{Basic Linear Algebra Subprograms for FORTRAN usage},
|
||||
ACM Transactions on Mathematical Software, 5 (3), 1979, 308--323.
|
||||
%
|
||||
\bibitem{LOTTES}
|
||||
J.~Lottes,
|
||||
\emph{Optimal polynomial smoothers for multigrid V‐cycles},
|
||||
Numerical Linear Algebra with Applications 30.6 (2023): e2518.
|
||||
%
|
||||
\bibitem{SUPERLUDIST}
|
||||
X.~S.~Li, J.~W.~Demmel,
|
||||
{\em SuperLU\_DIST: A Scalable Distributed-memory
|
||||
|
||||
+31
-14
@@ -62,20 +62,37 @@ interfaces compatible with AMG4PSBLAS; usually this means that they
|
||||
should all be built with the same compiler being used for AMG4PSBLAS.
|
||||
|
||||
If you want to use the PSBLAS support for NVIDIA GPUs, you will also
|
||||
need:
|
||||
\begingroup
|
||||
\sloppy
|
||||
\begin{description}
|
||||
\item[PSBLAS-EXT] Parallel Sparse BLAS (PSBLAS) Extensions,
|
||||
available from
|
||||
\href{https://psctoolkit.github.io/products/psblasext/}{psctoolkit.github.io/products/psblasext/}; version 1.3.0 (or later).
|
||||
\item[SPGPU] Sparse CUDA kernels for NVIDIA GPUs; available from
|
||||
GitHub, see also
|
||||
\href{https://psctoolkit.github.io/products/psblasext/}{psctoolkit.github.io/products/psblasext/}.
|
||||
\end{description}
|
||||
See also Sec~\ref{sec:gpu-example}.
|
||||
\endgroup
|
||||
|
||||
need a working version of the CUDA Toolkit that is compatible with the
|
||||
compiler choice made to compile PSBLAS and AMG4PSBLAS.
|
||||
After that you will need to have configured and compiled the PSBLAS library
|
||||
with the options:
|
||||
%\begingroup
|
||||
%\sloppy
|
||||
%\begin{description}
|
||||
% \item[PSBLAS-EXT] Parallel Sparse BLAS (PSBLAS) Extensions,
|
||||
% available from
|
||||
% \href{https://psctoolkit.github.io/products/psblasext/}{psctoolkit.github.io/products/psblasext/}; version 1.3.0 (or later).
|
||||
% \item[SPGPU] Sparse CUDA kernels for NVIDIA GPUs; available from
|
||||
% GitHub, see also
|
||||
% \href{https://psctoolkit.github.io/products/psblasext/}{psctoolkit.github.io/products/psblasext/}.
|
||||
% \end{description}
|
||||
%
|
||||
%\endgroup
|
||||
\ifpdf
|
||||
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
|
||||
./configure --enable-cuda --with-cudadir=${CUDA_HOME} --with-cudacc=xx,yy,zz
|
||||
\end{minted}
|
||||
\else
|
||||
{\small
|
||||
\begin{verbatim}
|
||||
./configure --enable-cuda --with-cudadir=${CUDA_HOME} --with-cudacc=xx,yy,zz
|
||||
\end{verbatim}
|
||||
}
|
||||
\fi
|
||||
Previous versions required you to have the auxiliary libraries SPGPU and PSBLAS-EXT compiled,
|
||||
this is no longer necessary because they have been integrated into PSBLAS and are compiled
|
||||
by activating the previous flags during configuration. See also Sec~\ref{sec:gpu-example}.
|
||||
|
||||
\subsection{Optional third party libraries\label{sec:third-party}}
|
||||
|
||||
We provide interfaces to the following third-party software libraries;
|
||||
|
||||
@@ -573,12 +573,12 @@ level (continued).\label{tab:p_coarse_1}}
|
||||
|
||||
\fortinline|'SMOOTHER_TYPE'| & \fortinline|character(len=*)|
|
||||
& \fortinline|'JACOBI'| \par \fortinline|'GS'| \par \fortinline|'BGS'| \par \fortinline|'BJAC'|
|
||||
\par \fortinline|'AS'| \par \fortinline|'L1-JACOBI'| \par \fortinline|'L1-BJAC'| \par \fortinline|'L1-FBGS'|
|
||||
& \fortinline|'FBGS'|
|
||||
\par \fortinline|'AS'| \par \fortinline|'L1-JACOBI'| \par \fortinline|'L1-BJAC'| \par \fortinline|'L1-FBGS'| \par \fortinline|'POLY'|
|
||||
& \fortinline|'FBGS'|
|
||||
& Type of smoother used in the multilevel preconditioner:
|
||||
point-Jacobi, hybrid (forward) Gauss-Seidel,
|
||||
hybrid backward Gauss-Seidel, block-Jacobi, $\ell_1$-Jacobi, $\ell_1$--hybrid (forward) Gauss-Seidel, $\ell_1$-point-Jacobi and
|
||||
Additive Schwarz. \par
|
||||
Additive Schwarz, polynomial accelerators; see~\cite{DDFMT2024} \par
|
||||
It is ignored by one-level preconditioners. \\ \hline
|
||||
\fortinline|'SUB_SOLVE'| & \fortinline|character(len=*)|
|
||||
& \fortinline|'JACOBI'|
|
||||
@@ -612,12 +612,11 @@ level (continued).\label{tab:p_coarse_1}}
|
||||
In the multilevel case, no pre-smother or
|
||||
post-smoother is used if this parameter is set to 0
|
||||
together with \fortinline|pos='PRE'| or \fortinline|pos='POST'|,
|
||||
respectively. \\ \hline
|
||||
\fortinline|'SUB_OVR'| & \fortinline|integer|
|
||||
& Any integer \par number~$\ge 0$
|
||||
& 1
|
||||
& Number of overlap layers, for Additive Schwarz only. \\
|
||||
\hline
|
||||
respectively. Is ignored if the smoother is \fortinline|'POLY'| \\ \hline
|
||||
\fortinline|'POLY_DEGREE'| & \fortinline|integer|
|
||||
& Any integer \par number~$\ge 1$ and~$\le 30$
|
||||
& 1
|
||||
& Degree of the polynomial accelerator, is equal to the number of matrix-vector products performed by the smoother. Is ignored if the smoother is not \fortinline|'POLY'|\\ \hline
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\caption{Parameters defining the smoother or the details of the one-level preconditioner.
|
||||
@@ -631,6 +630,10 @@ level (continued).\label{tab:p_coarse_1}}
|
||||
\hline
|
||||
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
|
||||
\textsc{comments} \\ \hline
|
||||
\fortinline|'SUB_OVR'| & \fortinline|integer|
|
||||
& Any integer \par number~$\ge 0$
|
||||
& 1
|
||||
& Number of overlap layers, for Additive Schwarz only. \\
|
||||
\fortinline|'SUB_RESTR'| & \fortinline|character(len=*)|
|
||||
& \fortinline|'HALO'| \par \fortinline|'NONE'|
|
||||
& \fortinline|'HALO'|
|
||||
@@ -679,6 +682,26 @@ level (continued).\label{tab:p_coarse_1}}
|
||||
(continued).\label{tab:p_smoother_1}}
|
||||
\esideways
|
||||
|
||||
\bsideways
|
||||
\begin{center}
|
||||
\small
|
||||
\begin{tabular}{|p{5.4cm}|l|p{3.5cm}|p{3.5cm}|p{3.55cm}|}
|
||||
\hline
|
||||
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
|
||||
\textsc{comments} \\ \hline
|
||||
\fortinline|'POLY_VARIANT'| & \fortinline|character(len=*)|
|
||||
& \fortinline|'CHEB_4'| \par \fortinline|'CHEB_4_OPT'| \par \fortinline|'CHEB_1_OPT'|
|
||||
& \fortinline|'CHEB_4'|
|
||||
& Select the type of polynomial accelerator. The \fortinline|'CHEB_4'| and \fortinline|'CHEB_4_OPT'| types are those based on the Chebyshev polynomials of the 4\textsuperscript{th}-kind described in~\cite{LOTTES}. The \fortinline|'CHEB_1_OPT'| version is the one described in~\cite{DDFMT2024} and based on the Chebyshev polynomials of the 1\textsuperscript{st}-kind.\\ \hline
|
||||
\fortinline|'POLY_RHO_ESTIMATE'| & \fortinline|character(len=*)| & \fortinline|'POLY_RHO_EST_POWER'| & \fortinline|'POLY_RHO_EST_POWER'| & Algorithm for estimating the spectral radius of the smoother to which the polynomial acceleration is applied. The only implemented algorithm is the power method; see also the two following options. \\ \hline
|
||||
\fortinline|'POLY_RHO_ESTIMATE_ITERATIONS'| & \fortinline|integer| & Any integer\par number $\ge 1$ & 20 & Number of iterations for the spectral radius estimate.\\ \hline
|
||||
\fortinline|'POLY_RHO_BA'| & \fortinline|real(kind_parameter)| & Any real\par number $\in (0,1]$ & 1 & Sets an estimate of the spectral radius of the base smoother to which the polynomial accelerator is applied.\\
|
||||
\hline
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\caption{Parameters defining the smoother or the details of the one-level preconditioner
|
||||
(continued).\label{tab:p_smoother_2}}
|
||||
\esideways
|
||||
|
||||
\clearpage
|
||||
|
||||
|
||||
Reference in New Issue
Block a user