Language and Compiler Mechanisms for Parallel Programming with Customizable Protocols (Thesis)
Report ID: TR-553-97Author: Raghavachari, Mukund
Date: 1997-11-00
Pages: 177
Download Formats: |Postscript|
Abstract:
Customizing the protocols used to manage accesses to different data structures within an application can improve the performance of software shared-memory programs substantially. Existing systems for using customizable protocols, however, are hard to use because they force programmers to rely on low-level mechanisms for manipulating these protocols. Since several shared-memory systems implement protocols in software and can support customizable protocols, the development of intuitive abstractions for the use of application-specific protocols is important. This dissertation is an in-depth study of the issues involved with providing language support for customizable protocols. We describe the design and implementation of a new language for parallel programming, Ace, that integrates support for customizable protocols with minimal extensions to C. Ace applications are developed using a shared-memory model with a default sequentially consistent protocol. Performance can then be optimized, with minor modifications to the application, by experimenting with different protocol libraries. The design of Ace was driven by a detailed examination of the use of customizable protocols. We delineate the issues that must be considered when programming with customizable protocols and present novel abstractions that allow for the easy use of customizable protocols. We describe the design and implementation of a runtime system and compiler for Ace and discuss compiler optimizations that improve the performance of such software shared-memory systems. We study the communication patterns of a set of benchmark applications, and consider the use of customizable protocols to optimize their performance. We evaluate the performance of our system using experimentation on a Thinking Machine CM-5 and a Cray T3E. We also present measurements that demonstrate that Ace has good performance compared to a modern software distributed shared-memory system.