mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-24 14:51:50 +00:00
Updated MUMPS link in documentation
This commit is contained in:
+28
-28
@@ -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 amg_dexample_gpu
|
||||
  use psb_base_mod
|
||||
  use amg_prec_mod
|
||||
  use psb_krylov_mod
|
||||
  use psb_linsolve_mod
|
||||
  use psb_util_mod
|
||||
  use psb_gpu_mod
|
||||
  use data_input
|
||||
@@ -69,7 +69,7 @@ program amg_dexample_gpu
|
||||
|
||||
 
|
||||
</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’</span>
|
||||
class="cmr-12">sparse matrices on GPUs; for more information please refer to the PSBLAS users’</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’</span>
|
||||
<span
|
||||
class="cmr-12">guides).</span>
|
||||
class="cmr-12">variables to the build methods (see also the PSBLAS users’ 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">
|
||||
  call psb_init(ctxt)
|
||||
  call psb_info(ctxt,iam,np)
|
||||
@@ -116,7 +114,7 @@ class="cmr-12">guides).</span>
|
||||
|
||||
 
|
||||
</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">
|
||||
  call desc_a%cnv(mold=igmold)
|
||||
  call a%cscnv(info,mold=agmold)
|
||||
@@ -170,7 +168,7 @@ class="cmr-12">GPU environment</span>
|
||||
|
||||
 
|
||||
</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">ℓ</span><sub><span
|
||||
class="cmr-8">1</span></sub> <span
|
||||
|
||||
Reference in New Issue
Block a user