skip to main content
article

An overview of the Trilinos project

Authors Info & Claims
Published:01 September 2005Publication History
Skip Abstract Section

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.

References

  1. A. Lumsdaine, E. A. 2004. The matrix template library home page. Go online to http://www.osl.iu.edu/research/mtl.Google ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle Scholar
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. Balay, S., Gropp, W., McInnes, L., and Smith, B. 1998b. PETSc home page. Go online to http://www.mcs.anl.gov/petsc.Google ScholarGoogle Scholar
  9. 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 ScholarGoogle Scholar
  10. 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 ScholarGoogle Scholar
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle Scholar
  13. 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 ScholarGoogle Scholar
  14. Davis, T. 2003. UMFPACK home page. Go online to http://www.cise.ufl.edu/research/sparse/umfpack.Google ScholarGoogle Scholar
  15. 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 ScholarGoogle Scholar
  16. 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 ScholarGoogle Scholar
  17. 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 ScholarGoogle Scholar
  18. Dongarra, J. J., Bunch, J., Moler, C., and Stewart, G. 1979. LINPACK Users' Guide. SIAM Press, Philadelphia, CA.Google ScholarGoogle Scholar
  19. 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 ScholarGoogle Scholar
  20. 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 ScholarGoogle Scholar
  21. Forum, C. 2004. The common component architecture home page. Go online to http://www.cca-forum.org.Google ScholarGoogle Scholar
  22. Free Software Foundation. 2004a. Autoconf home page. Go online to http://www.gnu.org/software/autoconf.Google ScholarGoogle Scholar
  23. Free Software Foundation. 2004b. Automake home page. Go online to http://www.gnu.org/software/automake.Google ScholarGoogle Scholar
  24. Free Software Foundation. 2004c. Gnu CVS home page. Go online to http://www.gnu.org/software/cvs.Google ScholarGoogle Scholar
  25. Free Software Foundation. 2004d. Gnu m4 home page. Go online to http://www.gnu.org/software/m4.Google ScholarGoogle Scholar
  26. Free Software Foundation. 2004e. Gnu mailman home page. Go online to http://www.gnu.org/software/mailman/mailman.html.Google ScholarGoogle Scholar
  27. Free Software Foundation. 2004f. Libtool home page. Go online to http://www.gnu.org/software/libtool.Google ScholarGoogle Scholar
  28. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1994. Design Patterns, Elements of Reusable Object Oriented Software. Addison-Wesley, Reading, MA. Google ScholarGoogle Scholar
  29. Granlund, T. 2004. GNU MP: The GNU Multiple Precision Arithmetic Library, 4.1.3 ed. SWOX AB, Stockholm, Sweden.Google ScholarGoogle Scholar
  30. 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 ScholarGoogle Scholar
  31. Heroux, M. A. 2004. Trilinos home page. Go online to http://software.sandia.gov/trilinos.Google ScholarGoogle Scholar
  32. 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 ScholarGoogle Scholar
  33. 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 ScholarGoogle Scholar
  34. 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 ScholarGoogle Scholar
  35. Kolda, T. G. and Pawlowski, R. P. 2004. Nox home page. Go online to http://software.sandia.gov/nox.Google ScholarGoogle Scholar
  36. Kotulski, J. D. 2004. Pliris home page. Go online to http://software.sandia.gov/Trilinos/packages/pliris.Google ScholarGoogle Scholar
  37. Li, X. and Demmel, J. 2003. SuperLU home page. http://crd.lbl.gov/xiaoye/SuperLU/.Google ScholarGoogle Scholar
  38. 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 ScholarGoogle Scholar
  39. Myers, N. C. 1995. Traits: A new and useful template technique. C++ Rep. 7, 5 (June), 32--35.Google ScholarGoogle Scholar
  40. 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 ScholarGoogle Scholar
  41. 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 ScholarGoogle Scholar
  42. 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 ScholarGoogle Scholar
  43. Raghavan, P. 2003. DSCPACK home page. Go online to http://www.cse.psu.edu/~raghavan/Dscpack.Google ScholarGoogle Scholar
  44. 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 ScholarGoogle Scholar
  45. 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 ScholarGoogle Scholar
  46. 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 ScholarGoogle Scholar
  47. 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 ScholarGoogle Scholar
  48. 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 ScholarGoogle Scholar
  49. 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 ScholarGoogle Scholar
  50. Stroustrup, B. 2000. The C++ Programming Language. Addison-Wesley, Reading, MA. Google ScholarGoogle Scholar
  51. Sun Microsystems. 2003. Java Native Interface. Go online to http://java.sun.com/products/jdk/1.2/docs/guide/jni.Google ScholarGoogle Scholar
  52. The Mozilla Organization. 2004a. Mozilla bonsai home page. Go online to http://www.mozilla.org/bonsai.html.Google ScholarGoogle Scholar
  53. The Mozilla Organization. 2004b. Mozilla Bugzilla home page. Go online to http://www.mozilla.org/projects/bugzilla.Google ScholarGoogle Scholar
  54. Thornquist, H., Lehoucq, R., and Hetmaniuk, U. 2004. Anasazi home page. Go online to http://software.sandia.gov/Trilinos/packages/anasazi.Google ScholarGoogle Scholar
  55. Tong, C. and Tuminaro, R. 2000. ML2.0 smoothed aggregation user's guide. Tech. rep. SAND2001-8028. Sandia National Laboratories, Albuquerque, NM.Google ScholarGoogle Scholar
  56. 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 ScholarGoogle Scholar
  57. Tuminaro, R. S. and Hu, J. 2004. Ml home page. Go online to http://www.cs.sandia.gov/~tuminaro/ML_Description.html.Google ScholarGoogle Scholar
  58. van Heesch, D. 2004. Doxygen home page. Go online to http://www.doxygen.org.Google ScholarGoogle Scholar
  59. 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 ScholarGoogle Scholar
  60. 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 ScholarGoogle Scholar
  61. Vaughan, G., Elliston, B., Tromey, T., and Taylor, I. 2000. Gnu Autoconf, Automake, and Libtool. New Riders, Berkeley, CA. Google ScholarGoogle Scholar
  62. 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 ScholarGoogle Scholar
  63. 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 ScholarGoogle Scholar

Index Terms

  1. An overview of the Trilinos project

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM Transactions on Mathematical Software
              ACM Transactions on Mathematical Software  Volume 31, Issue 3
              Special issue on the Advanced CompuTational Software (ACTS) Collection
              September 2005
              143 pages
              ISSN:0098-3500
              EISSN:1557-7295
              DOI:10.1145/1089014
              Issue’s Table of Contents

              Copyright © 2005 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 September 2005
              Published in toms Volume 31, Issue 3

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader