Optimizing OpenMP programs on software distributed shared memory systems

  • Authors:
  • Seung-Jai Min;Ayon Basumallik;Rudolf Eigenmann

  • Affiliations:
  • School of Electrical and Computer Engineering, Purdue University, West Lafayette, Indiana;School of Electrical and Computer Engineering, Purdue University, West Lafayette, Indiana;School of Electrical and Computer Engineering, Purdue University, West Lafayette, Indiana

  • Venue:
  • International Journal of Parallel Programming - Special issue: OpenMP: Experiences and implementations
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes compiler techniques that can translate standard OpenMP applications into code for distributed computer systems. OpenMP has emerged as an important model and language extension for shared-memory parallel programming. However, despite OpenMP's success on these platforms, it is not currently being used on distributed system. The long-term goal of our project is to quantify the degree to which such a use is possible and develop supporting compiler techniques. Our present compiler techniques translate OpenMP programs into a form suitable for execution on a Software DSM system. We have implemented a compiler that performs this basic translation, and we have studied a number of hand optimizations that improve the baseline performance. Our approach complements related efforts that have proposed language extensions for efficient execution of OpenMP programs on distributed systems. Our results show that, while kernel benchmarks can show high efficiency of OpenMP programs on distributed systems, full applications need careful consideration of shared data access patterns. A naive translation (similar to OpenMP compilers for SMPs) leads to acceptable performance in very few applications only. However, additional optimizations, including access privatization, selective touch, and dynamic scheduling, resulting in 31% average improvement on our benchmarks.