Source-Level Global Optimizations for Fine-Grain Distributed Shared Memory Systems

Veldema R, Hofmann R, Bhoedjang R, Jakobs C, Bal H (2001)


Publication Language: English

Publication Type: Conference contribution, Original article

Publication year: 2001

Journal

Edited Volumes: SIGPLAN Notices (ACM Special Interest Group on Programming Languages)

City/Town: New York

Book Volume: 36

Pages Range: 83-92

Conference Proceedings Title: Proceedings of the 8th ACM SIGPLAN symposium on Principles and practices of parallel programming (PPoPP 2001)

Event location: Snowbird, UT US

Journal Issue: 7

ISBN: 1-58113-346-4

URI: http://www2.informatik.uni-erlangen.de/publication/download/ppopp01-ronald.ps.gz

DOI: 10.1145/379539.379578

Abstract

This paper describes and evaluates the use of aggressive static analysis in Jackal, a fine-grain Distributed Shared Memory (DSM) system for Java. Jackal uses an optimizing, source-level compiler rather than the binary rewriting techniques employed by most other fine-grain DSM systems. Source-level analysis makes existing access-check optimizations (e.g., access-check batching) more effective and enables two novel fine-grain DSM optimizations: object-graph aggregation and automatic computation migration. The compiler detects situations where an access to a root object is followed by accesses to subobjects. Jackal attempts to aggregate all access checks on objects in such object graphs into a single check on the graph's root object. If this check fails, the entire graph is fetched. Object-graph aggregation can reduce the number of network roundtrips and, since it is an advanced form of access-check batching, improves sequential performance. Computation migration (or function shipping) is used to optimize critical sections in which a single processor owns both the shared data that is accessed and the lock that protects the data. It is usually more efficient to execute such critical sections on the processor that holds the lock and the data than to incur multiple roundtrips for acquiring the lock, fetching the data, writing the data back, and releasing the lock. Jackal's compiler detects such critical sections and optimizes them by generating single-roundtrip computation-migration code rather than standard data-shipping code. Jackal's optimizations improve both sequential and parallel application performance. On average, sequential execution times of instrumented, optimized programs are within 10% of those of uninstrumented programs. Application speedups usually improve significantly and several Jackal applications perform as well as hand-optimized message-passing programs. Copyright 2001 ACM.

Authors with CRIS profile

Involved external institutions

How to cite

APA:

Veldema, R., Hofmann, R., Bhoedjang, R., Jakobs, C., & Bal, H. (2001). Source-Level Global Optimizations for Fine-Grain Distributed Shared Memory Systems. In Proceedings of the 8th ACM SIGPLAN symposium on Principles and practices of parallel programming (PPoPP 2001) (pp. 83-92). Snowbird, UT, US: New York.

MLA:

Veldema, Ronald, et al. "Source-Level Global Optimizations for Fine-Grain Distributed Shared Memory Systems." Proceedings of the 8th ACM SIGPLAN symposium on Principles and practices of parallel programming (PPoPP 2001), Snowbird, UT New York, 2001. 83-92.

BibTeX: Download