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.
Preview
Unable to display preview. Download preview PDF.
References
Susan Atlas et al. POOMA: A high performance distributed simulation environment for scientific applications. In Proceedings Supercomputing '95, 1995.
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.
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.
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.
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.
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.
Meng Lee and Alexander Stepanov. The standard template library. Technical report, HP Laboratories, February 1995.
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.
David R. Musser and Alexander A. Stepanov. Generic programming. In Lecture Notes in Computer Science 358, pages 13–25. Springer-Verlag, 1989.
David R. Musser and Alexander A. Stepanov. Algorithm-oriented generic libraries. Software-Practice and Experience, 24(7):623–642, July 1994.
Roldan Pozo. Template numerical toolkit for linear algebra: high performance programming with C++ and the standard template library. In Proceedings ETPSC III, August 1996.
Karen A. Remington and Roldan Pozo. NIST Sparse BLAS User's Guide. National Institute of Standards and Technology.
Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, Massachusetts, second edition, 1991.
The HPC++ Working Group. HPC++ white papers. Technical report, Center for Research on Parallel Computation, 1995.
Author information
Authors and Affiliations
Editor information
Rights 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