Skip to main content

The role of abstraction in high-performance computing

  • Conference paper
  • First Online:
Scientific Computing in Object-Oriented Parallel Environments (ISCOPE 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1343))

Abstract

Although there is perpetual interest in using high-level languages such as C++ for high-performance computing, the conventional wisdom is that the very data abstractions that make these languages attractive from a software engineering perspective carry with them inherent performance penalties that make them unattractive from a performance perspective. The Matrix Template Library (MTL) is a C++ library specification that consists of a small number of composable template classes for defining sparse and dense matrix types as well as a comprehensive set of generic algorithms for numerical linear algebra. In this paper, we discuss our experiences with MTL and demonstrate that abstraction is not necessarily the enemy of performance and that, in fact, data abstraction can be an effective tool in enabling high performance.

This work was supported by NSF cooperative grant ASC94-22380.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Susan Atlas et al. POOMA: A high performance distributed simulation environment for scientific applications. In Proceedings Supercomputing '95, 1995.

    Google Scholar 

  2. Satish Balay, William D. Gropp, Lois Curfman McInnes, and Barry F. Smith. Efficient management of parallelism in object-oriented numerical software libraries. In E. Arge, A. M. Bruaset, and H. P. Langtangen, editors, Modern Software Tools in Scientific Computing. Birkhauser, 1997.

    Google Scholar 

  3. J. Bilmes, K. Asanovic, J. Demmel, D. Lam, and C.-W. Chin. Optimizing matrix multiply using PHiPAC: A portable, high-performance, ANSI C coding methodology. Technical Report CS-96-326, University of Tennessee, May 1996. Also available as LAPACK working note 111.

    Google Scholar 

  4. J. Dongarra, Andrew Lumsdaine, Xinhui Niu, Roldan Pozo, and Karin Remington. A sparse matrix library in C++ for high performance architectures. In Proceedings Object Oriented Numerics Conference, Sun River, OR, 1994.

    Google Scholar 

  5. J. Dongarra, R. Pozo, and D. Walker. LAPACK++: A design overview of objectoriented extensions for high performance linear algebra. In Proceedings of Supercomputing '93, pages 162–171. IEEE Press, 1993.

    Google Scholar 

  6. Monica S. Lam, Edward E. Rothberg, and Michael E. Wolf. The cache performance and optimizations of blocked algorithms. In ASPLOS-IV Proceedings — Fourth International Conference on Architectural Support for Programming Languages and Operating Systems. ACM Press, 1991.

    Google Scholar 

  7. Meng Lee and Alexander Stepanov. The standard template library. Technical report, HP Laboratories, February 1995.

    Google Scholar 

  8. Andrew Lumsdaine and Brian McCandless. Parallel extensions to the matrix template library. In Proc. 8th SIAM Conference on Parallel Processing for Scientific Computing. SIAM, 1997.

    Google Scholar 

  9. David R. Musser and Alexander A. Stepanov. Generic programming. In Lecture Notes in Computer Science 358, pages 13–25. Springer-Verlag, 1989.

    Google Scholar 

  10. David R. Musser and Alexander A. Stepanov. Algorithm-oriented generic libraries. Software-Practice and Experience, 24(7):623–642, July 1994.

    Google Scholar 

  11. Roldan Pozo. Template numerical toolkit for linear algebra: high performance programming with C++ and the standard template library. In Proceedings ETPSC III, August 1996.

    Google Scholar 

  12. Karen A. Remington and Roldan Pozo. NIST Sparse BLAS User's Guide. National Institute of Standards and Technology.

    Google Scholar 

  13. Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, Massachusetts, second edition, 1991.

    Google Scholar 

  14. The HPC++ Working Group. HPC++ white papers. Technical report, Center for Research on Parallel Computation, 1995.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Yutaka Ishikawa Rodney R. Oldehoeft John V. W. Reynders Marydell Tholburn

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag

About this paper

Cite this paper

McCandless, B.C., Lumsdaine, A. (1997). The role of abstraction in high-performance computing. In: Ishikawa, Y., Oldehoeft, R.R., Reynders, J.V.W., Tholburn, M. (eds) Scientific Computing in Object-Oriented Parallel Environments. ISCOPE 1997. Lecture Notes in Computer Science, vol 1343. Springer, Berlin, Heidelberg . https://doi.org/10.1007/3-540-63827-X_62

Download citation

  • DOI: https://doi.org/10.1007/3-540-63827-X_62

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63827-8

  • Online ISBN: 978-3-540-69656-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics