Updated MUMPS link in documentation

This commit is contained in:
2026-04-02 16:28:42 +02:00
parent 04d7122380
commit 9be4a3f1be
34 changed files with 1399 additions and 9644 deletions
+28 -28
View File
@@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 424--><div class="crosslinks"><p class="noindent"><span
<!--l. 432--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu6.html" ><span
class="cmr-12">prev</span></a><span
@@ -28,21 +28,21 @@ class="cmr-12">] </span></p></div>
class="cmr-12">4.2 </span></span> <a
id="x16-150004.2"></a><span
class="cmr-12">GPU example</span></h4>
<!--l. 426--><p class="noindent" ><span
<!--l. 434--><p class="noindent" ><span
class="cmr-12">The code discussed here shows how to set up a program exploiting the combined GPU</span>
<span
class="cmr-12">capabilities of PSBLAS and AMG4PSBLAS. The code example is available in the</span>
<span
class="cmr-12">source distribution directory </span><span class="obeylines-h"><code class="verb">amg4psblas/examples/gpu</code></span><span
class="cmr-12">.</span>
<!--l. 431--><p class="indent" > <span
<!--l. 439--><p class="indent" > <span
class="cmr-12">First of all, we need to include the appropriate modules and declare some auxiliary</span>
<span
class="cmr-12">variables:</span>
<!--l. 433--><p class="indent" > <a
<!--l. 441--><p class="indent" > <a
id="x16-15001r5"></a><hr class="float"><div class="float"
>
@@ -50,12 +50,12 @@ class="cmr-12">variables:</span>
<div class="center"
>
<!--l. 452--><p class="noindent" >
<!--l. 460--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-11">
program&#x00A0;amg_dexample_gpu
&#x00A0;&#x00A0;use&#x00A0;psb_base_mod
&#x00A0;&#x00A0;use&#x00A0;amg_prec_mod
&#x00A0;&#x00A0;use&#x00A0;psb_krylov_mod
&#x00A0;&#x00A0;use&#x00A0;psb_linsolve_mod
&#x00A0;&#x00A0;use&#x00A0;psb_util_mod
&#x00A0;&#x00A0;use&#x00A0;psb_gpu_mod
&#x00A0;&#x00A0;use&#x00A0;data_input
@@ -69,7 +69,7 @@ program&#x00A0;amg_dexample_gpu
&#x00A0;
</pre>
<!--l. 471--><p class="nopar" > </div></div>
<!--l. 479--><p class="nopar" > </div></div>
<br /> <div class="caption"
><span class="id">Listing 5: </span><span
class="content">setup of a GPU-enabled test program part one.</span></div><!--tex4ht:label?: x16-15001r5 -->
@@ -77,23 +77,21 @@ class="content">setup of a GPU-enabled test program part one.</span></div><!--te
</div><hr class="endfloat" />
<!--l. 478--><p class="indent" > <span
<!--l. 486--><p class="indent" > <span
class="cmr-12">In this particular example we are choosing to employ a </span><span class="obeylines-h"><code class="verb">HLG</code></span> <span
class="cmr-12">data structure for</span>
<span
class="cmr-12">sparse matrices on GPUs; for more information please refer to the PSBLAS-EXT users&#8217;</span>
class="cmr-12">sparse matrices on GPUs; for more information please refer to the PSBLAS users&#8217;</span>
<span
class="cmr-12">guide.</span>
<!--l. 482--><p class="indent" > <span
<!--l. 490--><p class="indent" > <span
class="cmr-12">We then have to initialize the GPU environment, and pass the appropriate MOLD</span>
<span
class="cmr-12">variables to the build methods (see also the PSBLAS and PSBLAS-EXT users&#8217;</span>
<span
class="cmr-12">guides).</span>
class="cmr-12">variables to the build methods (see also the PSBLAS users&#8217; guide).</span>
<!--l. 485--><p class="indent" > <a
<!--l. 493--><p class="indent" > <a
id="x16-15002r6"></a><hr class="float"><div class="float"
>
@@ -101,7 +99,7 @@ class="cmr-12">guides).</span>
<div class="center"
>
<!--l. 501--><p class="noindent" >
<!--l. 509--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-12">
&#x00A0;&#x00A0;call&#x00A0;psb_init(ctxt)
&#x00A0;&#x00A0;call&#x00A0;psb_info(ctxt,iam,np)
@@ -116,7 +114,7 @@ class="cmr-12">guides).</span>
&#x00A0;
</pre>
<!--l. 516--><p class="nopar" > </div></div>
<!--l. 524--><p class="nopar" > </div></div>
<br /> <div class="caption"
><span class="id">Listing 6: </span><span
class="content">setup of a GPU-enabled test program part two.</span></div><!--tex4ht:label?: x16-15002r6 -->
@@ -124,7 +122,7 @@ class="content">setup of a GPU-enabled test program part two.</span></div><!--te
</div><hr class="endfloat" />
<!--l. 523--><p class="indent" > <span
<!--l. 531--><p class="indent" > <span
class="cmr-12">Finally, we convert the input matrix, the descriptor and the vectors to use a</span>
<span
class="cmr-12">GPU-enabled internal storage format. We then preallocate the preconditioner</span>
@@ -135,7 +133,7 @@ class="cmr-12">GPU environment</span>
<!--l. 527--><p class="indent" > <a
<!--l. 535--><p class="indent" > <a
id="x16-15003r7"></a><hr class="float"><div class="float"
>
@@ -143,7 +141,7 @@ class="cmr-12">GPU environment</span>
<div class="center"
>
<!--l. 557--><p class="noindent" >
<!--l. 565--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-13">
&#x00A0;&#x00A0;call&#x00A0;desc_a%cnv(mold=igmold)
&#x00A0;&#x00A0;call&#x00A0;a%cscnv(info,mold=agmold)
@@ -170,7 +168,7 @@ class="cmr-12">GPU environment</span>
&#x00A0;
</pre>
<!--l. 584--><p class="nopar" > </div></div>
<!--l. 592--><p class="nopar" > </div></div>
<br /> <div class="caption"
><span class="id">Listing 7: </span><span
class="content">setup of a GPU-enabled test program part three.</span></div><!--tex4ht:label?: x16-15003r7 -->
@@ -178,7 +176,7 @@ class="content">setup of a GPU-enabled test program part three.</span></div><!--
</div><hr class="endfloat" />
<!--l. 592--><p class="indent" > <span
<!--l. 600--><p class="indent" > <span
class="cmr-12">It is very important to employ smoothers and coarsest solvers that are suited to the</span>
<span
class="cmr-12">GPU, i.e. methods that do NOT employ triangular system solve kernels. Methods that</span>
@@ -186,22 +184,24 @@ class="cmr-12">GPU, i.e. methods that do NOT employ triangular system solve kern
class="cmr-12">satisfy this constraint include:</span>
<ul class="itemize1">
<li class="itemize">
<!--l. 596--><p class="noindent" ><span class="obeylines-h"><code class="verb">JACOBI</code></span>
<!--l. 604--><p class="noindent" ><span class="obeylines-h"><code class="verb">JACOBI</code></span>
</li>
<li class="itemize">
<!--l. 597--><p class="noindent" ><span class="obeylines-h"><code class="verb">BJAC</code></span> <span
<!--l. 605--><p class="noindent" ><span class="obeylines-h"><code class="verb">BJAC</code></span> <span
class="cmr-12">with the following methods on the local blocks:</span>
<ul class="itemize2">
<li class="itemize">
<!--l. 599--><p class="noindent" ><span class="obeylines-h"><code class="verb">INVK</code></span>
<!--l. 607--><p class="noindent" ><span class="obeylines-h"><code class="verb">INVK</code></span>
</li>
<li class="itemize">
<!--l. 600--><p class="noindent" ><span class="obeylines-h"><code class="verb">INVT</code></span>
<!--l. 608--><p class="noindent" ><span class="obeylines-h"><code class="verb">INVT</code></span>
</li>
<li class="itemize">
<!--l. 601--><p class="noindent" ><span class="obeylines-h"><code class="verb">AINV</code></span></li></ul>
</li></ul>
<!--l. 604--><p class="noindent" ><span
<!--l. 609--><p class="noindent" ><span class="obeylines-h"><code class="verb">AINV</code></span></li></ul>
</li>
<li class="itemize">
<!--l. 611--><p class="noindent" ><span class="obeylines-h"><code class="verb">POLY</code></span></li></ul>
<!--l. 613--><p class="noindent" ><span
class="cmr-12">and their </span><span
class="cmmi-12">&#x2113;</span><sub><span
class="cmr-8">1</span></sub> <span