From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Developer(s)Sandia National Laboratories
Stable release
13.0.1 / November 14, 2020; 20 months ago (2020-11-14)
Available inC++ and C
LicenseModified BSD license, GNU Lesser General Public License

Trilinos is a collection of open-source software libraries, called packages, intended to be used as building blocks for the development of scientific applications. The word "Trilinos" is Greek and conveys the idea of "a string of pearls", suggesting a number of software packages linked together by a common infrastructure. Trilinos was developed at Sandia National Laboratories from a core group of existing algorithms and utilizes the functionality of software interfaces such as the BLAS, LAPACK, and MPI (the message-passing interface for distributed-memory parallel programming).[1][2][3] In 2004, Trilinos received an R&D100 Award.[4]

Several supercomputing facilities provide an installed version of Trilinos for their users. These include the National Energy Research Scientific Computing Center (NERSC),[5] Blue Waters at the National Center for Supercomputing Applications,[6] and the Titan supercomputer at Oak Ridge National Laboratory.[7] Cray supercomputers come with Trilinos installed as part of the Cray Scientific and Math Libraries.[8]


Trilinos contains packages for:

Trilinos supports distributed-memory parallel computation through the Message Passing Interface (MPI). In addition, some Trilinos packages have growing support for shared-memory parallel computation. They do so by means of the Kokkos package in Trilinos, which provides a common C++ interface over various parallel programming models, including OpenMP, POSIX Threads, and CUDA.

Programming languages[edit]

Most Trilinos packages are written in C++. Trilinos version 12.0 and later requires C++11 support. Some Trilinos packages, like ML and Zoltan, are written in C. A few packages, like Epetra, have optional implementations of some computational kernels in Fortran, but Fortran is not required to build these packages.

Some Trilinos packages have bindings for other programming languages. These include Python, C, Fortran, and Matlab.

Software licenses[edit]

Each Trilinos package may have its own software license. Most packages are Open-source; most of these have a Modified BSD license, while a few packages are under the GNU Lesser General Public License (LGPL). The BLAS, and LAPACK libraries are required dependencies.[1]

See also[edit]


  1. ^ a b "The Trilinos Project". Sandia National Laboratories. Retrieved 2014-06-24.
  2. ^ Heroux, Michael A.; Bartlett, Roscoe A.; Howle, Vicki E.; Hoekstra, Robert J.; Hu, Jonathan J.; Kolda, Tamara G.; Lehoucq, Richard B.; Long, Kevin R.; Pawlowski, Roger P.; Phipps, Eric T.; Salinger, Andrew G.; Thornquist, Heidi K.; Tuminaro, Ray S.; Willenbring, James M.; Williams, Alan; Stanley, Kendall S. (2005). "An overview of the Trilinos project". ACM Trans. Math. Softw. 31 (3): 397–423. CiteSeerX doi:10.1145/1089014.1089021.
  3. ^ Palen, Brock; Squyres, Jeff; Heroux, Mike; Willenbring, Jim. "RCE 49: Trilinos". Research, Computing, and Engineering (RCE) Podcast. Retrieved 24 June 2014.
  4. ^ "DOE-Funded Research Wins 26 Awards". 2004-10-12. Retrieved 2020-08-03.
  5. ^ "Trilinos". National Energy Research Scientific Computing Center (NERSC). Retrieved 24 June 2014.
  6. ^ "Trilinos". Blue Waters: Sustained Petascale Computing. National Center for Supercomputing Applications (NCSA). Retrieved 24 June 2014.
  7. ^ "Trilinos". Oak Ridge Leadership Computing Facility. Oak Ridge National Laboratory. Retrieved 24 June 2014.
  8. ^ "Cray Programming Environment User's Guide". CRAYDOC: Customer Documentation. Cray Inc. Retrieved 24 June 2014.

External links[edit]