An Overview of Trilinos
Total Page:16
File Type:pdf, Size:1020Kb
SAND REPORT SAND2003-2927 Unlimited Release Printed August 2003 An Overview of Trilinos Michael Heroux, Roscoe Bartlett, Vicki Howle Robert Hoekstra, Jonathan Hu, Tamara Kolda, Richard Lehoucq, Kevin Long, Roger Pawlowski, Eric Phipps, Andrew Salinger, Heidi Thornquist, Ray Tuminaro, James Willenbring and Alan Williams Sandia National Laboratories P.O. Box 5800 Albuquerque, NM 87185-1110 Prepared by Sandia National Laboratories Albuquerque, New Mexico 87185 and Livermore, California 94550 Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under Contract DE-AC04-94AL85000. Approved for public release; further dissemination unlimited. Issued by Sandia National Laboratories, operated for the United States Department of Energy by Sandia Corporation. NOTICE: This report was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government, nor any agency thereof, nor any of their employees, nor any of their contractors, subcontractors, or their employees, make any warranty, express or implied, or assume any legal liability or re- sponsibility for the accuracy, completeness, or usefulness of any information, appara- tus, product, or process disclosed, or represent that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Govern- ment, any agency thereof, or any of their contractors or subcontractors. The views and opinions expressed herein do not necessarily state or reflect those of the United States Government, any agency thereof, or any of their contractors. Printed in the United States of America. This report has been reproduced directly from the best available copy. Available to DOE and DOE contractors from U.S. Department of Energy Office of Scientific and Technical Information P.O. Box 62 Oak Ridge, TN 37831 Telephone: (865) 576-8401 Facsimile: (865) 576-5728 E-Mail: [email protected] Online ordering: http://www.doe.gov/bridge Available to the public from U.S. Department of Commerce National Technical Information Service 5285 Port Royal Rd Springfield, VA 22161 Telephone: (800) 553-6847 Facsimile: (703) 605-6900 E-Mail: [email protected] Online ordering: http://www.ntis.gov/ordering.htm T O EN F E TM N R E A R P G E Y D U ¥ ¥ N A I C T I E R D E S M T A ATES OF SAND2003-2927 Unlimited Release Printed August 2003 An Overview of Trilinos Michael Heroux, Jonathan Hu, Richard Lehoucq, Heidi Thornquist, Ray Tuminaro, and James Willenbring Computational Mathematics and Algorithms Department Roscoe Bartlett Optimization and Uncertainty Estimation Department Vicki Howle, Tamara Kolda, and Kevin Long Computational Sciences and Mathematics Research Department Robert Hoekstra, Roger Pawlowski, Eric Phipps, and Andrew Salinger Computational Sciences Department Alan Williams High Performance Computing and Networking Department Sandia National Laboratories P.O. Box 5800 Albuquerque, NM 87185-1110 Abstract The Trilinos Project is an effort to facilitate the design, development, inte- gration and ongoing support of mathematical software libraries. In particular, our goal is to develop parallel solver algorithms and libraries within an object- oriented software framework for the solution of large-scale, complex multi- physics engineering and scientific applications. Our emphasis is on developing 3 TrilinosTM Overview robust, scalable algorithms in a software framework, using abstract interfaces for flexible interoperability of components while providing a full-featured set of concrete classes that implement all abstract interfaces. Trilinos uses a two-level software structure designed around collections of packages. A Trilinos package is an integral unit usually developed by a small team of experts in a particular algorithms area such as algebraic precondition- ers, nonlinear solvers, etc. Packages exist underneath the Trilinos top level, which provides a common look-and-feel, including configuration, documenta- tion, licensing, and bug-tracking. Trilinos packages are primarily written in C++, but provide some C and Fortran user interface support. We provide an open architecture that allows easy integration with other solver packages and we deliver our software to the outside community via the Gnu Lesser General Public License (LGPL) [20]. This report provides an overview of Trilinos, discussing the objectives, history, current development and future plans of the project. 4 TrilinosTM Overview Acknowledgments The authors would like to acknowledge the support of the ASCI and LDRD pro- grams that funded development of Trilinos. 5 TrilinosTM Overview Intentionally Left Blank 6 CONTENTS TrilinosTM Overview Contents Nomenclature . 9 1 Background . 11 2 Introduction . 12 3 Trilinos Design Philosophy . 12 3.1 Services Provided by Trilinos . 14 4 Petra and TSF: Two Special Package Collections . 15 4.1 Epetra . 16 4.2 TSFCore and TSFExtended . 16 5 Common Tools Package: Teuchos . 17 6 Trilinos Package Interoperability Mechanisms . 19 7 Overview of Current Package Development . 21 7.1 The Petra Object Model . 21 Epetra: Essential Implementation of Petra Object Model . 21 Tpetra: Templated C++ Implementation of Petra Object Model . 21 Jpetra: Java Implementation of Petra Object Model . 22 7.2 TSF: The Trilinos Abstract Class Packages . 23 7.3 AztecOO: Concrete Preconditioned Iterative Solvers . 24 7.4 Belos: Generic Implementation of Krylov Methods . 25 7.5 Amesos: Object-oriented Interface to Direct Solvers . 25 7.6 Komplex: Solver Suite for Complex-valued Linear Systems . 26 7.7 Ifpack: Parallel Algebraic Preconditioners . 27 7.8 ML: Multi-level Preconditioner Package . 27 7.9 Meros . 28 7.10 NOX: Nonlinear Solver Package . 28 7.11 LOCA: Library of Continuation Algorithms . 29 7.12 Anasazi: Eigensolver package . 30 7.13 Future Packages . 31 8 Conclusions. 31 References. 37 Appendix A Brief Overview of Some Object-Oriented Concepts . 39 Object-oriented Programming . 39 7 TrilinosTM Overview FIGURES Some Key OOP Terms . 40 Figures 1 Current collection of Trilinos Packages . 13 8 FIGURES TrilinosTM Overview Nomenclature Trilinos The name of the project. Also a Greek term which, loosely translated means “a string of pearls,” meant to evoke an image that each Trilinos package is a pearl in its own right, but is even more valuable when combined with other packages. Package A self-contained collection of software in Trilinos focused on one primary class of numerical methods. Also a fundamental, integral unit in the Trilinos framework. new package A sample Trilinos package containing all of the infrastructure to install a new package into the Trilinos framework. Contains the basic directory structure, a collection of sample configuration and build files and a sample “Hello World” package. Also a website. Anasazi An extensible and interoperable framework for large-scale eigenvalue algo- rithms.The motivation for this framework is to provide a generic interface to a collection of algorithms for solving large-scale eigenvalue problems. AztecOO Linear solver package based on preconditioned Krylov methods. A follow-on to the Aztec solver package [48]. Supports all Aztec interfaces and function- ality, but also provides significant new functionality. Belos A Greek term meaning “arrow.” Belos is the next generation of iterative solvers. Belos solvers are written using “generic” programming techniques. In other words, Belos is written using TSF abstract interfaces and therefore has no explicit dependence on any concrete linear algebra library. Instead, Belos solvers can be used with any concrete linear algebra library that imple- ments the TSF abstract interfaces. Ifpack Object-oriented algebraic preconditioner, compatible with Epetra and AztecOO. Supports construction and use of parallel distributed memory precondition- ers such as overlapping Schwarz domain decomposition, Jacobi scaling and local Gauss-Seidel relaxations. Komplex Complex linear equation solver using equivalent real formulations [11], built on top of Epetra and AztecOO. LOCA Library of continuation algorithms. A package of scalable stability analysis algorithms (available as part of the NOX nonlinear solver package). When integrated into an application code, LOCA enables the tracking of solution branches as a function of system parameters and the direct tracking of bifur- cation points. 9 TrilinosTM Overview FIGURES Meros Segregated preconditioning package. Provides scalable block precondition- ing for problems that couple simultaneous solution variables such as Navier- Stokes problems. ML Algebraic multi-level preconditioner package. Provides scalable precondition- ing capabilities for a variety of problem classes. NOX A collection of nonlinear solvers, designed to be easily integrated into an application and used with many different linear solvers. Petra A Greek term meaning “foundation.” Trilinos has three Petra libraries: Epetra, Tpetra and Jpetra that provide basic classes for constructing and manipulat- ing matrix, graph and vector objects. Epetra is the current production version that is split into two packages, one core and one extensions. Epetra Current C++ production implementation of the Petra Object Model. The “E” in Epetra stands for “essential” implying that this version provides the most important capabilities