Advertisement

Array Design and Expression Evaluation in POOMA II

  • Steve Karmesin
  • James Crotinger
  • Julian Cummings
  • Scott Haney
  • William Humphrey
  • John Reynders
  • Stephen Smith
  • Timothy J. Williams
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1505)

Abstract

POOMA is a templated C++ class library for use in the development of large-scale scientific simulations on serial and parallel computers. POOMA II is a new design and implementation of POOMA intended to add richer capabilities and greater flexibility to the framework. The new design employs a generic Array class that acts as an interface to, or view on, a wide variety of data representation objects referred to as engines. This design separates the interface and the representation of multidimensional arrays. The separation is achieved using compile-time techniques rather than virtual functions, and thus code efficiency is maintained. POOMA II uses PETE, the Portable Expression Template Engine, to efficiently represent complex mathematical expressions involving arrays and other objects. The representation of expressions is kept separate from expression evaluation, allowing the use of multiple evaluator mechanisms that can support nested where-block constructs, hardware-specific optimizations and different run-time environments.

Keywords

Parse Tree Array Design Domain Object Virtual Function Multidimensional Array 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    William Humphrey, Steve Karmesin, Federico Bassetti, and John Reynders. Optimization of data-parallel field expressions in the POOMA framework. In ISCOPE’ 97, December 1997. Marina del Rey, CA.Google Scholar
  2. [2]
    John 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
  3. [3]
    Todd Veldhuizen. Expression templates. C++ Report, June 1995.Google Scholar
  4. [4]
    James O. Coplien. Advanced C++ Programming Styles and Idioms. Addison-Wesley, 1992.Google Scholar
  5. [5]
    David R. Musser and Atul Saini. STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library. Addison-Wesley, 1996.Google Scholar
  6. [6]
    Federico Bassetti, Kei Davis, and Dan Quinlan. A comparison of performance-enhancing strategies for parallel numerical object-oriented frameworks. In ISCOPE’ 97, December 1997. Marina del Rey, CA.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Steve Karmesin
    • 1
  • James Crotinger
    • 1
  • Julian Cummings
    • 1
  • Scott Haney
    • 1
  • William Humphrey
    • 1
  • John Reynders
    • 1
  • Stephen Smith
    • 1
  • Timothy J. Williams
    • 1
  1. 1.Los Alamos National LaboratoryLos AlamosUSA

Personalised recommendations