It is difficult to achieve high performance while programming in the large. In particular, maintaining locality hinders portability and modularity. Existing methodologies are not sufficient: explicit communication and coding for locality require the programmer to violate encapsulation and compositionality of software modules, while automated compiler analysis remains unreliable.
This thesis presents a performance model that makes thread and object locality explicit. Zones form a runtime hierarchy that reflects the intended clustering of threads and objects, which are dynamically mapped onto hardware units such as processor clusters, pages; or cache lines. This conceptual indirection allows programmers to reason in the abstract about locality without committing to the hardware of a specific memory system. Zones complement conventional coding for locality and may be added to existing code to improve performance without affecting correctness.
The integration of zones into the Sather language is described, including an implementation of memory management customized to parameters of the memory system.
Cited By
- Xian F, Srisa-an W, Jia C and Jiang H AS-GC Proceedings of the 21st European conference on Object-Oriented Programming, (126-150)
- Gay D and Aiken A Language support for regions Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, (70-80)
- Gay D and Aiken A (2001). Language support for regions, ACM SIGPLAN Notices, 36:5, (70-80), Online publication date: 1-May-2001.
- Gay D and Aiken A Memory management with explicit regions Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, (313-323)
- Gay D and Aiken A (1998). Memory management with explicit regions, ACM SIGPLAN Notices, 33:5, (313-323), Online publication date: 1-May-1998.
- Weissman B (2019). Performance counters and state sharing annotations, ACM SIGPLAN Notices, 33:11, (127-138), Online publication date: 1-Nov-1998.
- Weissman B Performance counters and state sharing annotations Proceedings of the eighth international conference on Architectural support for programming languages and operating systems, (127-138)
- Weissman B (1998). Performance counters and state sharing annotations, ACM SIGOPS Operating Systems Review, 32:5, (127-138), Online publication date: 1-Dec-1998.
Recommendations
Exploiting reuse locality on inclusive shared last-level caches
Special Issue on High-Performance Embedded Architectures and CompilersOptimization of the replacement policy used for Shared Last-Level Cache (SLLC) management in a Chip-MultiProcessor (CMP) is critical for avoiding off-chip accesses. Temporal locality, while being exploited by first levels of private cache memories, is ...
Exploiting spatial locality in data caches using spatial footprints
Special Issue: Proceedings of the 25th annual international symposium on Computer architecture (ISCA '98)Modern cache designs exploit spatial locality by fetching large blocks of data called cache lines on a cache miss. Subsequent references to words within the same cache line result in cache hits. Although this approach benefits from spatial locality, ...
Making LRU Friendly to Weak Locality Workloads: A Novel Replacement Algorithm to Improve Buffer Cache Performance
Although the LRU replacement algorithm has been widely used in buffer cache management, it is well-known for its inability to cope with access patterns with weak locality. Previously proposed algorithms to improve LRU greatly increase complexity and/or ...