Trilinos

Last updated
Trilinos
Developer(s) Sandia National Laboratories
Stable release
14.4.0 [1] / August 2, 2023;6 months ago (2023-08-02)
Repository
Available in C++ and C
License Modified BSD license, GNU Lesser General Public License
Website trilinos.github.io

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 BLAS, LAPACK, and MPI. [2] [3] [4] In 2004, Trilinos received an R&D100 Award. [5]

Contents

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

Features

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, 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.

Software licenses

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. [2]

See also

Related Research Articles

<span class="mw-page-title-main">Sandia National Laboratories</span> National laboratory in Albuquerque, New Mexico.

Sandia National Laboratories (SNL), also known as Sandia, is one of three research and development laboratories of the United States Department of Energy's National Nuclear Security Administration (NNSA). Headquartered in Kirtland Air Force Base in Albuquerque, New Mexico, it has a second principal facility next to Lawrence Livermore National Laboratory in Livermore, California, and a test facility in Waimea, Kauai, Hawaii. Sandia is owned by the U.S. federal government but privately managed and operated by National Technology and Engineering Solutions of Sandia, a wholly owned subsidiary of Honeywell International.

Message Passing Interface (MPI) is a standardized and portable message-passing standard designed to function on parallel computing architectures. The MPI standard defines the syntax and semantics of library routines that are useful to a wide range of users writing portable message-passing programs in C, C++, and Fortran. There are several open-source MPI implementations, which fostered the development of a parallel software industry, and encouraged development of portable and scalable large-scale parallel applications.

Parallel Virtual Machine (PVM) is a software tool for parallel networking of computers. It is designed to allow a network of heterogeneous Unix and/or Windows machines to be used as a single distributed parallel processor. Thus large computational problems can be solved more cost effectively by using the aggregate power and memory of many computers. The software is very portable; the source code, available free through netlib, has been compiled on everything from laptops to Crays.

Netlib is a repository of software for scientific computing maintained by AT&T, Bell Laboratories, the University of Tennessee and Oak Ridge National Laboratory. Netlib comprises many separate programs and libraries. Most of the code is written in C and Fortran, with some programs in other languages.

<span class="mw-page-title-main">Jack Dongarra</span> American computer scientist (born 1950)

Jack Joseph Dongarra is an American computer scientist and mathematician. He is the American University Distinguished Professor of Computer Science in the Electrical Engineering and Computer Science Department at the University of Tennessee. He holds the position of a Distinguished Research Staff member in the Computer Science and Mathematics Division at Oak Ridge National Laboratory, Turing Fellowship in the School of Mathematics at the University of Manchester, and is an adjunct professor and teacher in the Computer Science Department at Rice University. He served as a faculty fellow at the Texas A&M University Institute for Advanced Study (2014–2018). Dongarra is the founding director of the Innovative Computing Laboratory at the University of Tennessee. He was the recipient of the Turing Award in 2021.

<span class="mw-page-title-main">LAPACK</span> Software library for numerical linear algebra

LAPACK is a standard software library for numerical linear algebra. It provides routines for solving systems of linear equations and linear least squares, eigenvalue problems, and singular value decomposition. It also includes routines to implement the associated matrix factorizations such as LU, QR, Cholesky and Schur decomposition. LAPACK was originally written in FORTRAN 77, but moved to Fortran 90 in version 3.2 (2008). The routines handle both real and complex matrices in both single and double precision. LAPACK relies on an underlying BLAS implementation to provide efficient and portable computational building blocks for its routines.

Basic Linear Algebra Subprograms (BLAS) is a specification that prescribes a set of low-level routines for performing common linear algebra operations such as vector addition, scalar multiplication, dot products, linear combinations, and matrix multiplication. They are the de facto standard low-level routines for linear algebra libraries; the routines have bindings for both C and Fortran. Although the BLAS specification is general, BLAS implementations are often optimized for speed on a particular machine, so using them can bring substantial performance benefits. BLAS implementations will take advantage of special floating point hardware such as vector registers or SIMD instructions.

The GNU Scientific Library is a software library for numerical computations in applied mathematics and science. The GSL is written in C; wrappers are available for other programming languages. The GSL is part of the GNU Project and is distributed under the GNU General Public License.

Linaro DDT is a commercial C, C++ and Fortran 90 debugger. It is widely used for debugging parallel Message Passing Interface (MPI) and threaded programs, including those running on clusters of Linux machines.

