Trilinos is a collection of open-sourcesoftware 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 BLAS, LAPACK, and MPI.[2][3][4]
In 2004, Trilinos received an R&D100 Award.[5]
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, which provides a common C++ interface over various parallel programming models, including OpenMP, POSIX Threads, and CUDA.
Programming languages
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.
^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. CiteSeerX10.1.1.150.5502. doi:10.1145/1089014.1089021. S2CID4679315.