Toward Fortran 77 performance from object-oriented C++ scientific frameworks

The use of object-oriented C{sup 2} frameworks has significantly simplified the development of numerous complex parallel scientific applications at Los Alamos National Laboratory and elsewhere. In spite of considerable use of, and commitment to, these frameworks, concerns about performance are nonetheless a significant issue; performance very close to that of FORTRAN 77 with message passing must be realized before the acceptance and use of such frameworks will be truly widespread. This paper identifies the primary source of inefficiency in using C or C{sup 2} for numerical codes with stencil- or stencil-like operations, and demonstrates two solutions--one portable, one not--to give genuine FORTRAN 77 performance.