GCS:面向高效同步的广义缓存一致性
GCS: Generalized Cache Coherence For Efficient Synchronization
AI总结:
针对分解共享内存中分层式同步原语可扩展性差的问题,提出缓存一致性与同步层协同设计的GCS方案,通过在协议层引入等待队列和任意大小缓存行实现时空泛化,可将内存键值存储性能提升1-2个数量级。
摘要:
我们探究了面向分解共享内存的可扩展同步原语的设计。将现有同步原语移植到分解共享内存中时,其可扩展性会随应用线程数量增加而变差,因为这些原语将同步层构建在缓存一致性基底之上,会产生冗余的核间通信。在现有最先进的分解共享内存设计中,缓存一致性延迟(微秒级)显著更高,而带宽显著更低,这放大了此类冗余通信的影响,阻碍了可扩展性。\n在本研究中,我们提出对缓存一致性层与同步层进行协同设计,以提升多线程应用在分解内存上的性能扩展性。这一思路源于我们的观察:同步原语本质上是缓存一致性协议在时间和空间上的泛化。我们提出GCS作为该协同设计的实现方案。GCS直接在缓存一致性协议层采用等待队列和任意大小的缓存行,以实现时间和空间上的泛化。我们将GCS与分层式同步原语方案(即读写锁的pthread实现)进行对比评估,结果表明GCS可将大规模内存键值存储的性能提升1-2个数量级。
英文摘要:
We explore the design of scalable synchronization primitives for disaggregated shared memory. Porting existing synchronization primitives to disaggregated shared memory results in poor scalability with the number of application threads because they layer synchronization primitives atop cache-coherence substrates, which engenders redundant inter-core communications. Substantially higher cache-coherence latency ($μ$s) with substantially lower bandwidths in state-of-the-art disaggregated shared memory designs amplifies the impact of such redundant communications and precludes scalability. In this work, we argue for a co-design for the cache-coherence and synchronization layers for better performance scaling of multi-threaded applications on disaggregated memory. This is driven by our observation that synchronization primitives are essentially a generalization of cache-coherence protocols in time and space. We present GCS as an implementation of this co-design. GCS employs wait queues and arbitrarily-sized cache lines directly at the cache-coherence protocol layer for temporal and spatial generalization. We evaluate GCS against the layered approach for synchronization primitives: the pthread implementation of reader-writer lock, and show that GCS improves in-memory key-value store performance at scale by 1 - 2 orders of magnitude.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。