腾讯云高性能计算平台THPC完全对接指南:从集群创建到作业调度实战

apphuang2026年07月09日 18:18:3310

1. 初识腾讯云高性能计算平台THPC

高性能计算平台(TencentCloud High Performance Computing,THPC)是腾讯云自研的一款高性能计算资源管理服务。它并非直接提供物理计算节点,而是将腾讯云上的计算、存储、网络等产品资源进行深度集成,并整合了HPC专用的作业管理调度与集群管理软件,向用户提供弹性灵活、性能卓越、自助化的计算服务。

理解THPC的定位需要先厘清一个概念:腾讯云还有一款名为高性能计算集群(THCC)的产品,它是通过RDMA网络互联的裸金属集群,属于IaaS层的产品。而THPC则是构建在IaaS资源之上的PaaS层资源管理服务,整合了调度器和集群管理软件。简单来说,THCC提供的是“算力硬件”,而THPC提供的是“算力管理平台”——用户通过THPC可以更便捷地调度和管理底层的计算资源。

需要先登录腾讯云控制台,点击:腾讯云控制台,还没有账号,点击:注册后再关联,已有账号点击:登录后再关联

1.1 核心产品特性

THPC围绕高性能计算场景设计了一系列核心功能:

  • 弹性伸缩:根据业务负载动态申请和释放计算资源,高峰时期无缝扩展,低谷时期自动回落,实现资源的按需使用。
  • 资源管理:支持批量创建计算资源,以集群方式统一管理大规模计算节点和存储资源,实时监控资源状态并快速调整。
  • 作业调度:支持Slurm等HPC行业标准的调度器,用户可通过主控节点提交作业,系统自动进行资源分配与任务调度。
  • 共享存储:支持自动挂载文件存储CFS或数据加速器GooseFS,为集群中所有节点提供统一的共享存储空间。
  • 灵活部署:支持丰富的实例规格选择,可灵活适配科学计算、基因测序、建模仿真、气象预测等多种应用场景。
  • 按需付费:仅需为实际使用的云资源付费,无需预付费用,结合弹性伸缩功能可有效控制成本。

1.2 典型应用场景

THPC在多个高性能计算领域都有广泛的应用:基因工程领域可部署基因测序、基因比对等软件,快速获得基因组信息与分析结果;药物筛选与分子模拟方面可部署药物分子模拟软件,分析蛋白质等大分子结构,加速新药研发;科学计算领域可整合大规模浮点运算能力的异构计算资源,进行数值模拟与仿真计算;工程制造方面可辅助分析复杂工程架构和力学结构,通过大量数据仿真模拟优化产品性能。

2. THPC的对接方式概览

THPC提供了多种对接方式,用户可以根据自身技术栈和使用习惯灵活选择。主要包括以下几种途径:

  • 控制台方式:通过腾讯云Web控制台进行图形化操作,适合初次使用和日常管理。
  • API方式:通过调用THPC的API 3.0接口进行编程化管理,适合自动化运维和二次开发。
  • SDK方式:使用腾讯云提供的多语言SDK(Python、Java、Go等)进行开发集成。
  • 命令行工具:使用TCCLI(腾讯云命令行工具)进行命令行操作。

3. 通过控制台创建THPC集群

3.1 前置准备

在创建THPC集群之前,需要完成以下准备工作:

  1. 注册腾讯云账号并完成实名认证。
  2. 访问管理控制台生成API密钥(SecretId和SecretKey),用于后续的API调用。
  3. 规划集群的地域和可用区,建议选择与业务数据源相近的地域以降低网络延迟。
  4. 准备VPC私有网络和子网,用于集群的网络隔离。

3.2 创建集群操作步骤

通过控制台创建THPC集群的具体步骤如下:

  1. 登录云服务器控制台,在左侧导航栏选择高性能计算平台 > 集群列表
  2. 在集群列表页面上方,选择目标地域,单击新建
  3. 在创建集群弹窗中,按需配置以下参数:
    • 可用区:选择集群所在可用区。
    • 集群名称:自定义集群名称,便于识别。
    • 集群描述:可选,填写集群的用途描述。
    • 标签:可选,用于资源分类管理。
  4. 配置管控节点(Manager Node):管控节点是集群的管理核心,负责作业调度和资源管理。支持配置1个或2个管控节点以实现高可用。计费类型支持包年包月和按量计费。
  5. 配置计算节点(Compute Node):计算节点是实际执行计算任务的资源。计算节点数量最少为0个,最多为200个。计费类型支持包年包月、按量计费和竞价实例。
  6. 配置调度器:目前THPC支持Slurm调度器。镜像方面支持CentOS 7.9(img-l8og963d)和CentOS 8.2(img-n7nyt2d7)。
  7. 配置存储:THPC支持自动挂载文件存储CFS或数据加速器GooseFS。如果本地/opt/挂载点没有挂载文件系统,THPC在集群创建过程中会自动创建一个标准型的CFS挂载到/opt/目录下。
  8. 确认配置信息,单击创建

