based on PSBLAS}) is a package of parallel algebraic multilevel preconditioners included in the PSCToolkit (Parallel Sparse Computation Toolkit) software framework.
based on PSBLAS}) is a package of parallel algebraic multilevel preconditioners included in the PSCToolkit (Parallel Sparse Computation Toolkit) software framework.
It is a progress of a software development project started in 2007, named MLD2P4, which originally implemented a
It is a progress of a software development project started in 2007, named MLD2P4, which originally implemented a
multilevel version of some domain decomposition preconditioners of additive-Schwarz type and was based on a parallel decoupled version of the well known smoothed
multilevel version of some domain decomposition preconditioners of additive-Schwarz type, and was based on a parallel decoupled version of the well known smoothed
aggregation method to generate the multilevel hierarchy of coarser matrices.
aggregation method to generate the multilevel hierarchy of coarser matrices.
In the last years, within the context of the EU-H2020 EoCoE project (Energy Oriented Center of Excellence), the package was extended for including new algorithms and
In the last years, within the context of the EU-H2020 EoCoE project (Energy Oriented Center of Excellence), the package was extended for including new algorithms and
functionalities for the setup and application new AMG preconditioners with the final aims of improving efficiency and scalability when tens of thousands cores are
functionalities for the setup and application new AMG preconditioners with the final aims of improving efficiency and scalability when tens of thousands cores are
used and of boosting reliability in dealing with general symmetric positive definite linear systems.
used, and of boosting reliability in dealing with general symmetric positive definite linear systems.
Due to the significant number of changes and the increase in scope, we decided to rename the package as AMG4PSBLAS.
Due to the significant number of changes and the increase in scope, we decided to rename the package as AMG4PSBLAS.
AMG4PSBLAS has been designed to provide scalable and easy-to-use preconditioners
AMG4PSBLAS has been designed to provide scalable and easy-to-use preconditioners
@ -125,7 +125,7 @@ must be used by the example program.
The part of the code dealing with reading and assembling the sparse
The part of the code dealing with reading and assembling the sparse
matrix and the right-hand side vector and the deallocation of the
matrix and the right-hand side vector and the deallocation of the
relevant data structured, performed
relevant data structures, performed
through the PSBLAS routines for sparse matrix and vector management, is not reported
through the PSBLAS routines for sparse matrix and vector management, is not reported
here for the sake of conciseness.
here for the sake of conciseness.
The complete code can be found in the example program file \verb|amg_dexample_ml.f90|,
The complete code can be found in the example program file \verb|amg_dexample_ml.f90|,
@ -272,18 +272,24 @@ with block-Jacobi and set by~\fortinline|P%init|.
Furthermore, specifying block-Jacobi as coarsest-level
Furthermore, specifying block-Jacobi as coarsest-level
solver implies that the coarsest-level matrix is distributed
solver implies that the coarsest-level matrix is distributed
among the processes.
among the processes.
Figure~\ref{fig:ex3} shows how to set a W-cycle preconditioner using the Coarsening based on Compatible Weighted Matching. It applies
Figure~\ref{fig:ex3} shows how to set a W-cycle preconditioner using the Coarsening based on Compatible Weighted Matching, aggregates of size at most $8$ and smoothed prolongators. It applies
2 hybrid Gauss-Seidel sweeps as pre- and post-smoother,
2 hybrid Gauss-Seidel sweeps as pre- and post-smoother,
and solves the coarsest-level system with the multifrontal LU factorization
and solves the coarsest-level system with the parallel flexible Conjugate Gradient method (KRM) coupled with the block-Jacobi preconditioner having ILU(0) on the blocks. Default parameters are used for stopping criterion of the coarsest solver.
implemented in MUMPS. It is specified that the coarsest-level
Note that, also in this case, specifying KRM as coarsest-level
matrix is distributed, since MUMPS can be used on both
solver implies that the coarsest-level matrix is distributed
replicated and distributed matrices, and by default
among the processes.
it is used on replicated ones.
%It is specified that the coarsest-level
%matrix is distributed, since MUMPS can be used on both
%replicated and distributed matrices, and by default
%it is used on replicated ones.
%Note the use of the parameter \fortinline|pos|
%Note the use of the parameter \fortinline|pos|
%to specify a property only for the pre-smoother or the post-smoother
%to specify a property only for the pre-smoother or the post-smoother
%(see Section~\ref{sec:precset} for more details).
%(see Section~\ref{sec:precset} for more details).
The code fragments shown in Figures~\ref{fig:ex2} and \ref{fig:ex3} are
The code fragments shown in Figures~\ref{fig:ex2} and \ref{fig:ex3} are
included in the example program file \verb|amg_dexample_ml.f90| too. \textbf{DA CORREGGERE NEL CODICE ESEMPIO 3}
included in the example program file \verb|amg_dexample_ml.f90| too.
Finally, Figure~\ref{fig:ex4} shows the setup of a one-level
Finally, Figure~\ref{fig:ex4} shows the setup of a one-level
additive Schwarz preconditioner, i.e., RAS with overlap 2.
additive Schwarz preconditioner, i.e., RAS with overlap 2.