Compiler-directed page coloring for multiprocessors

被引:25
|
作者
Bugnion, E
Anderson, JM
Mowry, TC
Rosenblum, M
Lam, MS
机构
[1] Computer Systems Laboratory, Stanford University, Stanford
[2] Dept. of Elec. and Comp. Engineering, University of Toronto, Toronto
关键词
D O I
10.1145/248209.237195
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper presents a new technique, compiler-directed page coloring, that eliminates conflict misses in multiprocessor applications. It enables applications to make better use of the increased aggregate cache size available in a multiprocessor. This technique uses the compiler's knowledge of the access patterns of the parallelized applications to direct the operating system's virtual memory page mapping strategy. We demonstrate that this technique can lead to significant performance improvements over two commonly used page mapping strategies for machines with either direct-mapped or two-way set-associative caches. We also show that it is complementary to latency-hiding techniques such as prefetching. We implemented compiler-directed page coloring in the SUIF parallelizing compiler and on two commercial operating systems. We applied the technique to the SPEC95fp benchmark suite, a representative set of numeric programs. We used the SimOS machine simulator to analyze the applications and isolate their performance bottlenecks. We also validated these results on a real machine, an eight-processor 350MHz Digital AlphaServer. Compiler-directed page coloring leads to significant performance improvements for several applications. Overall, our technique improves the SPEC95fp rating for eight processors by 8% over Digital UNIX's page mapping policy and by 20% over a page coloring, a standard page mapping policy. The SUIF compiler achieves a SPEC95fp ratio of 57.4, the highest ratio to date.
引用
收藏
页码:244 / 255
页数:12
相关论文
共 50 条
  • [41] Compiler-directed dynamic memory disambiguation for loop structures
    Alli, S
    Bailey, C
    PROCEEDINGS OF THE EUROMICRO SYSTEMS ON DIGITAL SYSTEM DESIGN, 2004, : 130 - 134
  • [42] Compiler-Directed Transformation for Higher-Order Stencils
    Basu, Protonu
    Hall, Mary
    Williams, Samuel
    Van Straalen, Brian
    Oliker, Leonid
    Colella, Phillip
    2015 IEEE 29TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM (IPDPS), 2015, : 313 - 323
  • [43] Compiler-directed resource management for active code regions
    Sree, R
    Settle, A
    Bratt, I
    Connors, D
    INTERACT-7 2003: SEVENTH WORKSHOP ON INTERACTION BETWEEN COMPILERS AND COMPUTER ARCHITECTURES, PROCEEDINGS, 2003, : 85 - 93
  • [44] Compiler-directed ILP extraction for clustered VLIW/EPIC machines
    Pillai, S
    Jacome, MF
    EMBEDDED SOFTWARE FOR SOC, 2003, : 245 - 259
  • [45] Compiler-directed code restructuring for reducing data TLB energy
    Kandemir, M
    Kadayif, I
    Chen, G
    INTERNATIONAL CONFERENCE ON HARDWARE/SOFTWARE CODESIGN AND SYSTEM SYNTHESIS, 2004, : 98 - 103
  • [46] Maintaining cache coherence through compiler-directed data prefetching
    Lim, HB
    Yew, PC
    JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 1998, 53 (02) : 144 - 173
  • [47] An integrated framework for compiler-directed Cache Coherence and Data Prefetching
    Lim, HB
    Yew, PC
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, 1999, 1656 : 51 - 67
  • [48] Efficient and scalable compiler-directed energy optimization for realtime applications
    Huang, Po-Kuan
    Ghiasi, Soheil
    ACM TRANSACTIONS ON DESIGN AUTOMATION OF ELECTRONIC SYSTEMS, 2007, 12 (03)
  • [49] Reducing power through compiler-directed barrier synchronization elimination
    Kandemir, Mahmut
    Son, Seung Woo
    ISLPED '06: PROCEEDINGS OF THE 2006 INTERNATIONAL SYMPOSIUM ON LOW POWER ELECTRONICS AND DESIGN, 2006, : 354 - 357
  • [50] Compiler-Directed Constant Execution Time on Flat Memory Systems
    Maroun, Emad Jacob
    Schoeberl, Martin
    Puschner, Peter
    2023 IEEE 26TH INTERNATIONAL SYMPOSIUM ON REAL-TIME DISTRIBUTED COMPUTING, ISORC, 2023, : 64 - 75