Unimem: 用于高性能计算的基于非易失性内存的异构主内存上的运行时系统数据管理
Unimem: Runtime Data Management on Non-Volatile Memory-Based Heterogeneous Main Memory for High Performance Computing
-
摘要: 研究背景:
非易失性存储器(NVM)提供了可扩展且高能效的解决方案,以取代DRAM作为主存储器。但是,由于NVM相对较高的延迟和较低的带宽,NVM通常与DRAM配对以构建异构存储系统(HMS)。因此,必须将应用程序的数据对象小心地放置到NVM和DRAM中,以获得最佳性能。
目的:
本工作目标设计一个对于用于HPC的HMS上的数据管理系统。主要有以下三个要求。第一,我们要避免对硬件的破坏性更改。由于担心硬件成本,HPC数据中心可能难以采用现有的基于硬件的解决方案来管理HMS上的数据放置。第二,我们希望最小化对应用程序和系统软件的更改。这样可以满足将HPC经典应用程序应轻而易举地移植到基于NVM的HMS。第三,管理数据放置应尽可能透明。我们希望启用自动数据放置,并减轻用户管理数据放置细节的麻烦。
方法:
在本文中,我们介绍了一个运行时系统(名为" Unimem"),该系统可以自动透明地决定和实现数据放置。首先,我们设计了基于性能计数器采用在线性能分析来捕获执行阶段的内存访问模式,以此为基础来表征每个阶段中数据对象对内存带宽和延迟的敏感性。第二,我们采用了轻量级的性能模型,基于此模型,我们可以预测在NVM和DRAM之间移动数据对象时的性能收益和成本。给定性能优势和数据移动成本,我们将确定最佳数据放置的问题公式化为背包问题。基于性能模型和公式,我们避免了不必要的数据移动 同时最大化数据移动的好处。第三,为了避免数据移动对应用程序性能的影响,我们引入了一种主动的数据移动机制。给定执行阶段和该阶段的数据移动计划,该机制使用助手线程在阶段之前触发数据移动。帮助程序线程与应用程序并行运行,使数据移动与应用程序执行重叠。这种主动的数据移动机制减小了数据移动在主程序关键路径的开销。第四, 为了进一步提高性能,我们引入了一系列技术,其中包括:(1)优化初始数据放置以减少运行时的数据移动成本;(2)探索阶段局部搜索和跨阶段全局搜索之间的权衡以获取最佳数据放置;以及(3)分解大数据对象以实现细粒度的数据移动。
结果:
我们介绍了一种轻量级的运行时解决方案,该解决方案可以自动透明地管理HMS上的数据放置,而无需进行硬件修改和对应用程序的破坏性更改。我们的运行时解决方案有效地缩小了NVM和DRAM之间的性能差距。实验结果证明,借助基于软件的数据管理,使用NVM代替大多数DRAM对于将来的HPC系统可能是可行的解决方案。
结论:
NVM的局限性提出了一个问题,即NVM对于HPC应用是否是可行的解决方案。在本文中,我们量化了基于NVM的系统与基于DRAM的系统之间的性能差距,并证明了使用精心设计的运行时,可以显着减小性能差距。我们希望我们的工作可以为将来的HPC拥抱NVM打下基础。Abstract: Non-volatile memory (NVM) provides a scalable and power-efficient solution to replace dynamic random access memory (DRAM) as main memory. However, because of the relatively high latency and low bandwidth of NVM, NVM is often paired with DRAM to build a heterogeneous memory system (HMS). As a result, data objects of the application must be carefully placed to NVM and DRAM for the best performance. In this paper, we introduce a lightweight runtime solution that automatically and transparently manages data placement on HMS without the requirement of hardware modifications and disruptive change to applications. Leveraging online profiling and performance models, the runtime solution characterizes memory access patterns associated with data objects, and minimizes unnecessary data movement. Our runtime solution effectively bridges the performance gap between NVM and DRAM. We demonstrate that using NVM to replace the majority of DRAM can be a feasible solution for future HPC systems with the assistance of a software-based data management.