Evaluating Emerging CXL-enabled Memory Pooling for HPC Systems——论文泛读

这篇具有很好参考价值的文章主要介绍了Evaluating Emerging CXL-enabled Memory Pooling for HPC Systems——论文泛读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MCHPC@SC 2022 Paper CXL论文阅读汇总

问题

当前的高性能计算(HPC)系统提供的内存资源是静态配置的,并与计算节点紧密耦合。然而,HPC系统上的工作负载正在演变。多样化的工作负载导致对可配置内存资源的需求,以实现高性能和高利用率。

现有方法局限性

CXL是用于互连处理器、加速器和内存的开放标准。符合CXL标准的硬件提供了对应用程序代码透明的低延迟、高带宽数据访问。一些工作已经探索了用于数据中心和云工作负载的基于CXL的内存[4]–[6],[9]。然而,对HPC系统和工作负载的支持CXL的内存池的全面理解仍然缺失。

本文方法

我们评估了利用CXL内存池技术的内存子系统设计。研究了两个有前景的组合内存子系统的用例:细粒度容量配置和可扩展的带宽配置。我们开发了一个仿真器,以探讨各种内存组合对性能的影响。我们还提供了一个分析器,用于识别应用程序中的内存使用模式及其优化机会。在各种模拟内存配置上评估了七个科学应用和六个图形应用。其中七个科学应用中有三个在内存池支持其75%内存占用时的性能影响不到10%。结果还表明,动态配置的高带宽系统可以有效地支持像OpenFOAM这样的带宽密集型非结构网格应用。最后,我们确定通过共享内存池引起的干扰是HPC系统采用该技术面临的一个实际挑战。

仿真器和分析器

分析器和仿真器由约600行C代码实现,与Linux内核4.14及以上版本兼容。仿真器依赖于libnuma库。为了捕获内存使用度量,分析器和仿真器使用proc文件系统中的/proc/pid子树中的文件。这提供了一种不需要特殊权限的可移植方法。从smaps_rollup中读取的指标,如常驻集大小和引用的内存页数,以及从numa_maps中读取的每个NUMA域中的页面数。从这些文件中读取会导致内核扫描进程的内存区域并返回请求的度量标准。分析器还可以通过写入clear_refs来重置所有页面的引用状态。

为了捕获进程的时间内存使用情况,分析器在计时器模式下运行,它以可配置的频率收集测量值并重置页面状态。为了捕获诸如冷页面数量之类的总结指标,分析器在中断模式下运行,利用Linux作业控制功能。我们修改基准测试以在定时区域的开始和结束时引发SIGSTOP信号,从而暂停进程。暂停进程会使用SIGCHLD信号唤醒分析器。分析器收集测量值并重置页面状态,然后通过发送SIGCONT信号恢复应用程序。对于无法更改基准测试代码的情况,我们还提供了输出中断模式,该模式监视进程的标准输出,并在匹配可配置模式的输出时将其暂停。使用epoll_wait循环等待计时器、信号和输出等事件。

在仿真器中,使用NUMA策略和锁定内存的组合来配置仿真的CXL内存系统。通过使用numa_run_on_node(),将应用程序限制在NUMA节点0上运行。我们让节点0中的内存表示本地/近端内存,其他NUMA节点中的内存表示通过CXL访问的远程内存。默认的分配策略将使用本地节点,直到其填满,然后开始使用其他节点。为了模拟本地和远程内存的一定比例的系统,我们使用mlock()锁定适量的本地内存,以强制分配器使用远程内存。为了模拟只有远程内存的系统,我们将分配策略设置为只使用节点1,使用numa_set_membind()。

采样开销是可调的,基于用户定义的采样频率。在1秒的频率下,与等效的numactl执行相比,分析器的采样开销为3%,仿真器的采样开销为2%。由于锁定了大量本地内存,当使用本地远程比例为0或1以外的比例时,仿真器具有与本地内存数量成比例的额外初始化时间。

使用MPI的工作负载由多个进程组成。在分析器中,我们选择对第0个进程进行采样。在仿真器中,我们独立采样所有进程,并在后处理步骤中聚合结果。

实验

使用两个NUMA测试台来模拟启用CXL的内存系统的潜在配置,如图1所示。第一个测试台具有双插槽Intel Xeon E5-2690V4处理器,通过两个QPI链路连接,配置为两个NUMA域。每个NUMA节点具有64 GB内存容量,总共128 GB内存。第二个测试台有一个AMD EPYC 7742处理器,具有四个NUMA域。它由四个核心复合体组成,每个复合体都有一个单独的内存控制器,分别提供33 GB/s的带宽。该测试台每个NUMA节点具有32 GB的内存容量,总共128 GB的内存。

Evaluating Emerging CXL-enabled Memory Pooling for HPC Systems——论文泛读,论文阅读,论文阅读

Evaluating Emerging CXL-enabled Memory Pooling for HPC Systems——论文泛读,论文阅读,论文阅读

总结

