skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: Parallel Object-Oriented Framework Optimization

Conference ·
DOI:https://doi.org/10.1002/cpe.775· OSTI ID:15006300

Object-oriented libraries arise naturally from the increasing complexity of developing related scientific applications. The optimization of the use of libraries within scientific applications is one of many high-performance optimization, and is the subject of this paper. This type of optimization can have significant potential because it can either reduce the overhead of calls to a library, specialize the library calls given the context of their use within the application, or use the semantics of the library calls to locally rewrite sections of the application. This type of optimization is only now becoming an active area of research. The optimization of the use of libraries within scientific applications is particularly attractive because it maps to the extensive use of libraries within numerous large existing scientific applications sharing common problem domains. This paper presents an approach toward the optimization of parallel object-oriented libraries. ROSE[1] is a tool for building source-to-source preprocessors, ROSETTA is a tool for defining the grammars used within ROSE. The definition of the grammars directly determines what can be recognized at compile time. ROSETTA permits grammars to be automatically generated which are specific to the identification of abstractions introduced within object-oriented libraries. Thus the semantics of complex abstractions defined outside of the C++ language can be leveraged at compile time to introduce library specific optimizations. The details of the optimizations performed are not a part of this paper and are up to the library developer to define using ROSETTA and ROSE to build such an optimizing preprocessor. Within performance optimizations, if they are to be automated, the problems of automatically locating where such optimizations can be done are significant and most often overlooked. Note that a novel part of this work is the degree of automation. Thus library developers can be expected to be able to build their own specialized compilers with a minimal compiler background. The resulting compilers don't extend the C++ language, but only extend the compiler's ability to recognize and leverage the use of user-defined library abstractions within an application to perform optimizations. For completeness, an example optimizing preprocessor for a parallel array class library is included to demonstrate the complete use of ROSETTA and ROSE to build an optimizing preprocessor. These results combine the use of the recognition techniques presented in this paper with those of a preprocessor-based transformation approach. The specification of transformations and the details of the construction of full preprocessors is outside the scope of this short paper, however some details of the compiler infrastructure we are using can be found in ROSE.

Research Organization:
Lawrence Livermore National Lab. (LLNL), Livermore, CA (United States)
Sponsoring Organization:
US Department of Energy (US)
DOE Contract Number:
W-7405-ENG-48
OSTI ID:
15006300
Report Number(s):
UCRL-JC-143662; TRN: US200407%%197
Resource Relation:
Journal Volume: 16; Journal Issue: 23; Conference: Compilers for Parallel Computers, Edinbugh, Scotland (GB), 06/27/2001--06/29/2001; Other Information: PBD: 1 May 2001
Country of Publication:
United States
Language:
English