阿里云超算:高性能容器方案实战之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集群资源利用情况进行监控。“集谛”的功能已经在前文/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容器技术,打造高效、易用的云上弹性高性能容器方案,大幅降低用户迁云成本,助力用户高效科研。

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
目录
相关文章
|
2天前
|
存储 算法 Java
12张图一次性搞懂高性能并发容器ConcurrentLinkedQueue
12张图一次性搞懂高性能并发容器ConcurrentLinkedQueue
|
4天前
|
存储 缓存 监控
【Docker 专栏】Docker 容器性能调优实战
【5月更文挑战第8天】本文探讨了Docker容器的性能调优技巧,包括理解容器性能指标(如CPU、内存、网络和磁盘I/O)并进行相应调优。重点讲述了CPU和内存的限制设置,网络配置优化以及磁盘I/O性能提升方法。通过实例展示了如何解决高CPU使用率问题,强调了根据应用需求进行调优的重要性,以实现更高效、稳定的容器运行。
【Docker 专栏】Docker 容器性能调优实战
|
5天前
|
前端开发 API 数据库
【Docker专栏】Docker Compose实战:编排多容器应用
【5月更文挑战第7天】Docker Compose是Docker的多容器管理工具,通过YAML文件简化多容器应用部署。它能一键启动、停止服务,保证开发、测试和生产环境的一致性。安装后,创建`docker-compose.yml`文件定义服务,如示例中的web和db服务。使用`docker-compose up -d`启动服务,通过`docker-compose ps`、`stop`、`down`和`logs`命令管理服务。
【Docker专栏】Docker Compose实战:编排多容器应用
|
5天前
|
运维 Linux Docker
Docker详解(十一)——Docker容器CPU资源限额实战Docker详解
Docker详解(十一)——Docker容器CPU资源限额实战
23 5
|
13天前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里云函数计算中,容器运行过程中的最大内存使用量获取如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
34 2
|
13天前
|
运维 IDE Serverless
Serverless 应用引擎产品使用之阿里函数计算中,阿里云容器镜像服务(Container Registry)中创建自定义镜像,然后将其部署到FC上如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
28 0
|
16天前
|
人工智能 边缘计算 Kubernetes
阿里云边缘容器云帮助AI推理应用快速落地
2024全球分布式云大会·北京站,阿里云徐若晨演讲内容分享
27 0
|
17天前
|
弹性计算 运维 Kubernetes
阿里云轻量应用服务器与轻量容器服务简介与区别及收费标准参考
轻量应用服务器是深受个人和普通企业用户亲耐的一款轻量级云服务器产品,提供精品应用一键部署,支持一站式的域名、网站、安全、运维、应用管理等服务,极大优化搭建简单应用的体验,降低了入门级用户使用云计算产品的门槛。轻量容器服务是专为学生、个人开发者等用户打造的轻量级容器服务,帮助您在云上快速了解容器和Kubernetes(简称K8s)相关的基础概念和轻松进行入门实践。本文为大家介绍一下阿里云轻量应用服务器与轻量容器服务的区别以及收费标准,以供参考。
阿里云轻量应用服务器与轻量容器服务简介与区别及收费标准参考
|
26天前
|
边缘计算 运维 监控
阿里云超大规模边缘容器云助力应用全球化部署
第十四届亚太内容分发大会,阿里云邓茜演讲内容分享
27 0
|
1月前
|
存储 缓存 Java
阿里云OSS实战从入门到大神
说起阿里云OSS,那作用和功能都是非常强大的,它可以存放图片,音频,视频等资源文件,这些资源文件,你不必存放到服务器的硬盘里,这样既可以节省服务器硬盘空间,又可以降低服务器的读写压力,非常适合大并发的架构。
61 0


http://www.vxiaotou.com