C++ Expression Templates Performance Issues in Scientific Computing

  • Authors:
  • F. Bassetti;D. Quinlan

  • Affiliations:
  • -;-

  • Venue:
  • IPPS '98 Proceedings of the 12th. International Parallel Processing Symposium on International Parallel Processing Symposium
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

Ever-increasing size and complexity of software applications and libraries in parallel scientific computing is making implementation in the programming languages traditional for this field--FORTRAN 77 and C--impractical. The major impediment to the progression to a higher-level language such as C++ is attaining FORTRAN 77 or C performance, which is considered absolutely necessary by many practitioners. The use of template metaprogramming in C++, in the form of so-called expression templates to generate custom C++ code, holds great promise for getting C performance from C++ in the context of operations on array-like objects. Several sophisticated expression template implementations of parallel array-class libraries exist, and in certain circumstances their promise of performance is realized. Unfortunately this is not uniformly the case; this paper explores the major reasons for this. A more complete version of this paper may be obtained from http://www.c3.lanl.gov/~kei/ipps98.html.