From f6afacd1ff49c50bddcbb96217d7cb4cd39db9eb Mon Sep 17 00:00:00 2001 From: sfilippone Date: Mon, 24 Feb 2025 09:57:14 +0100 Subject: [PATCH] Update docs for allocate/deallocate _wrk --- docs/amg4psblas_1.2-guide.pdf | Bin 1874411 -> 1874579 bytes docs/html/userhtmlse5.html | 239 +++++++++++++++++----------------- docs/src/userinterface.tex | 12 +- 3 files changed, 128 insertions(+), 123 deletions(-) diff --git a/docs/amg4psblas_1.2-guide.pdf b/docs/amg4psblas_1.2-guide.pdf index 147ac151cca8d3bc7e6d2fca51be493fe6400c63..20f367a7a1900fde447da7ab8154443d5d51419c 100644 GIT binary patch delta 3106 zcmai0TWlQF8P1r*369ek+w07(Coo32jEghOnK^Uj453NZi4zC}j1t-kFzIA>)}Cf| z$L!A92}Rme8kN?GiYnBc0tGcv-*{-77Hy#|P^t>j7E$p~sib#RLWl~bsOlSS|NqRI zkf$oj?{EJ5?VPjk|FHSw3(Yf`lJ#ZRWoxr_S%0=Z+mKzK4P+a$!E96ZscdsLl--aG zXCv8YR>;P(Ek9E2hu0E|lkSB}>NchOz;ShUotS!3-7H?JszZaGV=M)6JDl8Qd*aOd zTPD^M*EKEXivLvANpa?4@%j#TOwS@Zb1c&#`mwtHpkYq#a=35YlcdtpG17$~odPG^ zGL{#@2D)>M@{vPy_UQE8<)ipbji{CL+pVygqva@F$Ynu2=R|4P4AN++=eL!__EOlK zoI7?{CnjWJ!9Sw=j>&XJnCY=zMz!W7;YNa9C>MVU)gArJH5qlqKuw(zS6);%7`DYt z%G_%WWm1$Il^~8~TGSKYe`|P5_;(ft#otA7GRUZC<@;y$s@7;(7yFd-KorM03gUXwN^{%@v2LjuHI|Z-=n<@< zp12yxg2PH0pPnRyh$~+&+$ElUrm&&=>v?r(|8*XB1$liKO22PpxT`&{mWRZnmxnis zGp~=X6ZM~{;~mHGjHCvmbhuFu>q+x8V&GLO?Iz3$alIX<(P9kIQ7et=VNXzPH>1XU zu9PnH^R;(Cq!W8vVG1$cAM~ zDzL}WIeh17*+!6Cwc=zsM+qb<^<*pxt&&?rpg@@oF{)uLfFb1SC&GoHU@1!4xEj

Y(}82=E>DS%r=sC+KOZXAj6flfthy*7L51sFoE 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 YfD&I`l&jBJ(}RrQ!I_zpUsxFY9~Oid!2kdN diff --git a/docs/html/userhtmlse5.html b/docs/html/userhtmlse5.html index ef60dbd0..89e651fc 100644 --- a/docs/html/userhtmlse5.html +++ b/docs/html/userhtmlse5.html @@ -2713,14 +2713,16 @@ class="cmmi-12">op denotes the preconditioner itself or its transpose, according to the value of trans. Note that, when AMG4PSBLAS is used with a Krylov solver from +class="cmr-12">. Note that, when AMG4PSBLAS is used with am iterative solver from PSBLAS, p%apply is called within the PSBLAS method psb_krylov and hence it is +class="cmr-12">and +hence it is completely transparent to the user, who will almost never invoke it completely transparent to the user. -

directly. +

Arguments

Arguments id="TBL-15-1"> +class="td11">

trans

x

x

type(kind_parameter), dimension(:), intent(in)—.

The local part of the vector x. Note that , single/double class="cmr-12">precision version of AMG4PSBLAS under use.

y

y

type(kind_parameter), dimension(:), intent(out)—.

The local part of the vector y. Note that , single/double class="cmr-12">precision version of AMG4PSBLAS under use.

desc_a

type(psb_desc_type), intent(in)

desc_a

type(psb_desc_type), intent(in).

The communication descriptor associated to the matrix to be preconditioned.

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

trans

character(len=1), optional, intent(in).

character(len=1), optional, intent(in).

If trans = N,n then 1).

work

work

type(kind_parameter), dimension(:), optional, target—.

Workspace. Its size should be at least 4 * psb_cd_get_local_ cols(desc_a) (see the PSBLAS User’s Guide). Note that 5.7 Method free

-

This method deallocates the preconditioner data structure p. -

Arguments

Arguments id="TBL-16-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 5.8 Method descr

-

This method prints a description of the preconditioner p to the standard output or to a , or b class="cmr-12">, have been called. -

Arguments

Arguments id="TBL-17-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

iout

integer, intent(in), optional

iout

integer, intent(in), optional.

The id of the file where the preconditioner description will be printed; the default is the standard output.

root

integer, intent(in), optional

root

integer, intent(in), optional.

The id of the process where the preconditioner description will be printed; the default is psb_root_.

verbosity

integer, intent(in), optional

verbosity

integer, intent(in), optional.

The verbosity level of the description. Default value is 0. For values higher than 0, it prints out further information, e.g., for @@ -3005,31 +3007,31 @@ class="cmr-12">matrices on every process.

-

+

5.9 Auxiliary Methods

-

Various functionalities are implemented as additional methods of the preconditioner object. -

+

5.9.1 Method: dump
-

-

call p%dump(info[,istart,iend,prefix,head,ac,rp,smoother,solver,global_num])
+

+

call p%dump(info[,istart,iend,prefix,head,ac,rp,smoother,solver,global_num])

-

Dump on file. -

Arguments

Arguments id="TBL-18-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

amold

class(psb_

amold

class(psb_x_base_sparse_mat), intent(in), optional.

The desired dynamic type for internal matrix components; this allows e.g. running on GPUs; it needs not be the same on all @@ -3072,19 +3074,19 @@ class="cmr-12">.

-

+

5.9.2 Method: clone
-

-

call p%clone(pout,info)
+

+

call p%clone(pout,info)

-

Create a (deep) copy of the preconditioner object. -

Arguments

Arguments id="TBL-19-1">

pout

type(amg_

pout

type(amg_xprec_type), intent(out).

The copy of the preconditioner data structure. Note that x must @@ -3111,13 +3113,13 @@ class="cmr-12">, single/double precision class="cmr-12">version of AMG4PSBLAS under use.

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section for details.

-

+

5.9.3 Method: sizeof
-

-

sz = p%sizeof([global])
+

+

sz = p%sizeof([global])

Method: sizeof id="TBL-20-1">

global

logical, optional

global

logical, optional.

Whether the global or local preconditioner memory occupation is desired. Default: .false.Return memory footprint in bytes. -

+

5.9.4 Method: allocate_wrk
-

-

call p%allocate_wrk(info[, vmold])
+

+

call p%allocate_wrk(info[, vmold])

-

Allocate internal work vectors. Each application of the preconditioner uses a number of work vectors which are allocated internally as necessary; therefore allocation and deallocation of memory occurs multiple times during the execution of a Krylov method. +class="cmr-12">deallocation of memory occurs multiple times during the execution of an iterative In most cases this strategy is perfectly acceptable, but on some platforms, most +class="cmr-12">method. In most cases this strategy is perfectly acceptable, but on some platforms, notably GPUs, memory allocation is a slow operation, and the default behaviour would +class="cmr-12">most notably GPUs, memory allocation is a slow operation, and the default behaviour lead to a slowdown. This method allows to trade space for time by preallocating +class="cmr-12">would lead to a slowdown. This method allows to trade space for time by preallocating the internal workspace outside of the invocation of a Krylov method. When +class="cmr-12">the internal workspace outside of the invocation of a linear solver method. When using GPUs or other specialized devices, the vmold argument is also necessary @@ -3198,7 +3200,7 @@ class="cmr-12">taken care of based on the dynamic type of the argument to the apply method. -

Arguments

Arguments id="TBL-21-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

vmold

class(psb_

vmold

class(psb_x_base_vect_type), intent(in), optional.

The desired dynamic type for internal vector components; this allows e.g. running on GPUs.

-

+

5.9.5 Method: deallocate_wrk
-

-

call p%deallocate_wrk(info)
+

+

call p%deallocate_wrk(info)
+call p%free_wrk(info)

-

Deallocate internal work vectors. -

Arguments

Arguments id="TBL-22-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section