<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html > <head><title>Prerequisites</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)"> <meta name="originator" content="TeX4ht (https://tug.org/tex4ht/)"> <!-- html,3 --> <meta name="src" content="userhtml.tex"> <link rel="stylesheet" type="text/css" href="userhtml.css"> </head><body > <!--l. 30--><div class="crosslinks"><p class="noindent"><span class="cmr-12">[</span><a href="userhtmlsu2.html" ><span class="cmr-12">next</span></a><span class="cmr-12">] [</span><a href="#tailuserhtmlsu1.html"><span class="cmr-12">tail</span></a><span class="cmr-12">] [</span><a href="userhtmlse3.html#userhtmlsu1.html" ><span class="cmr-12">up</span></a><span class="cmr-12">] </span></p></div> <h4 class="subsectionHead"><span class="titlemark"><span class="cmr-12">3.1 </span></span> <a id="x9-80003.1"></a><span class="cmr-12">Prerequisites</span></h4> <!--l. 32--><p class="noindent" ><span class="cmr-12">The following base libraries are needed:</span> <dl class="description"><dt class="description"> <span class="cmbx-12">BLAS</span> </dt><dd class="description"><span class="cite"><span class="cmr-12">[</span><a href="userhtmlli5.html#Xblas3"><span class="cmr-12">17</span></a><span class="cmr-12">,</span><span class="cmr-12"> </span><a href="userhtmlli5.html#Xblas2"><span class="cmr-12">18</span></a><span class="cmr-12">,</span><span class="cmr-12"> </span><a href="userhtmlli5.html#Xblas1"><span class="cmr-12">25</span></a><span class="cmr-12">]</span></span> <span class="cmr-12">Many vendors provide optimized versions of BLAS; if no</span> <span class="cmr-12">vendor version is available for a given platform, the ATLAS software</span> <span class="cmr-12">(</span><a href="http://math-atlas.sourceforge.net" ><span class="cmr-12">math-atlas.sourceforge .net</span></a><span class="cmr-12">) may be employed. The reference BLAS from</span> <span class="cmr-12">Netlib (</span><a href="http://www.netlib.org/blas" ><span class="cmr-12">www.netlib.org/blas</span></a><span class="cmr-12">) are meant to define the standard behaviour of</span> <span class="cmr-12">the BLAS interface, so they are not optimized for any particular platform,</span> <span class="cmr-12">and should only be used as a last resort. Note that BLAS computations form</span> <span class="cmr-12">a relatively small part of the AMG4PSBLAS/PSBLAS; however they are</span> <span class="cmr-12">critical when using preconditioners based on the MUMPS, UMFPACK or</span> <span class="cmr-12">SuperLU third party libraries. UMFPACK requires a full LAPACK library;</span> <span class="cmr-12">our experience is that configuring ATLAS for building full LAPACK does</span> <span class="cmr-12">not always work in the expected way. Our advice is first to download the</span> <span class="cmr-12">LAPACK tarfile from </span><a href="http://www.netlib.org/lapack" ><span class="cmr-12">www.netlib.org/lapack</span></a> <span class="cmr-12">and install it independently of</span> <span class="cmr-12">ATLAS. In this case, you need to modify the OPTS and NOOPT definitions</span> <span class="cmr-12">for including -fPIC compilation option in the make.inc file of the LAPACK</span> <span class="cmr-12">library.</span> </dd><dt class="description"> <span class="cmbx-12">MPI</span> </dt><dd class="description"><span class="cite"><span class="cmr-12">[</span><a href="userhtmlli5.html#XMPI2"><span class="cmr-12">24</span></a><span class="cmr-12">,</span><span class="cmr-12"> </span><a href="userhtmlli5.html#XMPI1"><span class="cmr-12">30</span></a><span class="cmr-12">]</span></span> <span class="cmr-12">A version of MPI is available on most high-performance computing</span> <span class="cmr-12">systems.</span> </dd><dt class="description"> <span class="cmbx-12">PSBLAS</span> </dt><dd class="description"><span class="cite"><span class="cmr-12">[</span><a href="userhtmlli5.html#XPSBLASGUIDE"><span class="cmr-12">20</span></a><span class="cmr-12">,</span><span class="cmr-12"> </span><a href="userhtmlli5.html#Xpsblas_00"><span class="cmr-12">22</span></a><span class="cmr-12">]</span></span> <span class="cmr-12">Parallel Sparse BLAS (PSBLAS) is available from</span> <a href="https://psctoolkit.github.io/products/psblas/" ><span class="cmr-12">psctoolkit.github.io/ products/psblas/</span></a><span class="cmr-12">; version 3.7.0 (or later) is required.</span> <span class="cmr-12">Indeed, all the prerequisites listed so far are also prerequisites of PSBLAS.</span></dd></dl> <!--l. 60--><p class="noindent" ><span class="cmr-12">Please note that the four previous libraries must have Fortran interfaces compatible with</span> <span class="cmr-12">AMG4PSBLAS; usually this means that they should all be built with the same</span> <span class="cmr-12">compiler being used for AMG4PSBLAS.</span> <!--l. 64--><p class="indent" > <span class="cmr-12">If you want to use the PSBLAS support for NVIDIA GPUs, you will also</span> <span class="cmr-12">need:</span> <dl class="description"><dt class="description"> <span class="cmbx-12">PSBLAS-EXT</span> </dt><dd class="description"><span class="cmr-12">Parallel Sparse BLAS (PSBLAS) Extensions, available from</span> <a href="https://psctoolkit.github.io/products/psblasext/" ><span class="cmr-12">psctoolkit.github.io/products/psblasext/</span></a><span class="cmr-12">; version 1.3.0 (or later).</span> </dd><dt class="description"> <span class="cmbx-12">SPGPU</span> </dt><dd class="description"><span class="cmr-12">Sparse CUDA kernels for NVIDIA GPUs; available from GitHub, see</span> <span class="cmr-12">also </span><a href="https://psctoolkit.github.io/products/psblasext/" ><span class="cmr-12">psctoolkit.github.io/products/psblasext/</span></a><span class="cmr-12">.</span></dd></dl> <!--l. 76--><p class="noindent" ><span class="cmr-12">See also Sec</span><span class="cmr-12"> </span><a href="userhtmlsu7.html#x16-150004.2"><span class="cmr-12">4.2</span><!--tex4ht:ref: sec:gpu-example --></a><span class="cmr-12">.</span> <!--l. 79--><div class="crosslinks"><p class="noindent"><span class="cmr-12">[</span><a href="userhtmlsu2.html" ><span class="cmr-12">next</span></a><span class="cmr-12">] [</span><a href="userhtmlsu1.html" ><span class="cmr-12">front</span></a><span class="cmr-12">] [</span><a href="userhtmlse3.html#userhtmlsu1.html" ><span class="cmr-12">up</span></a><span class="cmr-12">] </span></p></div> <!--l. 79--><p class="indent" > <a id="tailuserhtmlsu1.html"></a> </body></html>