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

Title: Applying Loop Optimizations to Object-oriented Abstractions Through General Classification of Array Semantics

Conference ·
DOI:https://doi.org/10.1007/11532378_19· OSTI ID:15014021

Optimizing compilers have a long history of applying loop transformations to C and Fortran scientific applications. However, such optimizations are rare in compilers for object-oriented languages such as C++ or Java, where loops operating on user-defined types are left unoptimized due to their unknown semantics. Our goal is to reduce the performance penalty of using high-level object-oriented abstractions. We propose an approach that allows the explicit communication between programmers and compilers. We have extended the traditional Fortran loop optimizations with an open interface. Through this interface, we have developed techniques to automatically recognize and optimize user-defined array abstractions. In addition, we have developed an adapted constant-propagation algorithm to automatically propagate properties of abstractions. We have implemented these techniques in a C++ source-to-source translator and have applied them to optimize several kernels written using an array-class library. Our experimental results show that using our approach, applications using high-level abstractions can achieve comparable, and in cases superior, performance to that achieved by efficient low-level hand-written codes.

Research Organization:
Lawrence Livermore National Laboratory (LLNL), Livermore, CA (United States)
Sponsoring Organization:
USDOE
DOE Contract Number:
W-7405-ENG-48
OSTI ID:
15014021
Report Number(s):
UCRL-CONF-202762; TRN: US200803%%991
Resource Relation:
Journal Volume: 3602; Conference: Presented at: The 17th International Workshop on Languages and Compilers for Parallel Computing, West Lafeyette, IN, United States, Sep 22 - Sep 25, 2004
Country of Publication:
United States
Language:
English

References (12)

Improving the ratio of memory operations to floating-point operations in loops journal November 1994
The cache performance and optimizations of blocked algorithms
  • Lam, Monica D.; Rothberg, Edward E.; Wolf, Michael E.
  • Proceedings of the fourth international conference on Architectural support for programming languages and operating systems - ASPLOS-IV https://doi.org/10.1145/106972.106981
conference January 1991
Dependence Analysis for Supercomputing book January 1988
A comparison of performance-enhancing strategies for parallel numerical object-oriented frameworks book January 1997
Improving data locality with loop transformations journal July 1996
Tile size selection using cache organization and data layout
  • Coleman, Stephanie; McKinley, Kathryn S.
  • Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation - PLDI '95 https://doi.org/10.1145/207110.207162
conference January 1995
Transforming Complex Loop Nests for Locality journal March 2004
Macro processing in object-oriented languages conference January 1998
The Specification of Source-to-Source Transformations for the Compile-Time Optimization of Parallel Object-Oriented Scientific Applications book May 2003
Automatic loop transformations and parallelization for Java conference January 2000
An annotation language for optimizing software libraries journal January 2000
A data locality optimizing algorithm conference January 1991

Similar Records

Extending Automatic Parallelization to Optimize High-Level Abstractions for Multicore
Conference · Fri Dec 12 00:00:00 EST 2008 · OSTI ID:15014021

Semantic-Aware Automatic Parallelization of Modern Applications Using High-Level Abstractions
Journal Article · Mon Dec 21 00:00:00 EST 2009 · the International Journal of Parallel Programming, vol. 38, no. 5, August 23, 2010, pp. 361 · OSTI ID:15014021

Automatic Parallelization Using OpenMP Based on STL Semantics
Conference · Tue Jun 03 00:00:00 EDT 2008 · OSTI ID:15014021