Videos from JuliaCon are now available online
2018
Previous editions: 2017 | 2016 | 2015 | 2014
Bart Janssens



Solving sparse linear systems with Trilinos.jl

The Trilinos C++ library features a large collection of packages, with a focus on solving large linear systems. The Trilinos.jl package is an effort to provide access to the modern iterative solvers from the Belos package from within Julia. It focuses on using the sparse matrix structures from the Tpetra package, which enables features such as hybrid parallelism and GPU computing. In Trilinos, the solvers are driven by so-called parameter lists, which allow setting up the linear solver and preconditioner to use. This way, all iterative solvers from the Belos package (including GMRES and CG) are available from Julia, with preconditioners from the Ifpack2 package (providing ILU-type preconditioners) and the MueLU algebraic multigrid package. As with all of Trilinos, these support parallel execution using MPI. In our talk, we will show how to configure a parameter list from within Julia, build the linear system and finally solve it. In many places, native Julia interfaces are implemented, such as an array interface operating directly on views of Trilinos vectors, the Associative interface for parameter lists and the \ operator to perform the actual linear system solution. The talk will conclude with an example, showing how to solve the 2D Laplace equation and presenting a timing comparison with other Julia packages and native C++ Trilinos, showing that using the Julia interface does not slow down the system assembly.

Speaker's bio