Cyclecloud介绍以及使用指南

Azure CycleCloud是一款用于在Azure平台上轻松管理高性能计算环境的工具,它抽象了Azure组件,支持自动缩放,并提供多种调度器模板。通过CycleCloud,用户可以快速创建和配置HPC集群,实现资源池的弹性管理。此外,CycleCloud还提供用户访问控制、监控、日志记录和基础设施代码化的特性。
部署运行你感兴趣的模型镜像

Azure CycleCloud

CycleCloud简介

CycleCLoud是在Azure平台上管理高性能计算环境的一套企业级友好的工具。它面向的对象是希望在高性能计算的环境中使用某一个特定调度器的管理员和用户。CycleCloud抽象出了基本的Azure组件,包括VM,scaleset,网络接口和磁盘。这使得高性能计算的管理员可以关注熟悉的情况:一个由节点和可配置的调度器组成的高性能计算集群。
CycleCloud在它支持的调度器之上部署了自动规模控制插件,这让用户无需实现复杂的自动规模控制函数和例程,而只需要和他们熟悉的调度器层面的配置打交道。
CycleCloud提供了一系列官方的调度器和文件系统模板。并且Cyclecloud社区也提供了很多可供使用的模板。可以直接使用或者将他们根据特定需求进行修改。使用模板和安装脚本使得管理员可以很快地搭建复杂的高性能计算环境,并且方便在企业内部进行移交。

关于CycleCloud的一些概念

从最基本说起,高性能计算(High Performance Computing)系统是一个由性能优化的文件系统支持和低延迟互联网络连接的计算资源池。资源池中的计算资源通常由HPC调度器来管理。
基于云来建立HPC系统可能会很麻烦,特别是VM,磁盘等资源可能是暂时的。另外操作者可能希望根据不同的商业场景搭建不同分开的HPC环境。管理这些环境会带来额外的困难。因此我们需要有CycleCloud来帮助。
CycleCloud
CycleCloud这款工具就可以帮助用户在Azure是搭建HPC系统。系统的大小可以根据提交的HPC任务弹性变化,无需手动管理基本的Azure组件的麻烦。
Cyclecloud提供了许多集成,包括

  1. 节点准备和配置系统,将准备好的VM转换为HPC节点
  2. 自动规模控制,将HPC调度器的任务要求转换为Azure资源。

Cyclecloud还提供以下的额外特性:

  • User Access
    可以使用统一的管理平面在管理用户账户(通过Template)
  • Monitoring
    Node-level的指标会被收集并展示在CycleCloud UI之上
  • Logging
    CycleCloud提供记录活动和时间的系统
  • Portability
    系统不强制使用特定的VM镜像或操作系统
  • Infrastructure as code
    由于在CycleCloud上创建任何东西都是通过模板和配置脚本进行的,通过CycleCloud部署的HPC系统具有可重复性和可移植性。
  • Loosely coupled or tightly coupled workload
    通过CycleCloud创建的集群不仅仅是为了松耦合的任务设计的,这些任务中规模是最主要的问题,同时由于Azure Infiniband主干网的存在,集群也是为了紧耦合或者基于MPI的workload设计的。这些任务中亲近性和网络延迟十分关键。

Clusters and Nodes

在CycleCloud中,Cluster指一组互联的电脑(nodes),他们共同工作形成一个系统。Cluster可以嵌套,一个Cluster可能由一个headnode,若干挂载了由许多文件服务器构成的文件存储的Cluster的计算节点构成。
在这里插入图片描述
Node和VM经常会交互使用,但是在语义上是不同的。Node是经过了准备和配置过程之后的VM。
Node会有两种化身。Standalone Node和nodearray. Standalone Node由单个VM构造,而node array映射到Virtual Machine scale sets. 但是nodearray和VM scale sets也有区别,最主要的是一个nodearray可以由多个VM scale sets组成。因此nodearray可以由不同尺寸甚至不同种类的VM构成,只要他们在cluster中扮演相同的角色。
在这里插入图片描述
每个节点的配置过程定义了Cluster-init Spec,作为启动VM的规范,用于为集群中的特定角色做好准备。
Spec被编写为逻辑集合之后叫做Projects. 比如,一个batch scheduler的project至少由i两个specs组成,一个对headnode,一个对其它计算节点。

Scheduling and Autoscaling

CycleCloud不是一个调度器,而是一个可以让用户在Azure上部署自己调度器的平台。用户可以在这上面管理并分配任务到cluster的nodes上。同时CycleCloud提供了REST API和python library,用来为调度器开发Autoscaling Adapter,实现根据任务队列长度和管理策略对集群规模的调整。
在这里插入图片描述
调度器是一种软件,它接受作业(或任务)列表,并将这些任务分配到可用资源池中,同时考虑到作业的资源需求以及作业之间的依存关系和优先级。
为每种类型的调度器创建的Adapter起两个主要作用:1)从调度器任务队列中整合资源需求,以及2)将资源需求转换为针对Azure VM大小集的分配请求。
节点分配器工作在CycleCloud server上。它接受调度器Adapter的分配请求,预备可以完成请求的Azure资源,并将准备好的资源以节点集合的形式返回给Adapter

CycleCloud Tutorial: 创建并运行一个简单的HPC集群

这个Tutorial将建了一个使用Slurm作为调度器的新集群,并提交一个简单的任务——计算圆周率。为集群创建一个预警来通知是否超过了预算。

创建集群

首先选择创建新集群,选择调度器中的Slurm,输入Cluster Name后点击Next,然后需要选择区域,Master VM Type和Execute VM Type。选择Autoscaling来使Cyclecloud可以自动调整集群规模。选择subnet之后点击Next.
高级设置中包括设置集群的操作系统和高级网络设定,可以根据需要修改他们,然后单击保存。
在启动之间可以先添加Alert来提示接近预算。设置预算并填写接收Alert的邮件地址后单击保存。
单击Start之后,集群需要几分钟来预备和组织VM以及安装和配置调度器,可以在Detail Tab中查看进展。

提交任务

在通过ssh连接集群之前需要在My Profile > Edit Profile > SSH Public Key中添加你的SSH公钥。这样公钥会被保存在启动的集群中,然后你可以使用你的SSH私钥来登录Master Node。在集群管理面板中选中Master Node,然后点击Connect按钮。弹出窗口显示了如何连接到集群的信息。将字符串复制到SSH客户端或者Cloud Shell来连接Master Node.
可以使用squeue命令来查看任务队列状态。可以使用sinfo来查看节点信息。用srun来提交任务。
可以在Web GUI钟查看auto-scaling的情况

scc webinar: about CycleCloud

https://www.youtube.com/watch?v=oa02aV5MaBU&feature=youtu.be

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值