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

apphuang2026年06月17日 17:38:446

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提供了多种对接方式,用户可以根据自身技术栈和使用习惯灵活选择。

2.1 控制台方式

通过腾讯云官网的THPC产品控制台,可以直观地完成集群创建、节点管理、存储挂载等操作。这是最便捷的入门方式,适合初次接触THPC的用户快速体验产品功能。

2.2 API方式

THPC提供了完整的API 3.0接口,接口请求域名为 thpc.tencentcloudapi.com。核心接口包括:

  • CreateCluster:创建并启动集群
  • DescribeClusters:查询集群列表
  • AddNodes / DeleteNodes:添加/删除节点
  • AddQueue / DeleteQueue:添加/删除队列
  • SubmitJob / TerminateJob:提交/终止作业
  • BindAutoScalingGroup:绑定弹性伸缩组
  • SetAutoScalingConfiguration:设置弹性伸缩配置
  • AddClusterStorageOption:添加集群存储选项

腾讯云提供了API Explorer工具,支持在线调用、签名验证、SDK代码生成和快速检索接口等能力。用户可以直接在浏览器中调试API接口并自动生成调用代码。

2.3 命令行工具TCCLI

TCCLI是腾讯云提供的统一命令行工具,支持通过命令行调用THPC的所有API接口。适合习惯命令行操作或需要编写自动化脚本的运维人员。

2.4 SDK方式

腾讯云为多种编程语言提供了SDK支持,包括Python、Java、Go、Node.js、PHP等。通过SDK可以将THPC的管理能力集成到自己的应用程序中,实现自动化运维和业务联动。

3. 集群创建实战

集群是THPC的基本管理单元,由计算节点、登录节点等组成,用于运行高性能计算作业。创建集群是对接使用THPC的第一步。

3.1 前置准备

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

  1. 账号与实名认证:注册腾讯云账号并完成实名认证。
  2. 获取API密钥:在访问管理控制台获取SecretId和SecretKey。
  3. 服务角色授权:完成THPC服务角色的授权。
  4. 网络规划:确定集群所在的VPC和子网。
  5. 镜像选择:THPC目前支持CentOS 7.9(镜像ID: img-l8og963d)和CentOS 8.2(镜像ID: img-n7nyt2d7)。

3.2 通过控制台创建集群

在THPC控制台点击"新建集群",按照向导配置以下关键参数:

  • 地域与可用区:选择集群所在的区域。
  • 集群名称与描述:便于识别和管理。
  • 管控节点:数量可为1或2个,负责集群管理和作业调度。
  • 计算节点:初始数量可为0,后续通过弹性伸缩动态调整。
  • 调度器类型:目前支持Slurm。
  • 镜像ID:选择支持的镜像。
  • 网络配置:VPC和子网。
  • 登录设置:密钥对或密码。
  • 安全组:指定安全组或使用默认安全组。

集群创建是异步操作,提交后会返回集群ID,状态会经历PENDING和INITING阶段,最终变为RUNNING状态表示创建完成。

3.3 通过API创建集群(Python SDK示例)

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

# -*- coding: utf-8 -*-
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.v20230321 import thpc_client, models

