Array Design and Expression Evaluation in POOMA II

  • Authors:
  • Steve Karmesin;James Crotinger;Julian Cummings;Scott Haney;William J. Humphrey;John Reynders;Stephen Smith;Timothy Williams

  • Affiliations:
  • -;-;-;-;-;-;-;-

  • Venue:
  • ISCOPE '98 Proceedings of the Second International Symposium on Computing in Object-Oriented Parallel Environments
  • Year:
  • 1998

Quantified Score

Hi-index 0.01

Visualization

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.