The Portable, Extensible Toolkit for Scientific Computation, is a suite of data structures and routines developed by Argonne National Laboratory for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the Message Passing Interface (MPI) standard for all message-passing communication. PETSc is the world’s most widely used parallel numerical software library for partial differential equations and sparse matrix computations. PETSc received an R&D 100 Award in 2009. The PETSc Core Development Group won the SIAM/ACM Prize in Computational Science and Engineering for 2015.

<span class="mw-page-title-main">National Energy Research Scientific Computing Center</span> Supercomputer facility operated by the US Department of Energy in Berkeley, California

The National Energy Research Scientific Computing Center (NERSC), is a high-performance computing (supercomputer) National User Facility operated by Lawrence Berkeley National Laboratory for the United States Department of Energy Office of Science. As the mission computing center for the Office of Science, NERSC houses high performance computing and data systems used by 9,000 scientists at national laboratories and universities around the country. Research at NERSC is focused on fundamental and applied research in energy efficiency, storage, and generation; Earth systems science, and understanding of fundamental forces of nature and the universe. The largest research areas are in High Energy Physics, Materials Science, Chemical Sciences, Climate and Environmental Sciences, Nuclear Physics, and Fusion Energy research. NERSC's newest and largest supercomputer is Perlmutter, which debuted in 2021 ranked 5th on the TOP500 list of world's fastest supercomputers.

<span class="mw-page-title-main">Lis (linear algebra library)</span>

Lis is a scalable parallel software library for solving discretized linear equations and eigenvalue problems that mainly arise in the numerical solution of partial differential equations by using iterative methods. Although it is designed for parallel computers, the library can be used without being conscious of parallel processing.

Global Arrays, or GA, is the library developed by scientists at Pacific Northwest National Laboratory for parallel computing. GA provides a friendly API for shared-memory programming on distributed-memory computers for multidimensional arrays. The GA library is a predecessor to the GAS languages currently being developed for high-performance computing.

Babel is an open source middleware system serving the scientific computing community. As a language interoperability tool, Babel enables the arbitrary mixing of software libraries written in C/C++, Fortran, Python, and Java. As a distributed computing platform, Babel provides a language-neutral Remote Method Invocation (RMI) scheme similar to Java's RMI which allows third-party plug-ins to specify custom data encodings and network protocols.

Intel oneAPI Math Kernel Library is a library of optimized math routines for science, engineering, and financial applications. Core math functions include BLAS, LAPACK, ScaLAPACK, sparse solvers, fast Fourier transforms, and vector math.

<span class="mw-page-title-main">Message passing in computer clusters</span> Aspect of computer clusters

Message passing is an inherent element of all computer clusters. All computer clusters, ranging from homemade Beowulfs to some of the fastest supercomputers in the world, rely on message passing to coordinate the activities of the many nodes they encompass. Message passing in computer clusters built with commodity servers and switches is used by virtually every internet service.

Arm MAP, is an application profiler produced by Allinea Software now part of Arm. of Warwick, United Kingdom, for profiling the performance of C, C++, Fortran 90 and Python software. It is widely used for its multithreaded and multiprocess capabilities such as profiling parallel Message Passing Interface (MPI) or OpenMP applications, including those running on clusters of Linux machines, and for scalar (sequential) code.

Qbox is an open-source software package for atomic-scale simulations of molecules, liquids and solids. It implements first principles molecular dynamics, a simulation method in which inter-atomic forces are derived from quantum mechanics. Qbox is released under a GNU General Public License (GPL) with documentation provided at http://qboxcode.org. It is available as a FreeBSD port.

References

  1. Releases trilinos/Trilinos - GitHub , Retrieved: 2023-11-01.
  2. 1 2 "The Trilinos Project". Sandia National Laboratories. Retrieved 2014-06-24.
  3. 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   10.1.1.150.5502 . doi:10.1145/1089014.1089021. S2CID   4679315.
  4. Palen, Brock; Squyres, Jeff; Heroux, Mike; Willenbring, Jim. "RCE 49: Trilinos". Research, Computing, and Engineering (RCE) Podcast. Retrieved 24 June 2014.
  5. "DOE-Funded Research Wins 26 Awards". science.osti.gov. 2004-10-12. Retrieved 2020-08-03.
  6. "Trilinos". National Energy Research Scientific Computing Center (NERSC). Retrieved 24 June 2014.
  7. "Trilinos". Blue Waters: Sustained Petascale Computing. National Center for Supercomputing Applications (NCSA). Retrieved 24 June 2014.
  8. "Trilinos". Oak Ridge Leadership Computing Facility. Oak Ridge National Laboratory. Retrieved 24 June 2014.