def create_thpc_cluster(secret_id, secret_key, zone, vpc_id, subnet_id, image_id):
    # 认证信息
    cred = credential.Credential(secret_id, 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()
    
    # 位置信息
    placement = models.Placement()
    placement.Zone = zone
    req.Placement = placement
    
    # 管控节点配置
    manager_node = models.ManagerNode()
    manager_node.InstanceType = "S5.MEDIUM4"  # 2核4GB
    req.ManagerNode = manager_node
    req.ManagerNodeCount = 1
    
    # 计算节点配置(初始为0)
    compute_node = models.ComputeNode()
    compute_node.InstanceType = "S5.LARGE8"  # 4核8GB
    req.ComputeNode = compute_node
    req.ComputeNodeCount = 0
    
    # 调度器类型
    req.SchedulerType = "SLURM"
    
    # 镜像ID
    req.ImageId = image_id
    
    # VPC配置
    vpc = models.VirtualPrivateCloud()
    vpc.VpcId = vpc_id
    vpc.SubnetId = subnet_id
    req.VirtualPrivateCloud = vpc
    
    # 登录设置(使用密钥对)
    login_settings = models.LoginSettings()
    login_settings.KeyIds = ["skey-xxxxxxxx"]
    req.LoginSettings = login_settings
    
    # 发送请求
    resp = client.CreateCluster(req)
    
    # 打印响应
    print(json.dumps(resp.to_json_object(), indent=2, ensure_ascii=False))
    return resp.ClusterId

if __name__ == "__main__":
    # 请替换为实际的密钥和参数
    cluster_id = create_thpc_cluster(
        secret_id="您的SecretId",
        secret_key="您的SecretKey",
        zone="ap-guangzhou-6",
        vpc_id="vpc-xxxxxxxx",
        subnet_id="subnet-xxxxxxxx",
        image_id="img-l8og963d"
    )
    print(f"集群创建成功,集群ID: {cluster_id}")

安装SDK的命令:

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

3.4 通过TCCLI命令行创建集群

首先安装并配置TCCLI:

# 安装TCCLI
pip install tccli

# 初始化配置
tccli configure

创建集群的JSON配置文件 cluster.json

{
    "Placement": {
        "Zone": "ap-guangzhou-6"
    },
    "ManagerNodeCount": 1,
    "ManagerNode": {
        "InstanceType": "S5.MEDIUM4"
    },
    "ComputeNodeCount": 0,
    "SchedulerType": "SLURM",
    "ImageId": "img-l8og963d",
    "VirtualPrivateCloud": {
        "VpcId": "vpc-xxxxxxxx",
        "SubnetId": "subnet-xxxxxxxx"
    },
    "LoginSettings": {
        "KeyIds": ["skey-xxxxxxxx"]
    }
}

执行创建命令:

tccli thpc CreateCluster --cli-input-json file://./cluster.json

查询集群状态:

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

4. 存储配置与管理

THPC集群需要共享存储来存放作业数据、应用程序和计算结果。创建集群后,可以给集群挂载额外的CFS或GooseFS等文件系统。

4.1 存储类型选择

  • CFS(文件存储):标准的NFS共享文件系统,适合大多数HPC场景。
  • CFS-TURBO:高性能版本,提供更高的IOPS和吞吐量。
  • GooseFS:数据加速器,适合对数据访问延迟要求极高的场景。

需要注意的是,创建的存储资源必须与待挂载的THPC集群位于同一VPC下。

4.2 集群创建时挂载存储

在调用CreateCluster接口时,可以通过StorageOption参数指定存储挂载配置。如果不指定挂载目录,THPC会自动在/opt目录下创建并挂载一个标准型CFS,用于存储调度器配置和集群依赖。

4.3 集群运行中挂载存储

对于已运行的集群,可以通过AddClusterStorageOption接口添加存储选项。添加后THPC会尝试对当前集群所有节点挂载存储资源,后续扩容的节点也会自动挂载。

API调用示例:

{
    "ClusterId": "hpc-rv7hahw2",
    "StorageOption": {
        "CFSOptions": [{
            "LocalPath": "/data",
            "RemotePath": "172.30.3.90:/",
            "Protocol": "NFS 4.0",
            "StorageType": "SD"
        }]
    }
}

参数说明:

  • LocalPath:集群节点上的本地挂载点,如果目录不存在THPC会自动创建。
  • RemotePath:CFS的远程路径,CFS支持子目录挂载。
  • Protocol:挂载协议,通常使用NFS 4.0。
  • StorageType:存储类型,SD表示标准型。

挂载完成后,可以登录节点执行 df -h 命令确认挂载成功。

5. 队列管理与作业调度

THPC集成了Slurm调度器,支持通过队列对作业进行逻辑分组管理。

5.1 队列管理

每个THPC集群最多可创建10个队列。添加队列的API示例:

tccli thpc AddQueue --ClusterId hpc-xxxxxxxx --QueueName gpu_queue

Slurm的默认队列名为 compute

5.2 提交作业

作业是通过调度系统分配资源并执行的计算任务。提交作业可以通过SubmitJob接口。

编写Slurm作业脚本 job.slurm

#!/bin/bash
#SBATCH --job-name=test_job
#SBATCH --output=%j.out
#SBATCH --error=%j.err
#SBATCH --ntasks=4
#SBATCH --cpus-per-task=2
#SBATCH --mem=8G
#SBATCH --time=01:00:00
#SBATCH --partition=compute

# 加载环境模块(如有)
# module load intel/oneapi

# 执行计算任务
mpirun -np 4 ./vasp_executable

通过sbatch命令提交作业:

sbatch job.slurm

常用作业管理命令:

  • squeue:查看作业队列状态
  • scancel <job_id>:取消作业
  • sacct:查看作业历史记录

5.3 通过API提交作业

SubmitJob接口的请求示例:

{
    "ClusterId": "hpc-cy4pnyp9",
    "Job": {
        "JobName": "test_job",
        "JobScript": "#!/bin/bash\necho 'Hello THPC'",
        "QueueName": "compute"
    }
}

6. 弹性伸缩配置

弹性伸缩是THPC最核心的能力之一,能够根据作业负载动态调整计算节点数量,在保证计算能力的同时节约成本。

6.1 启用弹性伸缩

需要在创建集群时将AutoScalingType设置为THPC_AS。目前仅Slurm集群支持THPC_AS模式。

创建集群时启用弹性伸缩的配置示例:

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

6.2 扩容匹配原则

THPC的扩容匹配遵循"资源最少优先"原则:

  • 优先匹配CPU资源:选择运行作业后剩余CPU资源最少的实例类型。
  • CPU相同时匹配内存:在CPU剩余资源相同的情况下,选择剩余内存最少的实例。

场景示例

  • 场景A:作业需要4核4GB,可选实例A(4核16GB)和实例B(8核8GB)。THPC会选择实例A,因为CPU优先级更高,4核匹配4核比8核匹配4核更紧凑。
  • 场景B:作业需要4核4GB,可选实例A(4核16GB)和实例B(4核8GB)。THPC会选择实例B,因为CPU相同的情况下,内存更紧凑。

6.3 多机型多可用区配置

为防止单一机型售罄导致扩容失败,THPC支持为同一队列配置多种机型和可用区。配置示例如下:

下标机型可用区vCPU内存(GB)
1SA2.2XLARGE16广州四区816
2SA2.2XLARGE16广州五区816
3SA2.2XLARGE16广州六区816
4SA3.2XLARGE16广州五区816
5SA3.2XLARGE16广州六区816

THPC会按照配置列表的下标由低到高依次尝试创建实例进行扩容。

6.4 设置弹性伸缩配置

通过SetAutoScalingConfiguration接口配置伸缩策略:

tccli thpc SetAutoScalingConfiguration \
    --ClusterId hpc-xxxxxxxx \
    --ExpansionNodeConfig '[
        {"QueueName":"compute","NodeType":"COMPUTE_NODE","Count":1,"InstanceType":"S5.LARGE8"}
    ]'

