ROSE: Compiler Support for Object-Oriented Frameworks

ROSE is a preprocessor generation tool for the support of compile time performance optimizations in Overture The Overture framework is an object-oriented environment for solving partial differential equations in two and three space dimensions. It is a collection of C++ libraries that enables the use of finite difference and finite volume methods at a level that hides the details of the associated data structures. Overture can be used to solve problems in complicated, moving geometries using the method of overlapping grids. It has support for grid generation, difference operators, boundary conditions, database access and graphics. In this paper we briefly present Overture , and discuss our approach toward performance within Overture and the A++P++ array class abstractions upon which Overture depends, this work represents some of the newest work.in Overture The results we present show that the abstractions represented within Overture and the A++P++ array class library can be used to obtain application codes with performance equivalent to that of optimized C and Fortran 77. ROSE, the preprocessor generation tool, is general in its application to any objectoriented framework or application and is not specific to Overture

[1]  P. Colella,et al.  Local adaptive mesh refinement for shock hydrodynamics , 1989 .

[2]  W. Henshaw,et al.  Composite overlapping meshes for the solution of partial differential equations , 1990 .

[3]  Daniel J. Quinlan,et al.  P++, a C++ Virtual Shared Grids Based Programming Environment for Architecture-Independent Development of Structured Grid Applications , 1992, CONPAR.

[4]  D. Quinlan,et al.  Run-time recognition of task parallelism within the P++ parallel array class library , 1993, Proceedings of Scalable Parallel Libraries Conference.

[5]  Ian G. Angus Applications Demand Class-Specific Optimizations: The C++ Compiler Can Do More , 1993, Sci. Program..

[6]  R. Parsons,et al.  A++/P++ array classes for architecture independent finite difference computations , 1994 .

[7]  Dennis Gannon,et al.  Sage++: An Object-Oriented Toolkit and Class Library for Building Fortran and C++ Restructuring Tool , 1994 .

[8]  Daniel J. Quinlan,et al.  OVERTURE: An Object-Oriented Software System for Solving Partial Differential Equations in Serial and Parallel Environments , 1997, PPSC.

[9]  Kei Davis,et al.  A Comparison of Performance-Enhancing Strategies for Parallel Numerical Object-Oriented Frameworks , 1997, ISCOPE.

[10]  Daniel J. Quinlan,et al.  Overture: An Object-Oriented Framework for Solving Partial Differential Equations , 1997, ISCOPE.

[11]  Yutaka Ishikawa,et al.  Scientific Computing in Object-Oriented Parallel Environments , 1997, Lecture Notes in Computer Science.

[12]  Shigeru Chiba Macro processing in object-oriented languages , 1998, Proceedings Technology of Object-Oriented Languages. TOOLS 28 (Cat. No.98TB100271).

[13]  Kei Davis,et al.  Optimizing Transformations of Stencil Operations for Parallel Object-Oriented Scientific Frameworks on Cache-Based Architectures , 1998, ISCOPE.

[14]  Steve Karmesin,et al.  Array Design and Expression Evaluation in POOMA II , 1998, ISCOPE.

[15]  Kei Davis,et al.  Toward Fortran 77 performance from object-oriented C++ scientific frameworks , 1998 .