集群创建请求下发成功后会返回一个集群ID,此时集群创建操作并未立即完成,集群状态将会处于PENDING或INITING状态。等待约5分钟集群初始化完毕后,即可在集群列表中查看状态变为RUNNING。

3.3 节点管理

集群创建完成后,可以通过控制台对节点进行管理:

  • 添加节点:当计算资源不足时,可以通过控制台或API向集群添加计算节点或登录节点。
  • 节点查询:查看集群中所有节点的状态、规格和角色信息。节点角色分为Manager(管控节点)、Compute(计算节点)、Login(登录节点)和ManagerBackup(备用管控节点)。
  • 节点启停:对节点执行启动、停止、重启等操作。
  • 节点删除:释放不再需要的计算节点以节约成本。

4. 通过API/SDK对接THPC

对于需要自动化管理和二次开发的场景,THPC提供了完整的API 3.0接口。API请求域名为 thpc.tencentcloudapi.com。默认接口请求频率限制为20次/秒。

4.1 API接口概览

THPC支持的主要API操作包括:

  • 集群管理:CreateCluster(创建集群)、DescribeClusters(查询集群列表)、DeleteCluster(删除集群)、ModifyClusterAttribute(修改集群属性)。
  • 节点管理:AddNodes(添加节点)、DeleteNodes(删除节点)、DescribeNodes(查询节点列表)。
  • 队列管理:AddQueue(添加队列)、DeleteQueue(删除队列)、DescribeQueues(查询队列列表)。
  • 作业管理:SubmitJob(提交作业)、DescribeJobs(查询作业列表)、TerminateJob(终止作业)、DeleteJob(删除作业)。
  • 弹性伸缩:BindAutoScalingGroup(绑定弹性伸缩组)、SetAutoScalingConfiguration(设置弹性伸缩配置)。
  • 存储管理:AddClusterStorageOption(添加集群存储选项)、DeleteClusterStorageOption(删除集群存储选项)。

4.2 Python SDK安装与配置

腾讯云提供了官方Python SDK,可以通过pip进行安装:

pip install tencentcloud-sdk-python-common
pip install tencentcloud-sdk-python-thpc

在使用SDK之前,需要先获取安全凭证。在腾讯云控制台的访问管理 > API密钥管理页面中,可以生成SecretId和SecretKey。SecretId用于标识API调用者的身份,SecretKey用于加密签名字符串和服务器端验证签名字符串的密钥,必须严格保管。

4.3 Python SDK创建集群示例

以下是通过Python SDK创建THPC集群的完整代码示例:

import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.thpc.v20220401 import thpc_client, models

# 配置认证信息
cred = credential.Credential("YOUR_SECRET_ID", "YOUR_SECRET_KEY")

# 配置HTTP访问
httpProfile = HttpProfile()
httpProfile.endpoint = "thpc.tencentcloudapi.com"

# 配置客户端
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = thpc_client.ThpcClient(cred, "ap-guangzhou", clientProfile)

# 构建创建集群请求
req = models.CreateClusterRequest()

# 集群基础配置
params = {
    "ClusterName": "my-hpc-cluster",
    "Description": "Python SDK创建的THPC集群",
    "Placement": {
        "Zone": "ap-guangzhou-3"
    },
    "VirtualPrivateCloud": {
        "VpcId": "vpc-xxxxx",
        "SubnetId": "subnet-xxxxx"
    },
    # 管控节点配置:1个管控节点
    "ManagerNodeCount": 1,
    "ManagerNodeInstanceType": "S5.MEDIUM4",
    # 计算节点配置:初始2个计算节点
    "ComputeNodeCount": 2,
    "ComputeNodeInstanceType": "S5.LARGE8",
    # 调度器配置
    "SchedulerType": "SLURM",
    # 镜像配置
    "ImageId": "img-l8og963d",
    # 登录设置
    "LoginSettings": {
        "Password": "YourPassword123!"
    }
}

req.from_json_string(json.dumps(params))

# 发送请求
resp = client.CreateCluster(req)
print(resp.to_json_string())

