高性能计算平台 自动伸缩最佳实践

这篇说说如何使用VASP软件在THPC集群上配置自动伸缩策略,通过创建集群并设置自动扩缩容参数,实现根据作业负载自动增减计算节点,从而降低成本并提高资源利用率。 创建集群:使用CreateCluster接口创建含1个管控节点、0个计算节点的THPC集群,需设置AutoScalingType为THPC_AS。 配置伸缩:通过SetAutoScalingConfiguration接口设置队列的扩容等待时间(120秒)和缩。

相关产品
高性能计算平台 产品页,含版本规格、价格与购买入口。

这篇以使用 VASP 软件进行高性能计算介绍如何配置自动伸缩策略。

一、背景信息

当你需要每天不定时提交作业,使用 THPC 集群几个小时进行大规模计算, 然后释放节点,你可以针对不同的作业类型,配置不同的伸缩策略。配置伸缩策略后,系统可以根据实时负载自动增加或减少计算节点。可以帮你合理利用资源,减少使用成本。

二、前置条件

请依照 准备工作 中的指引获取 SecretId 和 SecretKey,并完成 服务角色授权。

三、操作步骤

1. 安装最新版本的 TCCLI 命令工具 ,并进行 初始化配置 请参见 THPC 地域列表。

2. 使用 CreateCluster 接口创建一个有 1 个 管控节点 0 个 计算节点 的 THPC 集群。

执行命令:

tccli thpc CreateCluster –cli-input-json file://./test.json

test.json 文件参数配置可参见:

{ "Placement": { "Zone": "ap-chongqing-1" }, "ManagerNodeCount": 1, "ManagerNode": { "InternetAccessible": { "InternetMaxBandwidthOut": 10 }, "InstanceName": "ThpcTestSlurmManagerNode", "InstanceType": "S5.MEDIUM4" }, "SchedulerType": "SLURM", "LoginSettings": { "Password": "xxxxxxxx" }, "ImageId": "img-l8og963d", "VirtualPrivateCloud": { "VpcId": "vpc-r9jw2jzv", "SubnetId": "subnet-0v4eybey" }, "AutoScalingType": "THPC_AS"}

提交请求并执行完毕后,你需要记录 ClusterId:


使用 ClusterId 查询集群状态:

tccli thpc DescribeClusters –ClusterIds '["hpc-xxxxxxxx"]'

返回结果,其中:

·ClusterStatus 为 RUNNING 状态表示集群创建完成,可以开始使用。

·ClusterStatus 为 INITING 状态表示集群正在初始化中,需要等待直到为 RUNNING 或者 INIT_FAILED 状态之一。

·ClusterStatus 为 INIT_FAILED 状态表示集群创建失败,你可以使用 API Explorer 查看集群活动 查看详细集群状态信息。


3. 使用 SetAutoScalingConfiguration 接口开启 THPC AS 功能。

tccli thpc SetAutoScalingConfiguration –cli-input-json file://./SetAutoScalingConfiguration.json

{ "ClusterId": "hpc-xxxxxxxx", "ExpansionBusyTime": 120, "ShrinkIdleTime": 120, "QueueConfigs": [{ "QueueName": "compute", "MinSize": 1, "MaxSize": 5, "EnableAutoExpansion": true, "EnableAutoShrink": true, "ExpansionNodeConfigs": [{ "Placement": { "Zone": "ap-chongqing-1" }, "VirtualPrivateCloud": { "VpcId": "vpc-r9jw2jzv", "SubnetId": "subnet-0v4eybey" }, "InstanceType": "S6.4XLARGE32" }, { "Placement": { "Zone": "ap-chongqing-1" }, "VirtualPrivateCloud": { "VpcId": "vpc-r9jw2jzv", "SubnetId": "subnet-0v4eybey" }, "InstanceType": "S6.2XLARGE32" }] }]}

以上 SetAutoScalingConfiguration.json 文件接口配置好集群自动扩缩容参数如下:

·开启 Slurm 调度器 compute 队列的自动扩容能力,THPC 会根据扩容策略对连续等待超过120秒的作业进行自动扩容,并且弹性节点的最大值不超过5个。ExpansionBusyTime 参数取值最小值为120s。

·开启 Slurm 调度器 compute 队列的自动缩容能力,THPC 会对连续空闲超过120s的节点进行自动缩容,并且弹性节点的最小值不小于1个。ShrinkIdleTime 取值最小值为0s。

·compute 队列配置了两个扩容机型。

序号 机型 CPU
1 S6.4XLARGE32 16
2 S6.2XLARGE32 8

4. 登录管控节点提交 VASP 作业:
submit.sh 脚本内容如下,脚本提交一个 vasp 作业,在一个节点上使用8个核运行:

#!/bin/sh#SBATCH -p compute#SBATCH -o job.%j.out#SBATCH –nodes=2#SBATCH –ntasks-per-node=8#SBATCH -D /opt/graphenesource /opt/intel/oneapi/setvars.sh/opt/intel/oneapi/mpi/2021.7.0/bin/mpirun -n 16 /opt/vasp.6.3.0/bin/vasp_std

提交作业前,集群没有任何节点存在:


提交作业:

sbatch submit.sh

5. 集群扩容并执行作业,作业结束后缩容到0节点。
提交作业之后,THPC 会根据扩容策略,扩容出最匹配的两个8核的 S6.2XLARGE32 实例。等待约4~8分钟后,节点加入集群并运行提交的作业。

注意:说明:

注意:等待的时间主要包括作业连续等待时间 120 秒、创建实例的时间和节点创建完初始化并加入集群的时间。


任务执行完成之后,节点进入空闲(idle)状态:


等待2~3分钟之后,会进行自动缩容到最小节点数:

6. 使用完毕后,使用如下命令删除集群,关联的计算实例将会被销毁。 CFS 文件存储不会删除,如果你需要销毁,可前往 CFS 控制台。

tccli thpc DeleteCluster –ClusterId hpc-xxxxxxxx

赞 (0)
上一篇 4天前
下一篇 4天前