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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 除了自动化整合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更少,性能损失更小。

image.png

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

image.png

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

image.png

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

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

image.png

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

image.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作业脚本如下所示。

#!/bin/sh
#PBS -l ncpus=32,mem=64gb
#PBS -l walltime=20:20:00
#PBS -o namd_local_pbs.log
#PBS -j oe

# Singularity 容器执行
/opt/intel/impi/2018.3.222/bin64/mpirun --machinefile machinefile -np 128 singularity exec --bind /usr --bind /sys --bind /etc /opt/centos7-intelmpi-namd.sif /namd-cpu/namd2 /opt/apoa1/apoa1.namd

# 宿主机本地执行
/opt/intel/impi/2018.3.222/bin64/mpirun --machinefile machinefile -np 128  /opt/NAMD_2.12_Linux-x86_64-MPI/namd2 apoa1/apoa1.namd

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

image.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网络模型进行训练,命令行如下所示。

# Singurity容器执行
singularity exec --nv /opt/cifar10.sif python /cifar10/models/tutorials/image/cifar10/cifar10_multi_gpu_train.py --num_gpus=2

# Docker容器执行
nvidia-docker run -it d6c139d2fdbf python /cifar10/models/tutorials/image/cifar10/cifar10_multi_gpu_train.py --num_gpus=2

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

image.png

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

总结

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

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
11天前
|
运维 Kubernetes Java
阿里云容器计算服务ACS ,更普惠易用、更柔性、更弹性的容器算力
ACS是阿里云容器服务团队推出的一款面向Serverless场景的子产品,基于K8s界面提供符合容器规范的CPU及GPU算力资源。ACS采用Serverless形态,用户无需关注底层节点及集群运维,按需申请使用,秒级按量付费。该服务旨在打造更普惠易用、更柔性、更弹性的新一代容器算力,简化企业上云门槛,加速业务创新。ACS支持多种业务场景,提供通用型、性能型及BestEffort算力质量,帮助客户更从容应对流量变化,降低综合成本。
|
4天前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
20 3
实战~如何组织一个多容器项目docker-compose
|
11天前
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践
|
11天前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
11天前
|
人工智能 Cloud Native 调度
阿里云容器服务在AI智算场景的创新与实践
本文源自张凯在2024云栖大会的演讲,介绍了阿里云容器服务在AI智算领域的创新与实践。从2018年推出首个开源GPU容器共享调度方案至今,阿里云容器服务不断推进云原生AI的发展,包括增强GPU可观测性、实现多集群跨地域统一调度、优化大模型推理引擎部署、提供灵活的弹性伸缩策略等,旨在为客户提供高效、低成本的云原生AI解决方案。
|
11天前
|
运维 Kubernetes 调度
阿里云容器服务 ACK One 分布式云容器企业落地实践
阿里云容器服务ACK提供强大的产品能力,支持弹性、调度、可观测、成本治理和安全合规。针对拥有IDC或三方资源的企业,ACK One分布式云容器平台能够有效解决资源管理、多云多集群管理及边缘计算等挑战,实现云上云下统一管理,提升业务效率与稳定性。
|
11天前
|
人工智能 运维 Kubernetes
拥抱智算时代:阿里云容器服务智能、托管、弹性新体验
本文总结了2024云栖大会容器计算专场的演讲内容,重点介绍了阿里云容器服务的新产品体验,包括智能、托管、弹性的特点,以及如何助力客户拥抱智算时代。文中还分享了多项实际案例和技术细节,展示了阿里云容器服务在提升用户体验和解决实际问题方面的努力。
|
12天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
142 77
|
20天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
14天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
55 3
下一篇
DataWorks