创建集群请求成功后会返回一个集群ID(格式如hpc-xxxxx)和RequestId。可以通过DescribeClusters接口查询集群状态,当状态变为RUNNING时表示集群已就绪。

4.4 Python SDK添加节点示例

集群创建后,可以通过AddNodes接口动态添加计算节点:

from tencentcloud.thpc.v20220401 import models

# 构建添加节点请求
req = models.AddNodesRequest()
params = {
    "ClusterId": "hpc-xxxxx",
    "Placement": {
        "Zone": "ap-guangzhou-3"
    },
    "VirtualPrivateCloud": {
        "VpcId": "vpc-xxxxx",
        "SubnetId": "subnet-xxxxx"
    },
    "Count": 2,  # 添加2个计算节点
    "InstanceType": "S5.LARGE8",
    "ImageId": "img-l8og963d",
    "InstanceChargeType": "POSTPAID_BY_HOUR"  # 按量计费
}

req.from_json_string(json.dumps(params))
resp = client.AddNodes(req)
print(resp.to_json_string())

AddNodes接口支持添加计算节点或登录节点到指定集群。节点数量最少为0个,最多为200个。系统盘支持普通云硬盘、高性能云硬盘及SSD云硬盘,数据盘最多支持21块。

4.5 Python SDK提交作业示例

通过SubmitJob接口可以向集群提交计算作业:

# 构建提交作业请求
req = models.SubmitJobRequest()
params = {
    "ClusterId": "hpc-xxxxx",
    "Job": {
        "JobName": "my-first-job",
        "QueueName": "compute",  # SLURM默认队列为compute
        "Resources": {
            "Cpu": 4,
            "Memory": 8192  # MB
        },
        "Command": "#!/bin/bash\necho 'Hello THPC'\nhostname\n",
        "WorkDir": "/data/jobs"
    }
}

req.from_json_string(json.dumps(params))
resp = client.SubmitJob(req)
print(resp.to_json_string())

提交作业后可以通过DescribeJobs接口查询作业执行状态。

5. 作业调度管理

THPC集成了Slurm这一HPC行业标准的调度器,用户可以通过主控节点提交作业到集群,系统自动进行资源的统一管理和分配。

5.1 Slurm作业提交方式

Slurm支持多种作业提交方式:

  • 批处理作业(sbatch):将作业脚本提交给调度系统,脚本在分配的资源上执行。
  • 交互式作业(srun):直接在命令行中执行并行任务。
  • 交互式会话(salloc):分配资源并启动一个交互式Shell会话。

5.2 编写Slurm作业脚本

以下是一个标准的Slurm作业脚本模板:

#!/bin/bash
#SBATCH --job-name=my_hpc_job      # 作业名称
#SBATCH --output=%j.out            # 标准输出文件
#SBATCH --error=%j.err             # 错误输出文件
#SBATCH --ntasks=4                 # 任务数
#SBATCH --cpus-per-task=2          # 每个任务的CPU数
#SBATCH --mem=8192                 # 内存需求(MB)
#SBATCH --time=01:00:00            # 运行时间限制
#SBATCH --partition=compute        # 分区名称

# 加载环境模块(如有需要)
# module load intel/2020

# 执行计算任务
echo "Job started at $(date)"
echo "Running on node: $(hostname)"

# 运行MPI程序(示例)
mpirun -np 4 ./my_application

echo "Job finished at $(date)"

5.3 提交与管理作业

将作业脚本保存为 job.slurm 后,通过以下命令提交:

sbatch job.slurm

常用的作业管理命令:

  • squeue:查看作业队列状态
  • scancel:取消作业
  • sinfo:查看分区和节点状态
  • sacct:查看作业历史记录

6. 共享存储配置

THPC支持为集群挂载共享文件存储,为集群中所有节点提供统一的共享存储空间。支持的存储类型包括:

  • 文件存储CFS:标准共享文件存储服务。
  • 数据加速器GooseFS:高性能数据加速存储。
  • 全托管数据加速器GooseFSx:全托管的高性能数据加速服务。

6.1 添加集群存储选项

通过AddClusterStorageOption接口可以为集群添加CFS挂载:

# 添加集群存储选项
req = models.AddClusterStorageOptionRequest()
params = {
    "ClusterId": "hpc-xxxxx",
    "StorageOption": {
        "CFSOption": {
            "LocalPath": "/data/shared",      # 集群内挂载路径
            "RemotePath": "/",                # CFS文件系统根目录
            "FileSystemId": "cfs-xxxxx"       # CFS文件系统ID
        }
    }
}
req.from_json_string(json.dumps(params))
resp = client.AddClusterStorageOption(req)
print(resp.to_json_string())

