Trilinos

Packages for large scale scientific and engineering problems. Provides MPI and hybrid parallelization.

Introduction

Trilinos is a collection of software packages for the numerical solution of large scale scientific and engineering problems. It is based on C++ and features modern object-oriented design. Both serial as well as parallel computations based on MPI and hybrid parallelization are supported within Trilinos packages.

Installed Packages

Current Trilinos installation on ANSELM contains (among others) the following main packages

  • Epetra - core linear algebra package containing classes for manipulation with serial and distributed vectors, matrices, and graphs. Dense linear solvers are supported via interface to BLAS and LAPACK (Intel MKL on ANSELM). Its extension EpetraExt contains e.g. methods for matrix-matrix multiplication.
  • Tpetra - next-generation linear algebra package. Supports 64-bit indexing and arbitrary data type using C++ templates.
  • Belos - library of various iterative solvers (CG, block CG, GMRES, block GMRES etc.).
  • Amesos - interface to direct sparse solvers.
  • Anasazi - framework for large-scale eigenvalue algorithms.
  • IFPACK - distributed algebraic preconditioner (includes e.g. incomplete LU factorization)
  • Teuchos - common tools packages. This package contains classes for memory management, output, performance monitoring, BLAS and LAPACK wrappers etc.

For the full list of Trilinos packages, descriptions of their capabilities, and user manuals see http://trilinos.sandia.gov.

Installed Version

Currently, Trilinos in version 11.2.3 compiled with Intel Compiler is installed on ANSELM.

Compiling Against Trilinos

First, load the appropriate module:

$ ml trilinos

For the compilation of CMake-aware project, Trilinos provides the FIND_PACKAGE( Trilinos ) capability, which makes it easy to build against Trilinos, including linking against the correct list of libraries. For details, see http://trilinos.sandia.gov/Finding_Trilinos.txt

For compiling using simple makefiles, Trilinos provides Makefile.export system, which allows users to include important Trilinos variables directly into their makefiles. This can be done simply by inserting the following line into the makefile:

include Makefile.export.Trilinos

or

include Makefile.export.<package>

if you are interested only in a specific Trilinos package. This will give you access to the variables such as Trilinos_CXX_COMPILER, Trilinos_INCLUDE_DIRS, Trilinos_LIBRARY_DIRS etc. For the detailed description and example makefile see http://trilinos.sandia.gov/Export_Makefile.txt.