用仿真器和模拟器评估CXL对HPC应用和图应用的性能影响,将CXL用于内存容量扩展和带宽扩展。

结果显示,在仿真的CXL内存池系统上,CXL内存池占75%的内存使用情况下,七个HPC应用中有五个在仿真CXL系统上几乎没有性能降级。在仿真的高带宽CXL系统上,OpenFOAM和Hypre等带宽敏感性最高的应用程序也保持了性能,突显了CXL启用的内存系统在可扩展、成本效益高带宽系统方面的潜力。对于共享内存服务器上的干扰需要通过系统级的协调来解决,基于对每个作业动态使用情况的理解,以减轻性能降级。文章来源地址https://www.toymoban.com/news/detail-805388.html

到了这里,关于Evaluating Emerging CXL-enabled Memory Pooling for HPC Systems——论文泛读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to ge

    A  Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to get more details. Package manager中添加 com.unity.entities 添加完成后上方的Menu中会有Jobs按钮, Jobs - Leak Detection - Full Stack Traces (Expensive)就可以打开了. 原文链接:No information on error with full stack traces enabled - Uni

    2024年02月11日
    浏览(43)
  • 使用Charles小贴士之报错(Notes SSL Proxying not enabled for this host: enable in Proxy Settings)

    (报错的总结持续更新,报错单独写这样好找一点) 报错1: SSL Proxying not enabled for this host: enable in Proxy Settings 昨天用还好好的,今天使用就报(Notes        SSL Proxying not enabled for this host: enable in Proxy Settings) 原因是:我手机wifi代理IP搞错了,在电脑的cmd找ip地址跟charles了的地

    2024年02月03日
    浏览(47)
  • Mercury: Enabling Remote Procedure Call for High-Performance Computing

    Abstract—Remote Procedure Call (RPC) is a technique that has been largely used by distributed services. This technique, now more and more used in the context of High-Performance Computing (HPC), allows the execution of routines to be delegated to remote nodes, which can be set aside and dedicated to specific tasks. However, existing RPC frameworks assume a

    2024年02月07日
    浏览(46)
  • 配置listener tcps加密 enable SSL encryption for Oracle SQL*Net

    一 配置客户端和服务端的wallet 2端配置方法一致,相互添加证书 orapki wallet create -wallet “/u01/oracle/wallet” -pwd Wdkf984jkkgekj434FKFD -auto_login_local orapki wallet add -wallet “/u01/oracle/wallet” -pwd Wdkf984jkkgekj434FKFD -dn “CN=`hostname`“ -keysize 1024 -self_signed -validity 3650 导出证书 orapki wallet expor

    2024年02月13日
    浏览(47)
  • jmap(Memory Map for Java)Java内存映像工具

    jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为 heapdump 或 dump文件 ) 如果不使用jmap命令,要想获取Java堆转储快照也还有一些比较“暴力”的手段: 譬如 -XX:+HeapDumpOnOutOfMemoryError 参数,可以让虚拟机在内存溢出异常出现之后自动生成堆转储快照文件, 通过 -XX:

    2024年02月12日
    浏览(53)
  • RuntimeError: CUDA out of memory See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

    报错: If reserved memory is allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF 当reserved memory is allocated memory,进行如下设置,可解决此bug: 代码如下:

    2024年02月11日
    浏览(52)
  • git pull报没有足够内存 not enough memory for initialization

            git clone 或 git pull 批量同步远程 git仓库代码时,报 没有足够内存用于初始化   not enough memory for initialization 。经过观察 资源管理器 的内存使用情况,发现为 剩余可用内存不足造成的。加物理内存麻烦,可通过适当调整  分页文件(虚拟内存) 最大可用值 解决。 目

    2024年02月16日
    浏览(41)
  • Learning Memory-guided Normality for Anomaly Detection 论文阅读

    文章信息: 发表于:cvpr2020 原文:https://arxiv.org/abs/2003.13228 代码:https://github.com/cvlab-yonsei/MNAD 我们致力于解决异常检测的问题,即在视频序列中检测异常事件。基于卷积神经网络(CNNs)的异常检测方法通常利用代理任务,比如重建输入视频帧,以在训练时学习描述正常情况

    2024年02月03日
    浏览(58)
  • 【博士每天一篇文献-算法】Gradient Episodic Memory for Continual Learning

    阅读时间:2023-10-26 年份:2017 作者:David Lopez-Paz, Marc’Aurelio Ranzato 期刊:Part of Advances in Neural Information Processing Systems 30 (NIPS 2017) 引用量:2044 针对持续学习中灾难性遗忘问题提出一种名为Gradient Episodic Memory(GEM)算法,这种算法核心思想是将有益的知识传递给过去的任务。

    2024年02月06日
    浏览(41)
  • To use xx的iPhone for development, enable Developer mode in Settings->Privacy & Security

    最近iPhone和Mac自动更新,真机运行遇到以上问题,解决方法也是很简单,如下: 打开手机“隐私与安全性”当中开发者调试开关,重启手机与Xcode的,问题就解决了,希望能给小伙伴们帮助哈  

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包