集群创建完毕并且为运行中(RUNNING)状态后,可以通过AddClusterStorageOption接口添加集群存储选项。添加完之后,THPC会尝试对当前集群存在的所有节点挂载上存储资源,后续通过THPC扩容出来的实例也会自动挂载存储选项的资源。

7. 弹性伸缩配置

THPC的弹性扩缩容功能支持根据业务负载动态伸缩集群节点,帮助用户节省集群成本。用户可以通过在创建集群接口中的AutoScalingType配置THPC_AS模式进行扩缩容。

7.1 绑定弹性伸缩组

通过BindAutoScalingGroup接口可以为集群队列绑定弹性伸缩组:

# 绑定弹性伸缩组
req = models.BindAutoScalingGroupRequest()
params = {
    "ClusterId": "hpc-xxxxx",
    "QueueName": "compute",
    "AutoScalingGroupId": "asg-xxxxx",
    "MinSize": 0,    # 最小节点数
    "MaxSize": 50    # 最大节点数
}
req.from_json_string(json.dumps(params))
resp = client.BindAutoScalingGroup(req)
print(resp.to_json_string())

7.2 设置弹性伸缩配置

通过SetAutoScalingConfiguration接口可以设置更详细的弹性伸缩配置:

# 设置弹性伸缩配置
req = models.SetAutoScalingConfigurationRequest()
params = {
    "ClusterId": "hpc-xxxxx",
    "QueueName": "compute",
    "ExpandConfig": {
        "MaxNodes": 50,
        "ScaleOutThreshold": 80,   # 扩容阈值(百分比)
        "ScaleOutInterval": 300    # 扩容检查间隔(秒)
    },
    "ShrinkConfig": {
        "MinNodes": 0,
        "ScaleInThreshold": 20,    # 缩容阈值(百分比)
        "ScaleInInterval": 600     # 缩容检查间隔(秒)
    }
}
req.from_json_string(json.dumps(params))
resp = client.SetAutoScalingConfiguration(req)
print(resp.to_json_string())

弹性伸缩功能可以识别工作负载情况,动态调整云上资源。高峰时期无缝扩展计算节点,低谷时期自动回收闲置资源,实现资源的按需使用。

8. 监控与告警

THPC提供了集群监控能力,用户可以通过控制台查看集群和节点的资源使用情况。主要监控指标包括:

  • CPU使用率
  • 内存使用率
  • 磁盘IO
  • 网络流量
  • 作业队列长度

建议对关键业务集群设置CPU使用率超过85%、内存使用率超过90%的告警规则,通过微信、邮件等方式实时接收通知。可以通过EnableClusterMonitor和DisableClusterMonitor接口开启或关闭集群的监控能力。

9. 最佳实践与成本优化

9.1 集群规划建议

  • 管控节点高可用:对于生产环境,建议配置2个管控节点实现高可用。
  • 计算节点选型:根据计算任务类型选择合适的实例规格。CPU密集型任务选择计算优化型实例,内存密集型任务选择内存优化型实例。
  • 存储规划:将共享存储挂载到统一路径(如/data),便于所有节点访问。

9.2 成本优化策略

  • 弹性伸缩:充分利用THPC的弹性伸缩功能,根据负载动态调整计算节点数量。
  • 计费模式选择:对于长期稳定的计算任务,选择包年包月计费模式可享受更优惠的价格。对于突发性业务高峰,选择按量计费模式。对于可容忍中断的批处理任务,可选择竞价实例以进一步降低成本。
  • 资源利用率优化:通过合理配置作业队列和调度策略,最大化利用计算资源。

9.3 安全建议

  • 使用RAM子账号进行日常操作,避免使用主账号密钥。
  • 定期更换API密钥。
  • 通过安全组控制网络访问,仅开放必要的端口。
  • 对敏感数据启用加密存储。

10. 常见问题排查

10.1 作业提交失败

如果作业提交失败,首先检查管控节点与计算节点之间的网络连通性。可以在管控节点上通过ssh登录到计算节点进行测试。同时检查/var/log/slurmd.log日志文件,查看具体的报错原因。

10.2 节点无法加入集群

节点无法加入集群的常见原因包括:

  • VPC和子网配置不正确
  • 安全组规则阻挡了节点间通信
  • 镜像版本不兼容
  • 配额不足

10.3 存储挂载失败

存储挂载失败时,检查以下方面:

  • CFS文件系统是否存在且状态正常
  • 挂载路径是否已被占用
  • NFS服务是否正常运行
  • 网络连通性是否正常

