Generic Programming in POOMA and PETE
POOMA is a C++ framework for developing portable scientific applications for serial and parallel computers using high-level physical abstractions. PETE is an general-purpose expression-template library employed by POOMA to implement expression evaluation. This paper discusses generic programming techniques that are used to achieve flexibility and high performance in both POOMA and PETE. POOMA’s array class factors the data representation and look-up into a generic engine concept. PETE’s expression templates are used to build and operate efficiently on expressions. PETE is implemented using generic techniques that allow it to adapt to a variety of client-class interfaces, and to provide a powerful and flexible compile-time expression-tree-traversal mechanism.
KeywordsTerminal Node Generic Programming Parse Tree Expression Tree Assignment Operator
Unable to display preview. Download preview PDF.
- 1.J. Reynders et al. POOMA: a framework for scientific simulations on parallel architectures. In Gregory V. Wilson and Paul Lu, editors, Parallel Programming using C++, pages 553–594. MIT Press, 1996.Google Scholar
- 2.William Humphrey, Steve Karmesin, Federico Bassetti, and John Reynders. Optimization of data-parallel field expressions in the POOMA framework. In ISCOPE’ 97, Marina del Rey, CA, December 1997.Google Scholar
- 3.Scott Haney. Is C++ fast enough for scientific computing. Computers in Physics, page 690, November 1994.Google Scholar
- 4.Todd L. Veldhuizen. Expression templates. C++ Report, 7(5):26–31, June 1995.Google Scholar
- 5.Scott W. Haney. Beating the abstraction penalty in C++ using expression templates. Computers in Physics, page 552, November 1996.Google Scholar
- 6.Geoffrey Furnish. Disambiguated glommable expression templates. Computers in Physics, page 263, May 1997.Google Scholar
- 7.John J. Barton and Lee R. Nackman. Scientific and Engineering C++. Addison-Wesley, 1994.Google Scholar