一句话:提出基于编译器的远内存方案 TrackFM,在保持程序员透明性的同时获得接近库方案的性能。
面向具有良好引用局部性的大内存工作负载,把内存层次扩展到其他机器(far memory)可提升应用性能与集群内存利用率。现有软件方案分两类:基于内核的方案牺牲性能换取程序员透明性,基于库的方案牺牲透明性换取性能。本文提出第三种思路——基于编译器的方案,同时不牺牲性能与透明性,其可行性来自现代编译器分析与变换技术配合紧耦合的运行时系统。作者给出 TrackFM 的设计、实现与评估:应用只需重新编译即可受益。大量基准测试表明,TrackFM 相比基于内核的方案最高提升 2 倍且保持其程序员透明性,同时与最先进的基于库的系统性能相当(差距在 10% 以内)。
Large memory workloads with favorable locality of reference can benefit by extending the memory hierarchy across machines. Systems that enable such far memory configurations can improve application performance and overall memory utilization in a cluster. There are two current alternatives for software-based far memory: kernel-based and library-based. Kernel-based approaches sacrifice performance to achieve programmer transparency, while library-based approaches sacrifice programmer transparency to achieve performance. We argue for a novel third approach, the compiler-based approach, which sacrifices neither performance nor programmer transparency. Modern compiler analysis and transformation techniques, combined with a suitable tightly-coupled runtime system, enable this approach. We describe the design, implementation, and evaluation of TrackFM, a new compiler-based far memory system. Through extensive benchmarking, we demonstrate that TrackFM outperforms kernel-based approaches by up to 2× while retaining their programmer transparency, and that TrackFM can perform similarly to a state-of-the-art library-based system (within 10%). The application is merely recompiled to reap these benefits.
@inproceedings{TauroSCDH24,
title = {TrackFM: Far-out Compiler Support for a Far Memory World},
author = {Brian R. Tauro and Brian Suchy and Simone Campanoni and Peter Dinda and Kyle C. Hale},
booktitle = {ASPLOS},
year = {2024},
doi = {10.1145/3617232.3624856}
}