]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Add documentation to readme.html and ginkgo.html files
authorPratik Nayak <pratik.nayak4@gmail.com>
Wed, 30 Jan 2019 11:49:04 +0000 (12:49 +0100)
committerPratik Nayak <pratik.nayak4@gmail.com>
Wed, 30 Jan 2019 11:49:04 +0000 (12:49 +0100)
doc/external-libs/ginkgo.html [new file with mode: 0644]
doc/readme.html

diff --git a/doc/external-libs/ginkgo.html b/doc/external-libs/ginkgo.html
new file mode 100644 (file)
index 0000000..d918e17
--- /dev/null
@@ -0,0 +1,96 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+         "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+  <head>
+    <title>The deal.II Readme on interfacing to Ginkgo</title>
+    <link href="../screen.css" rel="StyleSheet">
+    <meta name="copyright" content="Copyright (C) 2008 - 2018 by the deal.II authors">
+    <meta name="keywords" content="deal.II">
+  </head>
+
+  <body>
+
+    <h1>Interfacing <acronym>deal.II</acronym> to Ginkgo</h1>
+
+    <p>
+        <a href="https://github.com/ginkgo-project/ginkgo"
+           target="_top">Ginkgo</a> is
+        A numerical linear algebra software package that provides its users with
+        highly optimized fine grid level linear algebra operations. It currently has
+        the capability to solve on the CPU with the support of OpenMP and on the GPU
+        with NVIDIA's CUDA libraries. For some operations it uses NVIDIA's own libraries, CuSparse
+        and CuBLAS, but some routines also have self implemented CUDA functions.See the <a href="https://ginkgo-project.github.io/ginkgo/doc/develop/index.html" target="_top"> Ginkgo documentation </a>
+        for more details.
+    </p>
+
+    <p>
+      <acronym>deal.II</acronym> has wrapper classes to the linear algebra
+      parts of Ginkgo that provide almost the
+      same interfaces as the built-in <acronym>deal.II</acronym> linear algebra operations.
+    </p>
+
+    <h2>Installing <acronym>deal.II</acronym> with Ginkgo</h2>
+
+    <p>
+        During the CMake configuration, the following flags should be specified:
+        <ul>
+            <li> <code>-DDEAL_II_WITH_GINKGO=ON</code>, to enable the Ginkgo library.
+            <li> <code>-DGINKGO_DIR=<path_to_ginko></code>, to specify the path where Ginkgo has been installed.
+        </ul>
+    </p>
+
+    <h3>Installing Ginkgo</h3>
+
+    <p>
+        Installing Ginkgo is quite simple. Ginkgo currently uses CMake and hence one can use
+        the following commands to easily install Ginkgo. For different dependencies and compatible
+        libraries, please refer to <a href="https://github.com/ginkgo-project/ginkgo"
+                                      target="_top">Ginkgo</a>.
+        The different flags that can be added are:
+        <ul>
+           <li> <code> -DBUILD_REFERENCE={ON,OFF}</code>: Builds the reference single thread implementation
+        used to check the more sophisticated implementations of the GPU/CPU.
+           <li> <code> -DBUILD_CUDA={ON,OFF}</code>: Builds the GPU implementation, specifically the NVIDIA
+        CUDA implementations. This needs CUDA to be installed on the machine.
+           <li> <code> -DBUILD_OMP={ON,OFF}</code>: Builds the multithreaded OpenMP implementations.
+        </ul>
+        To install Ginkgo, you would need to:
+      <pre>
+       git clone https://github.com/ginkgo-project/ginkgo.git
+  mkdir build; cd build 
+  cmake -DBUILD_REFERENCE=on/off -DBUILD_CUDA=on/off -DBUILD_OMP=on/off -DCMAKE_INSTALL_PREFIX=/path/to/install/ -DCMAKE_BUILD_TYPE=Debug
+       make install
+      </pre>
+    </p>
+
+    <h4>Running the Ginkgo tests</h4>
+
+    <p>
+        Ginkgo uses <code>gtests</code> to run unit tests. The reference implementations are
+        non-optimized versions to which the OpenMP and CUDA versions are compared with for
+        correctness.
+
+        The following command, executed in Ginkgo's build directory, launches its test suite.
+      <pre>
+       make test
+      </pre>
+      The output should contain several lines of the form:
+      <pre>
+     Start  1: path/to/test
+ 1/13 Test  #1: path/to/test .............................   Passed    0.01 sec
+      </pre>
+      To run only a specific test for more details, from the build directory, run
+      <pre>
+       ./path/to/test
+      </pre>
+    </p>
+
+    <hr />
+    <div class="right">
+      <a href="http://validator.w3.org/check?uri=referer" target="_top">
+        <img style="border:0" src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
+      <a href="http://jigsaw.w3.org/css-validator/check/referer" target="_top">
+        <img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
+    </div>
+  </body>
+</html>
index 2294bfbfa659f4bfbe66377e01cd1d04049553c5..406981e5f71078563a4c9537c61737bdfbf5d5ed 100644 (file)
                 about compatibility and configuration can be found <a href=external-libs/cuda.html target="body">here</a>.
             </p>
 
+            <dt><a name="Ginkgo"/>
+                <a href="https://ginkgo-project.github.io/" target="_top">Ginkgo</a></dt>
+            <dd>
+                <p>
+                    <a href="https://ginkgo-project.github.io/" target="_top">Ginkgo</a>
+                    is a numerical linear algebra library with highly optimized kernels
+                    for many core architectures with a focus on fine level parallelism.
+                    It allows for easy switching of the executing paradigm (CUDA, OpenMP, .etc)
+                    while providing a multitude of linear solvers and preconditioners
+                    and extension to other linear operators with minimal changes required in the code.
+                    To enable Ginkgo, pass <code>-DGINKGO_DIR=/path/to/ginkgo</code> to CMake when
+                    configuring deal.II. For more detailed instructions, one can refer to 
+                    <a href="external-libs/ginkgo.html" target="body">this page</a>.
+                </p>
+            </dd>
+
             <dt><a name="Gmsh"/>
              <a href="http://gmsh.info/" target="_top">Gmsh</a></dt>
             <dd>

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.