阿里云超算:高性能容器方案实战之Singularity

云栖君导读:除了自动化整合IaaS层硬件资源为用户提供云上HPC集群外,E-HPC还致力于巩固云上HPC服务的高可用性,先后推出了“集谛多维性能监控”、“低成本断点续算”等新特性,帮助用户更好、更省地使用云上HPC服务。本文主要介绍阿里云超算推出的弹性高性能容器方案以及在分子动力学领域和AI领域的实战案例。


弹性高性能计算(E-HPC,https://ehpc.console.aliyun.com/ )基于阿里云基础设施,为用户提供一站式的公有云HPC服务。除了自动化整合IaaS层硬件资源为用户提供云上HPC集群外,E-HPC还致力于巩固云上HPC服务的高可用性,先后推出了“集谛多维性能监控”、“低成本断点续算”等新特性,帮助用户更好、更省地使用云上HPC服务。本文主要介绍阿里云超算推出的弹性高性能容器方案以及在分子动力学领域和AI领域的实战案例。


高性能容器Singularity


Singularity是劳伦斯伯克利国家实验室专门为大规模、跨节点HPC和DL工作负载而开发的容器化技术。具备轻量级、快速部署、方便迁移等诸多优势,且支持从Docker镜像格式转换为Singularity镜像格式。与Docker的不同之处在于:


1.  Singularity同时支持root用户和非root用户启动,且容器启动前后,用户上下文保持不变,这使得用户权限在容器内部和外部都是相同的。
2.  Singularity强调容器服务的便捷性、可移植性和可扩展性,而弱化了容器进程的高度隔离性,因此量级更轻,内核namespace更少,性能损失更小。


640?wx_fmt=png


下图是在单台神龙裸金属服务器(ecs.ebmg5.24xlarge,Intel Xeon(Skylake) Platinum 8163,2.5GHz,96vCPU,384GB)上使用不同容器测出的HPL性能数据。如图所示,Singularity容器下测得的HPL性能要略优于Docker容器,且与宿主机的实测HPL性能相当。


640?wx_fmt=png


3.  Singularity高度亲和HPC使用场景,支持对宿主机软硬件资源的充分利用,包括HPC调度器(PBS、Slurm),跨节点通信库(IntelMPI、OpenMPI),网络互连(Ethernet、Infiniband),文件系统以及加速设备(GPU),这使得用户在使用Singularity时无需为HPC做额外的适配。


640?wx_fmt=png


E-HPC弹性高性能容器方案


阿里云E-HPC集成开源Singularity容器技术,在支持用户软件环境快速部署、灵活迁移的同时还兼顾云上HPC容器服务本身的高可用性以及与现有E-HPC组件的兼容性,为用户打造高效、易用的弹性高性能容器解决方案。


640?wx_fmt=png


用户只需将本地软件环境打包上传到Docker Hub,就可以在E-HPC控制台上完成“集群创建->镜像拉取->容器应用部署->作业提交->性能监控&运行结果查询”整套工作流程,从而达到降低HPC使用成本,提高自身科研、生产效率的目的。


640?wx_fmt=png


Singularity容器实战案例


案例一:SCC多节点运行分子动力学NAMD容器作业


NAMD是一款主流的分子动力学模拟软件,扩展性好,并行效率高,常用于处理大规模分子体系。本文基于镜像docker.io/centos:7.2.1511构建包含intelmpi+namd+inputfile的Singularity镜像,并使用pbs调度器将NAMD容器作业和本地作业先后提交到4台SCC(ecs.scch5.16xlarge,Intel Xeon(Skylake) Gold 6149,3.1GHz ,32物理核,192GB)节点上,pbs作业脚本如下所示。


640?wx_fmt=jpeg


为了展示“容器运行NAMD”与“宿主机直接运行NAMD”两者在CPU利用率、RoCE网络带宽以及软件执行效率等方面的差异,本文使用E-HPC自带的性能监控工具“集谛”对SCC集群资源利用情况进行监控。“集谛”的功能已经在前文https://yq.aliyun.com/articles/661962中详细介绍过。各节点资源利用情况如下图所示。


640?wx_fmt=png


从图中可以看出,“容器运行NAMD”与“宿主机直接运行NAMD”两者在集群资源利用情况上基本一致:4个节点的CPU持续满载,RoCE网络带宽维持在1.3GB/s左右。作业执行时间分别为1324秒和1308秒。由此可见,Singularity不仅高度适配宿主机调度器、MPI并行库、RoCE网络,还能够保证容器作业的高效运行,相比于宿主机性能损失在2%以内。


案例二:EGS实例运行tensorflow图像分类容器作业


CIFAR-10是图像识别领域的经典数据集。本文基于镜像docker.io/tensorflow/tensorflow: latest-devel-gpu-py3分别构建包含图像分类模型的Singularity容器和Docker容器,并基于这两款容器在单台EGS(ecs.gn5-c8g1.4xlarge,Intel Xeon E5-2682v4,2.5GHz,16vCPU,120GB,P100x2)节点上对tensorflow网络模型进行训练,命令行如下所示。


640?wx_fmt=jpeg


使用“集谛”对作业进行监控,节点资源利用情况如下图所示。


640?wx_fmt=png


从图中可以看出,基于Singularity容器和Docker容器的tensorflow图像分类模型训练在资源利用情况没有明显差异:CPU利用率维持在75%,单块GPU利用率在30%~40%之间波动。在训练效率上,10万steps的训练时间分别为1432秒和1506秒。由此可见,Singularity容器不仅高度适配宿主机GPU和CUDA,而且在作业执行效率上比Docker容器略占优势。


总结


阿里云超算集成开源Singularity容器技术,打造高效、易用的云上弹性高性能容器方案,大幅降低用户迁云成本,助力用户高效科研。


640?wx_fmt=jpeg


end

如何利用自然语言处理构建基于内容的电影推荐系统

学习机器学习和数据科学必看的十个资源

数据科学家应当了解的五个统计基本概念

技术和商业的碰撞,谈阿里云与天猫双11这十年

更多精彩

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
国科大超算平台上的Singularity容器是一种用于软件打包和部署的工具。通过使用Singularity容器,用户可以在不同的操作系统环境中运行其软件,而无需担心与主机系统不兼容的问题。 在国科大超算平台上,使用Singularity容器可以提供以下好处: 首先,Singularity容器可以使软件的部署更加简便和灵活。用户只需将其软件及其相关依赖项打包进Singularity容器中,就可以在超算平台上运行,而无需额外的配置和安装。这种打包的方式可以大大简化软件部署流程,节省用户的时间和精力。 其次,Singularity容器具有良好的可移植性。一旦在国科大超算平台上成功使用Singularity容器运行软件,用户可以将该容器轻松地迁移至其他系统或平台中,而不会受限于特定的操作系统环境。这样,用户可以更加方便地分享和传播其软件,同时也能够在各种不同的计算环境中使用。 此外,Singularity容器还具有较好的安全性。由于Singularity容器是基于用户空间隔离技术实现的,因此容器之间的进程是相互隔离的,不会相互干扰或共享资源。这样可以有效地防止恶意软件或未经授权的访问,保护用户的数据和计算环境的安全。 总的来说,国科大超算平台中采用Singularity容器实践能够提供更加便捷、灵活、可移植和安全的软件运行环境,为用户的科学计算工作提供了有力的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值