Skip to content
Snippets Groups Projects
trilinos.md 2.7 KiB
Newer Older
  • Learn to ignore specific revisions
  • David Hrbáč's avatar
    David Hrbáč committed
    # Trilinos
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    Packages for large scale scientific and engineering problems. Provides MPI and hybrid parallelization.
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    ### Introduction
    
    
    David Hrbáč's avatar
    David Hrbáč committed
    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.
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    ### Installed packages
    
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    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.
    
    Lubomir Prda's avatar
    Lubomir Prda committed
    -   **Tpetra** - next-generation linear algebra package. Supports 64-bit indexing and arbitrary data type using C++ templates.
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    -   **Belos** - library of various iterative solvers (CG, block CG, GMRES, block GMRES etc.).
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    -   **Amesos** - interface to direct sparse solvers.
    -   **Anasazi** - framework for large-scale eigenvalue algorithms.
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    -   **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.
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    
    For the full list of Trilinos packages, descriptions of their capabilities, and user manuals see [http://trilinos.sandia.gov.](http://trilinos.sandia.gov)
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    ### Installed version
    
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    Currently, Trilinos in version 11.2.3 compiled with Intel Compiler is installed on ANSELM.
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    
    David Hrbáč's avatar
    David Hrbáč committed
    ### Compiling against Trilinos
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    First, load the appropriate module:
    
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    ```bash
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
        $ module load trilinos
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    ```
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    
    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>
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    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:
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    ```bash
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
        include Makefile.export.Trilinos
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    ```
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    ```bash
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
        include Makefile.export.<package>
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    ```
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    
    
    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>.