Abstract
The Trilinos Project is an effort to facilitate the design, development, integration, and ongoing support of mathematical software libraries within an object-oriented framework for the solution of large-scale, complex multiphysics engineering and scientific problems. Trilinos addresses two fundamental issues of developing software for these problems: (i) providing a streamlined process and set of tools for development of new algorithmic implementations and (ii) promoting interoperability of independently developed software.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 preconditioners, nonlinear solvers, etc. Packages exist underneath the Trilinos top level, which provides a common look-and-feel, including configuration, documentation, licensing, and bug-tracking.Here we present the overall Trilinos design, describing our use of abstract interfaces and default concrete implementations. We discuss the services that Trilinos provides to a prospective package and how these services are used by various packages. We also illustrate how packages can be combined to rapidly develop new algorithms. Finally, we discuss how Trilinos facilitates high-quality software engineering practices that are increasingly required from simulation software.
- A. Lumsdaine, E. A. 2004. The matrix template library home page. Go online to http://www.osl.iu.edu/research/mtl.Google Scholar
- Alpatov, P., Baker, G., Edwards, C., Gunnels, J., Morrow, G., Overfelt, J., van de Geijn, R., and Wu, Y.-J. J. 1997. Plapack: Parallel linear algebra package design overview. In Proceedings of the 1997 ACM/IEEE Conference on Supercomputing (CDROM, San Jose, CA). ACM Press, New York, NY, 1--16. Google Scholar
- Amestoy, P. R., Duff, I. S., L'Excellent, J.-Y., and Koster, J. 2003. MUMPS home page. Go online to http://www.enseeiht.fr/lima/apo/MUMPS.Google Scholar
- Anderson, E., Bai, Z., Bischof, C., Demmel, J., Dongarra, J., Croz, J. D., Greenbaum, A., Hammarling, S., McKenney, A., Ostrouchov, S., and Sorensen, D. 1995. LAPACK Users' Guide, 2nd ed. SIAM Press, Philadelphia, PA. Google Scholar
- Bailey, D. H., Hida, Y., Li, X. S., and Thompson, B. 2002. ARPREC: An arbitrary precision computation package. Tech. rep. LBNL-53651. Lawrence Berkeley National Laboratory, Berkeley, CA.Google Scholar
- Balay, S., Gropp, W., McInnes, L., and Smith, B. 1997. Efficient management of parallelism in object oriented numerical software libraries. In Modern Software Tools in Scientific Computing, E. Arge, A. M. Bruaset, and H. P. Langtangen, Eds. Birkhauser Press, New York, NY, 163-- 202. Google Scholar
- Balay, S., Gropp, W., McInnes, L., and Smith, B. 1998a. PETSc 2.0 users manual. Tech. rep. ANL-95/11---Revision 2.0.22. Argonne National Laboratory, Argonne, IL.Google Scholar
- Balay, S., Gropp, W., McInnes, L., and Smith, B. 1998b. PETSc home page. Go online to http://www.mcs.anl.gov/petsc.Google Scholar
- Bartlett, R. A., Heroux, M. A., and Long, K. R. 2003. TSFCore 1.0: A package of light-weight object-oriented abstractions for the development of abstract numerical algorithms and interfacing to linear algebra libraries and applications. Tech. rep. SAND2003-1378. Sandia National Laboratories, Albuquerque, NM.Google Scholar
- Blackford, L. S., Choi, J., Cleary, A., D'Azevedo, E., Jemmel, J., Dhillon, I., Dongarra, J., Hammarling, S., Henry, G., Petitet, A., Stanley, K., Walker, D., and Whaley, R. C. 1997. ScaLAPACK Users' Guide. SIAM Press, Philadelphia, PA. Google Scholar
- Bochev, P. B., Garasi, C., Hu, J. J., Robinson, A. C., and Tuminaro, R. S. 2003. An improved algebraic multigrid method for solving Maxwell's equations. SIAM J. Sci. Comput. 25, 2. Google Scholar
- Boman, E., Devine, K., Heaphy, R., Hendrickson, B., Heroux, M., and Preis, R. 2004. Ldrd report: Parallel repartitioning for optimal solver performance. Tech. rep. SAND2004-0365. Sandia National Laboratories, Albuquerque, NM.Google Scholar
- Carpenter, B., Getov, V., Judd, G., Skjellum, A., and Fox, G. 2000. MPJ: MPI-like message passing for Java. Concurrency Computat.: Pract. Exper. 12, 11 (Sept.), 1019--1038.Google Scholar
- Davis, T. 2003. UMFPACK home page. Go online to http://www.cise.ufl.edu/research/sparse/umfpack.Google Scholar
- Davis, T. and Stanley, K. 2004. Sparse lu factorization of circuit simulation matrices. Go online to http://www.cise.ufl.edu/~davis/techreports/KLU/pp04.pdf.Google Scholar
- Day, D. and Heroux, M. A. 2001. Solving complex-valued linear systems via equivalent real formulations. SIAM J. Sci. Comput. 23, 2, 480--498. Google Scholar
- Devine, K. D., Hendrickson, B. A., Boman, E. G., John, M. M. S., and Vaughan, C. 1999. Zoltan: A dynamic load-balancing library for parallel applications---user's guide. Tech. rep. SAND99-1377. Sandia National Laboratories, Albuquerque, NM.Google Scholar
- Dongarra, J. J., Bunch, J., Moler, C., and Stewart, G. 1979. LINPACK Users' Guide. SIAM Press, Philadelphia, CA.Google Scholar
- Doolin, D. M., Dongarra, J., and Seymour, K. 1998. Jlapack---compiling lapack Fortran to Java. Go online to http://icl.cs.utk.edu/projects/f2j/f2jreport/f2jreport.html. Google Scholar
- Elman, H., Howle, V. E., Shadid, J. N., and Tuminaro, R. S. 2003. A parallel block multi-level preconditioner for the 3d incompressible Navier-Stokes equations. J. Computat. Phys. 187, 2, 504--523. Google Scholar
- Forum, C. 2004. The common component architecture home page. Go online to http://www.cca-forum.org.Google Scholar
- Free Software Foundation. 2004a. Autoconf home page. Go online to http://www.gnu.org/software/autoconf.Google Scholar
- Free Software Foundation. 2004b. Automake home page. Go online to http://www.gnu.org/software/automake.Google Scholar
- Free Software Foundation. 2004c. Gnu CVS home page. Go online to http://www.gnu.org/software/cvs.Google Scholar
- Free Software Foundation. 2004d. Gnu m4 home page. Go online to http://www.gnu.org/software/m4.Google Scholar
- Free Software Foundation. 2004e. Gnu mailman home page. Go online to http://www.gnu.org/software/mailman/mailman.html.Google Scholar
- Free Software Foundation. 2004f. Libtool home page. Go online to http://www.gnu.org/software/libtool.Google Scholar
- Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1994. Design Patterns, Elements of Reusable Object Oriented Software. Addison-Wesley, Reading, MA. Google Scholar
- Granlund, T. 2004. GNU MP: The GNU Multiple Precision Arithmetic Library, 4.1.3 ed. SWOX AB, Stockholm, Sweden.Google Scholar
- Heroux, M. A. 2002. Epetra Reference Manual, 2.0 ed. Go online to http://software.sandia.gov/trilinos/packages/epetra/doxygen/latex/EpetraReferenceManual.pdf.Google Scholar
- Heroux, M. A. 2004. Trilinos home page. Go online to http://software.sandia.gov/trilinos.Google Scholar
- Heroux, M. A., Hoekstra, R. J., and Williams, A. B. 2004. An object model for parallel numerical linear algebra computations. Tech. rep. Sandia National Laboratories, Albuquerque, NM. In preparation.Google Scholar
- Heroux, M. A., Willenbring, J. M., and Heaphy, R. 2003. Trilinos Developers Guide Part II: ASCI Software Quality Engineering Practices Version 1.0. Tech. rep. SAND2003-1899. Sandia National Laboratories, Albuquerque, NM.Google Scholar
- Kay, D., Loghin, D., and Wathen, A. 2002. A preconditioner for the steady-state navier-stokes equations. SIAM J. Sci. Comput. 24, 1, 237--256. Google Scholar
- Kolda, T. G. and Pawlowski, R. P. 2004. Nox home page. Go online to http://software.sandia.gov/nox.Google Scholar
- Kotulski, J. D. 2004. Pliris home page. Go online to http://software.sandia.gov/Trilinos/packages/pliris.Google Scholar
- Li, X. and Demmel, J. 2003. SuperLU home page. http://crd.lbl.gov/xiaoye/SuperLU/.Google Scholar
- Moreira, J. E., Midkiff, S. P., Gupta, M., Artigas, P. V., Wu, P., and Almasi, G. 2001. The NINJA project. Commun. ACM 44, 10 (Oct.), 102--109. Google Scholar
- Myers, N. C. 1995. Traits: A new and useful template technique. C++ Rep. 7, 5 (June), 32--35.Google Scholar
- Nelisse, A., Maassen, J., Kielmann, T., and Bal, H. E. 2003. Ccj: Object-based message passing and collective communication in Java. Concurrency Computat.: Pract. Exper. 15, 3--5, 341--369.Google Scholar
- Oldham, J. D. 2002. POOMA: A C++ Toolkit for High-Performance Parallel Scientific Computing, 1.01 ed. CodeSourcery, LLC. Go online to http://www.codesourcery.com/public/pooma/manual.pdf.Google Scholar
- Quarles, T., Pederson, D., Newton, R., Sangiovanni-Vincentelli, A., and Wayne, C. 2003. SPICE home page. Go online to http://bwrc.eecs.berkeley.edu/Classes/IcBook/SPICE.Google Scholar
- Raghavan, P. 2003. DSCPACK home page. Go online to http://www.cse.psu.edu/~raghavan/Dscpack.Google Scholar
- Salinger, A. G., Devine, K. D., Hennigan, G. L., Moffat, H. K., Hutchinson, S. A., and Shadid, J. N. 1996. MPSalsa: A finite element computer program for reacting flow problems, part 2---user's guide. Tech. rep. SAND96--2331. Sandia National Laboratories, Albuquerque, NM.Google Scholar
- Salinger, A. G., Lehoucq, R. B., Pawlowski, R. P., and Shadid, J. N. 2002. Computational bifurcation and stability studies of the 8:1 thermal cavity problem. Internat. J. Numer. Meth. Fluids 40, 8, 1059--1073.Google Scholar
- Shadid, J. N., Moffat, H. K., Hutchinson, S. A., Hennigan, G. L., Devine, K. D., and Salinger, A. G. 1995. MPSalsa: A finite element computer program for reacting flow problems, part 1---theoretical development. Tech. rep. SAND95--2752. Sandia National Laboratories, Albuquerque, NM.Google Scholar
- Silvester, D., Elman, H., Kay, D., and Wathen, A. 2001. Efficient preconditioning of the linearized Navier-Stokes equations for incompressible flow. J. Comp. Appl. Math. 128, 261--279. Google Scholar
- Smith, B. T., Boyle, J. M., Dongarra, J. J., Garbow, B. S., Ikebe, Y., Klema, V. C., and Moler, C. B. 1976. Matrix Eigensystem Routines---EISPACK Guide, 2nd ed. Lecture Notes in Computer Science, vol. 6. Springer--Verlag, New York, NY.Google Scholar
- Snir, M., Otto, S., Huss-Lederman, S., Walker, D., and Dongarra, J. 1998. MPI---The Complete Reference, Volume 1, MPI core. MIT Press, Cambridge, MA. Google Scholar
- Stroustrup, B. 2000. The C++ Programming Language. Addison-Wesley, Reading, MA. Google Scholar
- Sun Microsystems. 2003. Java Native Interface. Go online to http://java.sun.com/products/jdk/1.2/docs/guide/jni.Google Scholar
- The Mozilla Organization. 2004a. Mozilla bonsai home page. Go online to http://www.mozilla.org/bonsai.html.Google Scholar
- The Mozilla Organization. 2004b. Mozilla Bugzilla home page. Go online to http://www.mozilla.org/projects/bugzilla.Google Scholar
- Thornquist, H., Lehoucq, R., and Hetmaniuk, U. 2004. Anasazi home page. Go online to http://software.sandia.gov/Trilinos/packages/anasazi.Google Scholar
- Tong, C. and Tuminaro, R. 2000. ML2.0 smoothed aggregation user's guide. Tech. rep. SAND2001-8028. Sandia National Laboratories, Albuquerque, NM.Google Scholar
- Tuminaro, R. S., Heroux, M. A., Hutchinson, S. A., and Shadid, J. N. 1999. Official Aztec User's Guide, Version 2.1. Sandia National Laboratories, Albuquerque, NM.Google Scholar
- Tuminaro, R. S. and Hu, J. 2004. Ml home page. Go online to http://www.cs.sandia.gov/~tuminaro/ML_Description.html.Google Scholar
- van Heesch, D. 2004. Doxygen home page. Go online to http://www.doxygen.org.Google Scholar
- Vanek, P., Brezina, M., and Mandel, J. 1998. Convergence of algebraic multigrid based on smoothed aggregation. Tech. rep. 126, UCD/CCM. University of Colorado at Denver, Denver, CO. Google Scholar
- Vanek, P., Mandel, J., and Brezina, M. 1996. Algebraic multigrid based on smoothed aggregation for second and fourth order problems. Comput. 56, 179--196.Google Scholar
- Vaughan, G., Elliston, B., Tromey, T., and Taylor, I. 2000. Gnu Autoconf, Automake, and Libtool. New Riders, Berkeley, CA. Google Scholar
- Yee, K. 1966. Numerical solution of initial boundary value problems involving Maxwell's equations in isotropic media. IEEE Trans. Antenn. Propag. 16, 302--307.Google Scholar
- Zepper, J., Aragon, K., Ellis, M., Byle, K., and Eaton, D. 2003. Sandia National Laboratories ASCI Applications Software Quality Engineering Practices, Version 2.0. Tech. rep., Sandia National Laboratories, Albuquerque, NM.Google Scholar
Index Terms
- An overview of the Trilinos project
Recommendations
A new overview of the Trilinos project
A New Overview of the Trilinos Project --Part 1Since An Overview of the Trilinos Project [ACM Trans. Math. Softw. 313 2005, 397--423] was published in 2005, Trilinos has grown significantly. It now supports the development of a broad collection of libraries for scalable computational science and ...
The design of trilinos
PARA'04: Proceedings of the 7th international conference on Applied Parallel Computing: state of the Art in Scientific ComputingThe Trilinos Project is an effort to facilitate the design, development, integration and ongoing support of mathematical software libraries within an object-oriented framework for the solution of large-scale, complex multi-physics engineering and ...
Risk-based Software Quality and Security Engineering in Data-intensive Environments: (Invited Keynote)
Future Data and Security EngineeringAbstractThe concept of risk as a measure for the potential of gaining or losing something of value has successfully been applied in software quality engineering for years, e.g., for risk-based test case prioritization, and in security engineering, e.g., ...
Comments