Compiler-directed page coloring for multiprocessors
- 1 September 1996
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 31 (9), 244-255
- https://doi.org/10.1145/237090.237195
Abstract
This paper presents a new technique, 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.Keywords
This publication has 22 references indexed in Scilit:
- Multiprocessors from a software perspectiveIEEE Micro, 1996
- Reducing false sharing on shared memory multiprocessors through compile time data transformationsPublished by Association for Computing Machinery (ACM) ,1995
- Data and computation transformations for multiprocessorsPublished by Association for Computing Machinery (ACM) ,1995
- Complete computer system simulation: the SimOS approachIEEE Parallel & Distributed Technology: Systems & Applications, 1995
- ExokernelPublished by Association for Computing Machinery (ACM) ,1995
- Compiler transformations for high-performance computingACM Computing Surveys, 1994
- SUIFACM SIGPLAN Notices, 1994
- Page placement algorithms for large real-indexed cachesACM Transactions on Computer Systems, 1992
- Demonstration of automatic data partitioning techniques for parallelizing compilers on multicomputersIEEE Transactions on Parallel and Distributed Systems, 1992
- Hints for computer system designPublished by Association for Computing Machinery (ACM) ,1983