11. 总结

本文全面介绍了腾讯云高性能计算平台THPC的对接使用方法。从产品定位和核心特性入手,详细讲解了通过控制台创建集群的完整流程,深入展示了Python SDK调用API进行集群管理、节点管理和作业提交的代码实现,并涵盖了Slurm作业调度、共享存储配置、弹性伸缩设置、监控告警等高级功能。通过本文的指南,读者可以快速掌握THPC的使用方法,在云上构建弹性、高效、经济的高性能计算环境。

THPC作为PaaS层的高性能计算资源管理服务,将底层IaaS资源的复杂性封装起来,为用户提供了统一的集群管理和作业调度体验。结合腾讯云强大的计算、存储和网络能力,THPC能够帮助科研机构、企业和开发者更专注于业务本身,加速创新与研发进程。

问答环节

问1:THPC和THCC有什么区别?
THCC(高性能计算集群)是通过RDMA网络互联的裸金属集群,属于IaaS层的产品,提供的是“算力硬件”。THPC(高性能计算平台)是构建在IaaS资源之上的PaaS层资源管理服务,整合了调度器和集群管理软件,提供的是“算力管理平台”。

问2:THPC支持哪些调度器?
目前THPC支持Slurm调度器。单个集群中队列数量上限为10个。Slurm默认队列名称为compute。

问3:THPC集群的计算节点数量有什么限制?
计算节点数量最少为0个,最多为200个。管控节点数量支持1个或2个。

问4:如何通过API向THPC集群提交作业?
可以通过SubmitJob接口提交作业。需要指定集群ID、作业名称、队列名称、资源需求(CPU和内存)以及执行的命令。

问5:THPC支持哪些存储类型?
THPC支持文件存储CFS、数据加速器GooseFS和全托管数据加速器GooseFSx。集群创建过程中会自动创建一个标准型的CFS挂载到/opt/目录下。

问6:如何降低THPC的使用成本?
可以通过以下方式降低成本:使用弹性伸缩功能根据负载动态调整节点数量;长期稳定任务选择包年包月计费;突发任务选择按量计费;可容忍中断的任务选择竞价实例。

相关文章

腾讯云服务器购买优惠!3 个省钱攻略 + 1 个安全真相,新手必看!

腾讯云服务器购买优惠!3 个省钱攻略 + 1 个安全真相,新手必看!

最近后台总收到小伙伴私信:“腾讯云服务器看着挺好,但价格有点顶,学生党 / 小团队实在买不起咋办?” 别急!今天就来手把手教你 “花小钱办大事”,不光有省钱攻略,还会扒一扒大家最关心的安全问题,看完这…

After 10 Years as a Tencent Cloud Agent, Let Me Talk About Rebates

After 10 Years as a Tencent Cloud Agent, Let Me Talk About Rebates

Lately, I’ve been getting a lot of questions from friends: “Does Tencent offer rebates? Can you…

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

一、腾讯云代理商返利机制核心逻辑1. 行业背景与代理模式腾讯云作为国内公有云市场的第二大领导者(据IDC 2025年数据,占据国内27.6%的市场份额),采用渠道商代理模式拓展市场。代理商负…

2026年腾讯云代理深度解析:从折扣体系到最优合作策略

2026年腾讯云代理深度解析:从折扣体系到最优合作策略

上海汪远信息科技有限公司作为腾讯云全国级殿堂级代理,凭借13年云服务经验与深厚的官方合作关系,为企业提供全方位的上云支持,可百度:上海汪远信息科技有限公司,微信:791201210一、腾讯云代理体系全…

上海汪远信息:全国Top5腾讯云代理商,10年深耕为企业上云保驾护航

上海汪远信息:全国Top5腾讯云代理商,10年深耕为企业上云保驾护航

核心摘要本文深度解析腾讯云代理商行业现状,揭示小代理商生存困境的核心原因(低业绩导致提成少、厂商压款、市场淘汰),重点推荐上海汪远信息科技有限公司——一家拥有10年腾讯云代理经验、年销量超2亿的全国T…

从行业现状分析腾讯云代理商价值,企业选云服务商避坑指南和企业上云选型干货

从行业现状分析腾讯云代理商价值,企业选云服务商避坑指南和企业上云选型干货

一、云计算代理商基础定义通俗来讲,腾讯云等云厂商的代理商,是依托官方合作资质、协助云厂商做产品市场化推广的合作服务商。代理主营推广云服务器、大模型服务、数据库、对象存储COS、CDN、直播云服务等全系…