7. 使用限制与注意事项

在使用THPC过程中,需要注意以下限制:

7.1 节点限制

  • 管控节点:数量为1或2个。
  • 计算节点:最少0个,最多200个。
  • 数据盘:每个节点最多21块。
  • 计费类型:管控节点支持包年包月和按量计费;计算节点额外支持竞价实例。

7.2 调度器与镜像

  • 目前仅支持Slurm调度器。
  • 支持的镜像:CentOS 7.9(img-l8og963d)和CentOS 8.2(img-n7nyt2d7)。

7.3 集群账户管理

支持通过NIS(Network Information Service)管理集群账户信息。

7.4 计费说明

THPC平台服务本身完全免费。用户需要支付的费用是集群中云服务器实例的费用,包括计算节点和管控节点的CVM费用,以及CFS存储费用和网络流量费用。计费模式支持包年包月和按量计费。

8. 最佳实践建议

8.1 使用自定义镜像加速扩容

如果每次扩容都需要重新安装依赖软件,会显著增加节点启动时间。建议基于官方镜像预装好所有依赖软件后创建自定义镜像,在创建集群时传入自定义镜像ID。但需要注意,如果自定义镜像缺少THPC集群运行所需的依赖包,可能导致节点操作失败。

8.2 合理规划存储

/opt目录由THPC自动管理,用于存放调度器配置和集群依赖。用户数据建议放在单独挂载的/data或其他自定义目录,便于数据管理和备份。

8.3 弹性伸缩成本优化

对于非持续性的计算任务(如每天不定时提交作业),建议配置THPC_AS弹性伸缩模式,让系统根据作业负载自动扩容和缩容。结合竞价实例的使用,可以进一步降低计算成本。

8.4 监控与运维

THPC提供了DescribeClusterActivities接口用于查询集群活动历史记录,DescribeJobs接口用于查询作业任务,建议建立日常监控机制,及时发现问题。

9. 常见问题解答

Q1: THPC和THCC有什么区别?

THCC(高性能计算集群)是通过RDMA网络互联的裸金属集群,属于IaaS层产品,提供的是物理算力。THPC(高性能计算平台)是构建在IaaS之上的PaaS层资源管理服务,整合了调度器、集群管理等软件。可以理解为THCC提供"硬件",THPC提供"管理平台"。

Q2: THPC支持哪些调度器?

目前THPC主要支持Slurm调度器。单个集群中队列数量上限为10个。

Q3: 如何查看集群的创建进度?

可以通过DescribeClusters接口查询集群状态。集群状态包括PENDING(等待中)、INITING(初始化中)、RUNNING(运行中)、INIT_FAILED(创建失败)。

Q4: 弹性伸缩的扩容匹配逻辑是什么?

THPC优先匹配CPU资源,选择运行作业后剩余CPU最少的实例;CPU相同时再匹配内存资源。如果投递作业所需资源在配置的机型中没有满足的规格,则不会进行扩容。

Q5: THPC如何计费?

THPC平台服务本身免费。费用主要来自集群中的CVM实例(计算节点和管控节点)、CFS存储和网络流量。CVM支持包年包月和按量计费两种模式。

Q6: 创建集群后如何添加计算节点?

有两种方式:一是通过弹性伸缩自动扩容(推荐),设置AutoScalingType为THPC_AS后系统会根据作业负载自动增加节点;二是通过AddNodes接口手动添加节点。

相关文章

腾讯云服务器购买优惠!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腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

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

2026腾讯云代理商返佣政策全解析:五级代理体系与企业上云成本优化指南

2026腾讯云代理商返佣政策全解析:五级代理体系与企业上云成本优化指南

一、腾讯云五级代理体系:权益阶梯与合作价值1. 五级代理的核心权益差异腾讯云按规模、服务能力与合作深度,构建了从基础到顶级的五级代理体系,各级权益呈现显著阶梯差:•标准级代理:入门门槛最低,仅能提供基…

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

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

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