Software Architecture Issues in Scientific Component Development

  • Boyana Norris
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3732)

Abstract

Commercial component-based software engineering practices, such as the CORBA component model, Enterprise JavaBeans, and COM, are well-established in the business computing community. These practices present an approach for managing the increasing complexity of scientific software development, which has motivated the Common Component Architecture (CCA), a component specification targeted at high-performance scientific application development. The CCA is an approach to component development that is minimal in terms of the complexity of component interface requirements and imposes a minimal performance penalty. While this lightweight specification has enabled the development of a number of high-performance scientific components in several domains, the software design process for developing component-based scientific codes is not yet well defined. This fact, coupled with the fact that component-based approaches are still new to the scientific community, may lead to an ad hoc design process, potentially resulting in code that is harder to maintain, extend, and test and may negatively affect performance. We explore some concepts and approaches based on widely accepted software architecture design principles and discuss their potential application in the development of high-performance scientific component applications. We particularly emphasize those principles and approaches that contribute to making CCA-based applications easier to design, implement, and maintain, as well as enabling dynamic adaptivity with the goal of maximizing performance.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Anonymous: CORBA component model, http://www.omg.org/technology/documents/formal/components.htm (2004)
  2. 2.
    Anonymous: Enterprise JavaBeans downloads and specifications, http://java.sun.com/products/ejb/docs.html (2004)
  3. 3.
    Box, D.: Essential COM. Addison-Wesley Pub. Co, Reading (1997)Google Scholar
  4. 4.
    Garlan, D., Shaw, M.: An Introduction to Software Architecture. In: Advances in Software Engineering and Knowledge Engineering, World Scientific Publishing Company, Singapore (1993)Google Scholar
  5. 5.
    Armstrong, R., Gannon, D., Geist, A., Keahey, K., Kohn, S., McInnes, L.C., Parker, S., Smolinski, B.: Toward a common component architecture for high-performance scientific computing. In: Proceedings of High Performance Distributed Computing, pp. 115–124 (1999)Google Scholar
  6. 6.
    Common Component Architecture Forum: CCA Forum website, http://www.cca-forum.org (2004)
  7. 7.
    CCA Forum: CCA specification, http://cca-forum.org/specification/ (2003)
  8. 8.
    Norris, B., Balay, S., Benson, S., Freitag, L., Hovland, P., McInnes, L., Smith, B.: Parallel components for PDEs and optimization: Some issues and experiences. Parallel Computing 28(12), 1811–1831 (2002)MATHCrossRefGoogle Scholar
  9. 9.
    Lefantzi, S., Ray, J.: A component-based scientific toolkit for reacting flows. In: Proceedings of the Second MIT Conference on Computational Fluid and Solid Mechanics, Boston, Mass, Elsevier Science, Amsterdam (2003)Google Scholar
  10. 10.
    Benson, S., Krishnan, M., McInnes, L., Nieplocha, J., Sarich, J.: Using the GA and TAO toolkits for solving large-scale optimization problems on parallel computers. Technical Report ANL/MCS-P1084-0903, Argonne National Laboratory (2003)Google Scholar
  11. 11.
    Larson, J.W., Norris, B., Ong, E.T., Bernholdt, D.E., Drake, J.B., Elwasif, W.R., Ham, M.W., Rasmussen, C.E., Kumfert, G., Katz, D.S., Zhou, S., DeLuca, C., Collins, N.S.: Components, the Common Component Architecture, and the climate/weather/ocean community. In: 84th American Meteorological Society Annual Meeting, Seattle, Washington, American Meteorological Society (2004)Google Scholar
  12. 12.
    Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons Ltd, Chichester (1996)Google Scholar
  13. 13.
    Booch, G.: Unified method for object-oriented development Version 0.8. Rational Software Corporation (1995)Google Scholar
  14. 14.
    Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering 26 (2000)Google Scholar
  15. 15.
    Shende, S., Malony, A.D., Rasmussen, C., Sottile, M.: A performance interface for component-based applications. In: Proceedings of International Workshop on Performance Modeling, Evaluation and Optimization, International Parallel and Distributed Processing Symposium (2003)Google Scholar
  16. 16.
    Bhowmick, S., Raghavan, P., McInnes, L., Norris, B.: Faster PDE-based simulations using robust composite linear solvers. Future Generation Computer Systems 20, 373–387 (2004)CrossRefGoogle Scholar
  17. 17.
    McInnes, L., Norris, B., Bhowmick, S., Raghavan, P.: Adaptive sparse linear solvers for implicit CFD using Newton-Krylov algorithms. In: Proceedings of the Second MIT Conference on Computational Fluid and Solid Mechanics, Massachusetts Institute of Technology, Boston, USA, June 17-20 (2003)Google Scholar
  18. 18.
    Balay, S., Buschelman, K., Gropp, W., Kaushik, D., Knepley, M., McInnes, L., Smith, B.F., Zhang, H.: PETSc users manual. Technical Report ANL-95/11 - Revision 2.1.5, Argonne National Laboratory (2003), http://www.mcs.anl.gov/petsc
  19. 19.
    Rasmussen, C.E., Lindlan, K.A., Mohr, B., Striegnitz, J.: Chasm: Static analysis and automatic code generation for improved Fortran 90 and C++ interoperability. In: 2001 LACSI Symposium (2001)Google Scholar
  20. 20.
    Rasmussen, C.E., Sottile, M.J., Shende, S.S., Malony, A.D.: Bridging the language gap in scientific computing: the chasm approach. Technical Report LA-UR-03-3057, Advanced Computing Laboratory, Los Alamos National Laboratory (2003)Google Scholar
  21. 21.
    Bhowmick, S.: Private communication. Los Alamos National Laboratory (2004)Google Scholar
  22. 22.
    Wilde, T.: Private communication. Oak Ridge National Laboratory (2004)Google Scholar
  23. 23.
    Anonymous: Babel homepage, http://www.llnl.gov/CASC/components/babel.html (2004)
  24. 24.
    Trebon, N., Ray, J., Shende, S., Armstrong, R.C., Malony, A.: An approximate method for optimizing HPC component applications in the presence ofmultiple component implementations. Technical Report SAND2003-8760C, Sandia National Laboratories (2004), Also submitted to 9th International Workshop on High-Level Parallel Programming Models and Supportive Environments, held during the 18th International Parallel and Distributed Computing Symposium, Santa Fe, NM, USA (2004) Google Scholar
  25. 25.
    Hovland, P., Keahey, K., McInnes, L.C., Norris, B., Diachin, L.F., Raghavan, P.: A quality of service approach for high-performance numerical components. In: Proceedings of Workshop on QoS in Component-Based Software Engineering, Software Technologies Conference, Toulouse, France (2003)Google Scholar
  26. 26.
    Norris, B., Ray, J., Armstrong, R., McInnes, L.C., Bernholdt, D.E., Elwasif, W.R., Malony, A.D., Shende, S.: Computational quality of service for scientific components. In: Proceedings of International Symposium on Component-Based Software Engineering (CBSE7), Edinburgh, Scotland (2004)Google Scholar
  27. 27.
    Beugnard, A., Jézéquel, J.M., Plouzeau, N., Watkins, D.: Making components contract aware. IEEE Computer, 38–45 (1999)Google Scholar
  28. 28.
    Gu, X., Nahrstedt, K.: A scalable QoS-aware service aggregation model for peer-to-peer computing grids. In: Proceedings of High Performance Distributed Computing (2002)Google Scholar
  29. 29.
    Loyall, J.P., Schantz, R.E., Zinky, J.A., Bakken, D.E.: Specifying and measuring quality of service in distributed object systems. In: Proceedings of the First International Symposium on Object-Oriented Real-Time Distributed Computing, ISORC 1998 (1998)Google Scholar
  30. 30.
    Raje, R., Bryant, B., Olson, A., Auguston, M., Burt, C.: A quality-of-service-based framework for creating distributed heterogeneous software components. Concurrency Comput: Pract. Exper. 14, 1009–1034 (2002)MATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Boyana Norris
    • 1
  1. 1.Mathematics and Computer Science DivisionArgonne National LaboratoryArgonneUSA

Personalised recommendations