Ace

Mukund Raghavachari, Anne Rogers
1997 SIGPLAN notices  
Customizing the protocols used to manage accesses to ditTerent data structures within an application can improve the performance of shared-memory programs substantially [10, 21] . Existing systems for using customizable protocols are, however, 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
more » ... ns for the use of application-specific protocols ia important. We have designed a language, Ace, that integrates support for customizable protocols with minimal extensions to C. Ace applications are developed using the standard shared-memory model with a default sequentially consistent protocol. Performance can then be optimized, with minor modifications to the application, by experimenting with different protocoI libraries. In thw paper, we isolate the issues involved in providing language support for using customizable protocols and present novel language abstractions for their easy use. We describe the implementation of a compiler and runtime system for Ace, and d~cuss the issuea involved in their design. We also present measurements that demonstrate that Ace hss good performance compared to an efficient software distributed shared-memory system. Introduction Shared memory's popularity as a parallel programming model is due, in part, to the fact that the complexity of communication is concealed from the programmer. This abstraction can simplify programming significantly, especially for problems with irregular access patterns. Most sharedmemory systems, however, can suffer from decreased performance because they use a single or a small number of tied communication mechanisms to share data, inefficiencies occur when there is a mismatch between a program's access pattern and the system's communication protocol. For example, producer-consumer style sharing is not well-suited to Permission to make digilal/hard copy of part or all this work for personal or classroom usa is granted without fee provided that copies are not made or distributed for profit or commercial advantage, the copyright notice, the title of the publication and its date aPPear, and nOtice is given that copying is by permission of ACM, inc. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. PPoPP '97 Las Vegas, NV @ 1997 ACM 0-89791 -906 -8/97 /0006". $3.50 q q Complete separation of application and protocol wale: Current systems for customizable protocols prwent a hybrid shared memory/meeaage passing programming model [25] . Since the communication code is often part of the application code, programmers must reason explicitly about the complicated interactions between the two portions. This error-prone process retarda application development, because the application and the protocols must be developed and teated as a monolithic unit. In addition, the lack of separation between application and communication code inhibits the creation of protocol libraries. In our experience, encapsulation of protocol code eases the use of customizable protocols considerably. High-level language abstmctions for associating protowls with data structures: Current systems require programmers to associate protocols with pages and to
doi:10.1145/263767.263777 fatcat:5b55hnxgrvau7fwt6erepj5p3y