diff --git a/docs/amg4psblas_1.0-guide.pdf b/docs/amg4psblas_1.0-guide.pdf index 6bba698e..01b3fc1e 100644 Binary files a/docs/amg4psblas_1.0-guide.pdf and b/docs/amg4psblas_1.0-guide.pdf differ diff --git a/docs/html/index.html b/docs/html/index.html index 43741db1..2d1ac7b7 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -3,8 +3,8 @@
@article{DDF2021, -
author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore}, -
title = {{{AMG Preconditioners for Linear Solvers towards Extreme Scale}}, -
journal = {arXiv e-preprints}, -
eprint = {2006.16147v3}, -
archivePrefix = {arXiv}, -
year={2021} -
} -
-
@Misc{psctoolkit-web-page, -
author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore}, -
title = {{PSCToolkit} {W}eb page}, -
url = {https://psctoolkit.github.io/}, -
howpublished = {\url{https://psctoolkit.github.io/}}, -
year = {2021} -
} -
diff --git a/docs/html/userhtmlli5.html b/docs/html/userhtmlli5.html index 7203781c..b9362d17 100644 --- a/docs/html/userhtmlli5.html +++ b/docs/html/userhtmlli5.html @@ -3,8 +3,8 @@
string
der
’NONE’
Considered to use the PSBLAS Krylov solvers with no preconditioner.
’DIAG’L1-JACOBI’
Diagonal preconditioner. For any zero diagonal entry of the matrix to be preconditioned, the corresponding entry @@ -309,7 +309,7 @@ of the preconditioner is set to 1.
’GS’L1-GS’
Hybrid Gauss-Seidel (forward), that is, global block Jacobi with Gauss-Seidel as local solver.
’FBGS’L1-FBGS’
Symmetrized hybrid Gauss-Seidel, that is, forward Gauss-Seidel followed by backward Gauss-Seidel.
’BJAC’L1-BJAC’
Block-Jacobi with ILU(0) on the local blocks.
’AS’
Additive Schwarz (AS), with overlap 1 and ILU(0) on the local blocks.
’ML’
V-cycle with one hybrid forward Gauss-Seidel (GS) sweep as pre-smoother and one hybrid backward diff --git a/docs/html/userhtmlse5.html b/docs/html/userhtmlse5.html index b4a1075b..8f6ba4e7 100644 --- a/docs/html/userhtmlse5.html +++ b/docs/html/userhtmlse5.html @@ -3,8 +3,8 @@
smoother
class(amg_x_base_smoother_type)
The user-defined new smoother to be employed in the preconditioner.
solver
class(amg_x_base_solver_type)
The user-defined new solver to be employed in the preconditioner.
pass it as follows: -
+ ! sparse matrix and preconditioner + type(psb_dspmat_type) :: a + type(amg_dprec_type) :: prec + type(amg_d_tlu_solver_type) :: tlusv +...... + ! + ! prepare the preconditioner: an ML with defaults, but with TLU solver at + ! intermediate levels. All other parameters are at default values. + ! + call prec%init(’ML’, info) + call prec%hierarchy_build(a,desc_a,info) + nlv = prec%get_nlevs() + call prec%set(tlusv, info,ilev=1,ilmax=max(1,nlv-1)) + call prec%smoothers_build(a,desc_a,info) +
diff --git a/docs/html/userhtmlse7.html b/docs/html/userhtmlse7.html index be3f3a40..20a74c45 100644 --- a/docs/html/userhtmlse7.html +++ b/docs/html/userhtmlse7.html @@ -3,8 +3,8 @@
+ AMG4PSBLAS version 1.0 + Algebraic MultiGrid Preconditioners Package + based on PSBLAS (Parallel Sparse BLAS version 3.7) + (C) Copyright 2021 + Pasqua D’Ambra IAC-CNR, IT + Fabio Durastante University of Pisa and IAC-CNR, IT + Salvatore Filippone University of Rome Tor-Vergata and IAC-CNR, IT + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the MLD2P4 group or the names of its contributors may + not be used to endorse or promote products derived from this + software without specific written permission. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +
@@ -83,44 +78,37 @@ class="cmr-12">abide by its terms: -
+ MLD2P4 version 2.2 + MultiLevel Domain Decomposition Parallel Preconditioners Package + based on PSBLAS (Parallel Sparse BLAS version 3.5) + (C) Copyright 2008-2018 + Salvatore Filippone + Pasqua D’Ambra + Daniela di Serafino + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the MLD2P4 group or the names of its contributors may + not be used to endorse or promote products derived from this + software without specific written permission. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +
AMG4PSBLAS is distributed together with (a small part) of the graph-matching @@ -133,54 +121,52 @@ class="cmr-12">[9]. Per the license requirements, we reproduce the relative part -here. +class="cmr-12">. The relevant license is reproduced here: -
+// *********************************************************************** +// +// MatchboxP: A C++ library for approximate weighted matching +// Mahantesh Halappanavar (hala@pnnl.gov) +// Pacific Northwest National Laboratory +// // *********************************************************************** -
// -
// MatchboxP: A C++ library for approximate weighted matching -
// Mahantesh Halappanavar (hala@pnnl.gov) -
// Pacific Northwest National Laboratory -
// -
// *********************************************************************** -
// -
// Copyright (2021) Battelle Memorial Institute -
// All rights reserved. -
// -
// Redistribution and use in source and binary forms, with or without -
// modification, are permitted provided that the following conditions -
// are met: -
// -
// 1. Redistributions of source code must retain the above copyright -
// notice, this list of conditions and the following disclaimer. -
// -
// 2. Redistributions in binary form must reproduce the above copyright -
// notice, this list of conditions and the following disclaimer in the -
// documentation and/or other materials provided with the distribution. -
// -
// 3. Neither the name of the copyright holder nor the names of its -
// contributors may be used to endorse or promote products derived from -
// this software without specific prior written permission. -
// -
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -
// COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -
// POSSIBILITY OF SUCH DAMAGE. -
// -
// ************************************************************************ -
diff --git a/docs/html/userhtmlse9.html b/docs/html/userhtmlse9.html index 220606fb..5a1864d1 100644 --- a/docs/html/userhtmlse9.html +++ b/docs/html/userhtmlse9.html @@ -3,8 +3,8 @@
a
type(in).
The sparse matrix structure containing the local part of the matrix 20].
desc_a
type(in).
The communication descriptor of a20].
info
integer,out).
Error code. If no error, 0 is returned. See Section 7 for details.
amold
class( optional.
The desired dynamic type for internal matrix components; this 20].
vmold
class( optional.
The desired dynamic type for internal vector components; this allows e.g. running on GPUs.
imold
class( optional.
The desired dynamic type for internal integer vector components; this allows e.g. running on GPUs.
a
type(in).
The sparse matrix structure containing the local part of the matrix 20].
desc_a
type(in).
The communication descriptor of a20].
info
integer,out).
Error code. If no error, 0 is returned. See Section 7 for details.
amold
class( optional.
The desired dynamic type for internal matrix components; this 20].
vmold
class( optional.
The desired dynamic type for internal vector components; this allows e.g. running on GPUs.
imold
class( optional.
The desired dynamic type for internal integer vector components; this allows e.g. running on GPUs.
The method can be used to build multilevel preconditioners too. diff --git a/docs/html/userhtmlsu12.html b/docs/html/userhtmlsu12.html index a13c92a3..cae2bdd9 100644 --- a/docs/html/userhtmlsu12.html +++ b/docs/html/userhtmlsu12.html @@ -3,8 +3,8 @@
x
type(kind_parameter), dimension(:), intent(in)—.
The local part of the vector x, single/double precision version of AMG4PSBLAS under use.
y
type(kind_parameter), dimension(:), intent(out)—.
The local part of the vector y, single/double precision version of AMG4PSBLAS under use.
desc_a
type(in).
The communication descriptor associated to the matrix to be preconditioned.
info
integer,out).
Error code. If no error, 0 is returned. See Section 7 for details.
trans
character((in).
If trans -1).
work
type(kind_parameter), dimension(:), optional, target—.
Workspace. Its size should be at least 4, single/double precision version of AMG4PSBLAS under use.
info
integer,out).
Error code. If no error, 0 is returned. See Section for details.
info
integer,out).
Error code. If no error, 0 is returned. See Section 7 for details.
iout
integer, optional.
The id of the file where the preconditioner description will be printed; the default is the standard output.
root
integer, optional.
The id of the process where the preconditioner description will be printed; the default is class="cmtt-12">psb_root_.
verbosity
integer, optional.
The verbosity level of the description. Default value is 0. For a distributed multilevel preconditioner the size of the coarsematrices on every process.
info
integer,out).
Error code. If no error, 0 is returned. See Section 7 for details.
amold
class( optional.
The desired dynamic type for internal matrix components; this 20].
pout
type(out).
The copy of the preconditioner data structure. Note that x , single/double precision version of AMG4PSBLAS under use.
info
integer,out).
Error code. If no error, 0 is returned. See Section 7 for details.
global
logical, optional.
Whether the global or local preconditioner memory occupation is false..
info
integer,out).
Error code. If no error, 0 is returned. See Section 7 for details.
vmold
class( optional.
The desired dynamic type for internal vector components; this allows e.g. running on GPUs.
info
integer,out).
Error code. If no error, 0 is returned. See Section 7 for details.
./configure --with-psblas=PSB-INSTALL-DIR -
which assumes that the various MPI compilers and support libraries are available in
‘--prefix=$HOME$HOME’.
might be configured with:
-
./configure --with-psblas=/opt/psblas-3.7/ \ -
--with-umfpackincdir=/usr/include/suitesparse/ -
Once the configure script has completed execution, it will have generated the file
To build the library the user will now enter
- followed (optionally) by
-
diff --git a/docs/html/userhtmlsu4.html b/docs/html/userhtmlsu4.html
index 6c25a03f..92856733 100644
--- a/docs/html/userhtmlsu4.html
+++ b/docs/html/userhtmlsu4.html
@@ -3,8 +3,8 @@
@@ -289,19 +288,19 @@ class="cmr-12">.
-
make
-
make install
-
use psb_base_mod
-
use amg_prec_mod
-
use psb_krylov_mod
-
... ...
-
!
-
! sparse matrix
-
type(psb_dspmat_type) :: A
-
! sparse matrix descriptor
-
type(psb_desc_type) :: desc_A
-
! preconditioner
-
type(amg_dprec_type) :: P
-
! right-hand side and solution vectors
-
type(psb_d_vect_type) :: b, x
-
... ...
-
!
-
! initialize the parallel environment
-
call psb_init(ctxt)
-
call psb_info(ctxt,iam,np)
-
... ...
-
!
-
! read and assemble the spd matrix A and the right-hand side b
-
! using PSBLAS routines for sparse matrix / vector management
-
... ...
-
!
-
! initialize the default multilevel preconditioner, i.e. V-cycle
-
! with basic smoothed aggregation, 1 hybrid forward/backward
-
! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
-
! solver
-
call P%init(’ML’,info)
-
!
-
! build the preconditioner
-
call P%hierarchy_build(A,desc_A,info)
-
call P%smoothers_build(A,desc_A,info)
-
-
!
-
! set the solver parameters and the initial guess
-
... ...
-
!
-
! solve Ax=b with preconditioned CG
-
call psb_krylov(’CG’,A,P,b,x,tol,desc_A,info)
-
... ...
-
!
-
! deallocate the preconditioner
-
call P%free(info)
-
!
-
! deallocate other data structures
-
... ...
-
!
-
! exit the parallel environment
-
call psb_exit(ctxt)
-
stop
-
... ...
-
! build a V-cycle preconditioner with 1 block-Jacobi sweep (with
-
! ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi
-
! sweeps (with ILU(0) on the blocks) as coarsest-level solver
-
call P%init(’ML’,info)
-
call P%set(’SMOOTHER_TYPE’,’BJAC’,info)
-
call P%set(’COARSE_SOLVE’,’BJAC’,info)
-
call P%set(’COARSE_SWEEPS’,8,info)
-
call P%hierarchy_build(A,desc_A,info)
-
call P%smoothers_build(A,desc_A,info)
-
... ...
-