Ginkgo
Generated from pipelines/207021245 branch based on develop. Ginkgo version 1.3.0
A numerical linear algebra library targeting manycore architectures

Here you can find example programs that demonstrate the usage of Ginkgo. Some examples are built on one another and some are standalone and demonstrate a concept of Ginkgo, which can be used in your own code.
You can browse the available example programs
By default, all Ginkgo examples are built using CMake.
An example for building the examples and using Ginkgo as an external library without CMake can be found in the script provided for each example, which should be called with the form: ./build.sh PATH_TO_GINKGO_BUILD_DIR
By default, Ginkgo is compiled with at least DGINKGO_BUILD_REFERENCE=ON
. To execute on a GPU, you need to have a GPU on the system and must have compiled Ginkgo with the DGINKGO_BUILD_CUDA=ON
option.
The following graph shows the connections between example programs and how they build on each other. Click on any of the boxes to go to one of the programs. If you hover your mouse pointer over a box, a brief description of the program should appear.
Legend:
The simplesolver program  A minimal CG solver in Ginkgo, which reads a matrix from a file. 
The minimalcudasolver program  A minimal solver on the CUDA executor than can be run on NVIDIA GPU's. 
The poissonsolver program  Solve an actual physically relevant problem, the poisson problem. The matrix is generated within Ginkgo. 
The preconditionedsolver program  Using a Jacobi preconditioner to solve a linear system. 
The ilupreconditionedsolver program  Using an ILU preconditioner to solve a linear system. 
The performancedebugging program  Using Loggers to debug the performance within Ginkgo. 
The threeptstencilsolver program  Using a three point stencil to solve the poisson equation with array views. 
The nineptstencilsolver program  Using a nine point 2D stencil to solve the poisson equation with array views. 
The externallibinterfacing program  Using Ginkgo's solver with the external library deal.II. 
The customlogger program  Creating a custom logger specifically for comparing the recurrent and the real residual norms. 
The custommatrixformat program  Creating a matrixfree stencil solver by using Ginkgo's advanced methods to build your own custom matrix format. 
The inverseiteration program  Using Ginkgo to compute eigenvalues of a matrix with the inverse iteration method. 
The simplesolverlogging program  Using the logging functionality in Ginkgo to get solver and other information to diagnose and debug your code. 
The papilogging program  Using the PAPI logging library in Ginkgo to get advanced information about your code and its behaviour. 
The ginkgooverhead program  Measuring the overhead of the Ginkgo library. 
The customstoppingcriterion program  Creating a custom stopping criterion for the iterative solution process. 
The ginkgoranges program  Using the ranges concept to factorize a matrix with the LU factorization. 
Solving a simple linear system with choice of executors.  
Debug the performance of a solver using loggers.  
Using the CUDA executor  
Using preconditioners  The preconditionedsolver program, The ilupreconditionedsolver program 
Solving a physically relevant problem  The poissonsolver program, The threeptstencilsolver program, The nineptstencilsolver program, The custommatrixformat program 
Reading in a matrix and right hand side from a file.  The simplesolver program, The minimalcudasolver program, The preconditionedsolver program, The ilupreconditionedsolver program, The inverseiteration program, The simplesolverlogging program, The papilogging program, The customstoppingcriterion program, The customlogger program 
Using Ginkgo with external libraries.  
Customizing Ginkgo  The customlogger program, The customstoppingcriterion program, The custommatrixformat program 
Writing your own matrix format  
Using Ginkgo to construct more complex linear algebra routines.  
Logging within Ginkgo.  The simplesolverlogging program, The papilogging program, The customlogger program 
Constructing your own stopping criterion.  
Using ranges in Ginkgo.  The ginkgoranges program 