Abstract
Performance short of that of C or FORTRAN 77 is a significant obstacle to general acceptance of object-oriented C++ frameworks in high-performance parallel scientific computing; nonetheless, their value in simplifying complex computations is inarguable. Examples of good performance for object-oriented libraries/frameworks are interesting, but a systematic analysis of performance issues has not been done. This paper explores a few of these issues and reports on three mechanisms for enhancing the performance of object-oriented frameworks for numerical computation. The first is binary operator overloading implemented with substantial internal optimizations, the second is expression templates, and the third is an optimizing preprocessor. The first two have been completely implemented and are available in the A++/P++ array class library, the third, ROSE++, is work in progress. This paper provides some perspective on the types of optimizations that we consider important in our numerical applications using OVERTURE involving complex geometry and AMR on parallel architectures.
A++/P++ is available from http://www.c3.lanl.gov/cic19/teams/napc/nape.shtml
ROSE++ Web Site: http://www.c3.lanl.gov/ dquinlan/ROSE.html
OVERTURE is available from http://www.c3.lanl.gov/cic19/teams/napc/napc.shtml
Preview
Unable to display preview. Download preview PDF.
References
David Brown, Geoff Chesshire, William Henshaw, and Dan Quinlan. Overture: An object-oriented software system for solving partial differential equations in serial and parallel environments. In Proceedings of the SIAM Parallel Conference, Minneapolis, MN, March 1997.
Kei Davis and Dan Quinlan. Rose: An optimizing preprocessor for the objectoriented overture framework. http://www.c3.lanl.gov/-dquinlan/ROSE.html.
B. Francois et. al. Sage++: An object-oriented toolkit and class library for building fortran and c++ restructuring tools. In Proceedings of the Second Annual Object-Oriented Numerics Conference, 1994.
M. Lemke and Dan Quinlan. P++, a c++ virtual shared grids based programming environment for architecture-independent development of structured grid applications. In CONPAR/VAPP V, LNCS. Springer-Verlag, September 1992.
Dan Quinlan and Rebecca Parsons. Run-time recognition of task parallelism within the p++ parallel array class library. In Proceedings of the Conference on Parallel Scalable Libraries, 1993.
Dan Quinlan and Rebecca Parsons. A++/p++ array classes for architecture independent finite difference computations. In Proceedings of the Second Annual Object-Oriented Numerics Conference, April 1994.
Todd Veldhuizen. Expression templates. In S.B. Lippmann, editor, C++ Gems. Prentice-Hall, 1996.
O.V. Wilson and P. Lu. Parallel Programming Using C++, chapter 14, pages 547–587, MIT Press, 1997.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag
About this paper
Cite this paper
Bassetti, F., Davis, K., Quinlan, D. (1997). A comparison of performance-enhancing strategies for parallel numerical object-oriented frameworks. 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_39
Download citation
DOI: https://doi.org/10.1007/3-540-63827-X_39
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