活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 青云志云端助力计划 NEW 一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云
  • 出海产品促销专区 NEW 爆款云主机低至2折,高性价比,不限新老速来抢购!
  • 天翼云信创专区 NEW “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
模型推理服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V3.1
  • DeepSeek-R1-0528
  • DeepSeek-V3-0324
  • Qwen3-235B-A22B
  • Qwen3-32B
智算一体机
  • 智算一体机
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场进入AI Store创新解决方案公有云生态专区智云上海应用生态专区
建站工具
  • 新域名服务
  • SSL证书
  • 翼建站
企业办公
  • 安全邮箱
  • WPS 365 天翼云版
  • 天翼企业云盘(标准服务版)
灾备迁移
  • 云管家2.0
  • 翼备份(SaaS版)

定价

协助您快速了解云产品计费模式、价格详情,轻松预估上云成本
价格计算器
  • 动态测算产品价格
定价策略
  • 快速了解计费模式

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼信创云专区
  • 信创云专区
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
培训与认证
  • 天翼云学堂
  • 天翼云认证
开源社区
  • 魔乐社区
  • OpenTeleDB

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 服务保障
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家
我要反馈
  • 建议与反馈
  • 用户体验官
信息公告
  • 客户公告

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2026智能云生态大会
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      弹性高性能计算 E-HPC

      弹性高性能计算 E-HPC

      • 弹性高性能计算 E-HPC

      无数据

        • 产品动态
        • 产品介绍
        • 产品定义
        • 术语解释
        • 产品特性
        • 产品优势
        • 产品应用场景
        • 产品使用限制
        • 购买指南
        • 计费说明
        • 高性能计算平台
        • 概述
        • 入门指引
        • 创建集群
        • 登录Portal
        • 管理集群
        • 连接集群
        • 扩容集群
        • 配置自动伸缩
        • 管理共享存储
        • 软件管理
        • 删除集群
        • 提交作业
        • 命令行提交作业
        • Portal提交作业
        • ctbatch提交作业
        • 查看作业结果
        • 高性能计算集群
        • 入门指引
        • 创建集群
        • 管理集群
        • 扩容集群
        • 删除集群
        • 部署集群
        • 最佳实践
        • 使用HCC部署DeepSeeK-V4-Flash
        • HCC大模型精简版运维指南
        • 使用VASP软件做分子动力学模拟
        • 使用LAMMPS做分子动力学模拟
        • 使用OpenFOAM软件进行流体力学仿真计算
        • API参考
        • API使用说明
        • 常见问题
        • 计费类
        • 操作类
        • 管理类
        • 文档下载
        • 操作手册
        • 相关协议
        • 弹性高性能计算服务协议
          无相关产品

          本页目录

          帮助中心弹性高性能计算 E-HPC高性能计算平台提交作业ctbatch提交作业
          ctbatch提交作业
          更新时间 2026-04-28 16:39:14
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2026-04-28 16:39:14
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本文介绍了如何使用ctbatch工具提交作业。

          1.亲和性简介

          在 HPC(高性能计算)场景中,亲和性是指将计算任务与硬件资源(CPU/GPU 等)进行精准匹配调度的能力:

          • 同构亲和性:针对 Intel、鲲鹏、中科海光等同类 CPU 架构,实现任务与物理核 / 处理器插槽(Socket)的绑定。

          • 异构亲和性:针对 NVIDIA GPU(CUDA 架构)、中科海光(RocM 架构)等异构硬件,实现任务与单 GPU、多 GPU 的灵活绑定。

          2.ctbatch

          传统 HPC 调度需依赖调度器(如 Slurm)+ 编译器 + MPI 通信库的组合适配,且不同调度器(Slurm/PBS)、硬件架构的适配规则不统一,导致任务部署效率低、资源利用率差。
          ctbatch是天翼云HPC提交作业工具, 通过抽象化的 CLI 工具,统一不同调度器、硬件架构的亲和性调度逻辑。

          $ ctbatch [-h] [-q QUEUE_NAME] [-J JOB_NAME] [-N NODE_NUM] [-w NODE_LSIT]
          [-ppn TASKS_PER_NODE] [-c CPUS_PER_TASK] [-g GPUS_PER_NODE] [-t MAX_TIME]
          [--exclusive] [--mpi] [--gpu_bind] [--env] [--user_defined_module] [--no_run]
          [command]
          命名参数说明
          -q QUEUE_NAME, --queue QUEUE_NAME作业队列名, 必填
          -J, JOB_NAME, --job_name JOB_NAME作业名, 最长50字符
          -N NODE_NUM, --nodes NODE_NUM节点数, 正整数
          -w NODE_LSIT, --node_list NODE_LSIT节点列表(逗号分隔)
          -ppn TASKS_PER_NODE, --tasks_per_node TASKS_PER_NODE每节点任务数
          -c CPUS_PER_TASK, --cpus_per_task CPUS_PER_TASK每任务CPU核心数
          -g GPUS_PER_NODE, --gpus_per_node GPUS_PER_NODE每节点GPU数
          -t MAX_TIME, --max_time MAX_TIME最大运行时间
          --exclusive独占
          --mpi所用的mpi, OpenMPI, OpenMPI-cuda-aware
          --gpu_bind使用gpu亲和性, mpi和gpu卡映射分为11 1n n1
          --env自定义环境变量
          --user_defined_module自定义需加载的module
          --no_run生成作业脚本
          command执行的程序

          3.实践样例

          3.1普通作业

          ctbatch参数文件

          $ cat params.ctbatch
          queue=batch
          N=1
          ppn=1
          c=1

          ctbatch参数文件

          $ cat params.ctbatch
          queue=batch
          N=1
          ppn=1
          c=1

          ctbatch生成作业脚本

          $ ctbatch params.ctbatch -J test --exclusive -t 00:5:00 --no_run -- hostname

          最终slurm脚本

          $ cat run_script_20250813171711.sh.slurm
          #!/usr/bin/env bash
          
          #SBATCH --job-name=test
          #SBATCH --ntasks-per-node=1
          #SBATCH --cpus-per-task=1
          #SBATCH --nodes=1
          #SBATCH --partition=batch
          #SBATCH --exclusive
          #SBATCH --time=00:5:00
          
          hostname

          3.2GPU亲和&以太网

          ctbatch参数文件

          $ cat params.ctbatch
          queue=batch
          N=2
          ppn=8
          c=7
          g=8
          env=OMP_PROC_BIND=true;OMP_PLACES=cores

          ctbatch生成作业脚本

          $ ctbatch params.ctbatch -J test_affinity --exclusive -t 00:5:00 --mpi OpenMPI-cuda-aware --gpu_bind 11 --no_run -- test_app

          最终slurm脚本

          $ cat run_script_20250818101338.sh.slurm
          #!/usr/bin/env bash
          
          #SBATCH --job-name=test_affinity
          #SBATCH --ntasks-per-node=8
          #SBATCH --cpus-per-task=7
          #SBATCH --gpus-per-node=8
          #SBATCH --nodes=2
          #SBATCH --partition=batch
          #SBATCH --exclusive
          #SBATCH --time=00:5:00
          
          module load openmpi/5.0.8/gcc-8.5.0-cuda-12.8
          
          export OMP_PROC_BIND=true
          export OMP_PLACES=cores
          export SLURM_NTASKS_PER_NODE=${SLURM_NTASKS_PER_NODE:-1}
          export SLURM_CPUS_PER_TASK=${SLURM_CPUS_PER_TASK:-1}
          export OMPI_MCA_pml=ucx
          export OMPI_MCA_pml_ucx_tls=tcp
          export UCX_NET_DEVICES=bond0
          export SLURM_MPI_TYPE=pmix_v5
          export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
          
          srun --ntasks-per-node=$SLURM_NTASKS_PER_NODE --cpus-per-task=$SLURM_CPUS_PER_TASK --cpu-bind=cores --gpu-bind=single:1 -m plane=$SLURM_NTASKS_PER_NODE test_app

          3.2.1实测指令

          11,即1个task(线程)对应1个gpu,将-ppn与-g设置成一样的

          • 测试指令如下:

          ctbatch -q test -N 1 -ppn 2 -c 2 -g 2 --env "OMP_PROC_BIND=true;OMP_PLACES=cores" -J gpu_affinity --mpi OpenMPI-cuda-aware --gpu_bind 11 -- /home/affinity/bin_affinity_gcc_openmpi_cuda12_gpu
          • 测试结果:每1个rank(即task或线程)对应1张GPU卡

          rank    0 maps to 1 core [  0] on gpuqinhexingcompute0001 (91258)
                    thread   0 maps to 1 core [  0] on gpuqinhexingcompute0001 (91258)
                    thread   1 maps to 1 core [  1] on gpuqinhexingcompute0001 (91275)
          
                    GPU: 1 device(s) CUDA Version [Runtime 12040 / Driver 12040]
                    device 0: 0000:0E:00.0 (default mode)
          
          rank    1 maps to 1 core [  2] on gpuqinhexingcompute0001 (91259)
                    thread   0 maps to 1 core [  2] on gpuqinhexingcompute0001 (91259)
                    thread   1 maps to 1 core [  3] on gpuqinhexingcompute0001 (91274)
          
                    GPU: 1 device(s) CUDA Version [Runtime 12040 / Driver 12040]
                    device 0: 0000:0F:00.0 (default mode)

          1n,即1个task(线程)对应n个gpu,将-ppn设置为-g的因数

          • 测试指令如下:

          ctbatch -q test -N 1 -ppn 2 -c 2 -g 4 --env "OMP_PROC_BIND=true;OMP_PLACES=cores" -J gpu_affinity --mpi OpenMPI-cuda-aware --gpu_bind 1n -- /home/affinity/bin_affinity_gcc_openmpi_cuda12_gpu
          • 测试结果:每1个rank(即task或线程)对应2张GPU卡

          rank    0 maps to 1 core [  0] on gpuqinhexingcompute0001 (92566)
                    thread   0 maps to 1 core [  0] on gpuqinhexingcompute0001 (92566)
                    thread   1 maps to 1 core [  1] on gpuqinhexingcompute0001 (92598)
          
                    GPU: 2 device(s) CUDA Version [Runtime 12040 / Driver 12040]
                    device 0: 0000:0E:00.0 (default mode)
                    device 1: 0000:0F:00.0 (default mode)
          
          rank    1 maps to 1 core [  2] on gpuqinhexingcompute0001 (92567)
                    thread   0 maps to 1 core [  2] on gpuqinhexingcompute0001 (92567)
                    thread   1 maps to 1 core [  3] on gpuqinhexingcompute0001 (92599)
          
                    GPU: 2 device(s) CUDA Version [Runtime 12040 / Driver 12040]
                    device 0: 0000:1F:00.0 (default mode)
                    device 1: 0000:20:00.0 (default mode)

          n1,即n个task(线程)对应1个gpu,将-g设置为-ppn的因数

          • 测试指令如下:

          ctbatch -q test -N 1 -ppn 2 -c 2 -g 1 --env "OMP_PROC_BIND=true;OMP_PLACES=cores" -J gpu_affinity --mpi OpenMPI-cuda-aware --gpu_bind n1 -- /home/affinity/bin_affinity_gcc_openmpi_cuda12_gpu
          • 测试结果:每2个rank(即task或线程)对应1张GPU卡

          rank    0 maps to 1 core [  0] on gpuqinhexingcompute0001 (93051)
                    thread   0 maps to 1 core [  0] on gpuqinhexingcompute0001 (93051)
                    thread   1 maps to 1 core [  1] on gpuqinhexingcompute0001 (93065)
          
                    GPU: 1 device(s) CUDA Version [Runtime 12040 / Driver 12040]
                    device 0: 0000:0E:00.0 (default mode)
          
          rank    1 maps to 1 core [  2] on gpuqinhexingcompute0001 (93052)
                    thread   0 maps to 1 core [  2] on gpuqinhexingcompute0001 (93052)
                    thread   1 maps to 1 core [  3] on gpuqinhexingcompute0001 (93064)
          
                    GPU: 1 device(s) CUDA Version [Runtime 12040 / Driver 12040]
                    device 0: 0000:0E:00.0 (default mode)

          3.3 GPU亲和&IB

          ctbatch参数文件

          $ cat params.ctbatch
          queue=batch
          N=2
          ppn=8
          c=7
          g=8
          env=OMP_PROC_BIND=true;OMP_PLACES=cores
          exclusive
          gpu_bind=11
          mpi=OpenMPI-cuda-aware
          max_time=00:5:00

          ctbatch生成作业脚本

          $ ctbatch params.ctbatch -J test_affinity --no_run -- test_app

          最终slurm脚本

          $ cat run_script_20250813222459.sh.slurm
          #!/usr/bin/env bash
          
          #SBATCH --job-name=test_affinity
          #SBATCH --ntasks-per-node=8
          #SBATCH --cpus-per-task=7
          #SBATCH --gpus-per-node=8
          #SBATCH --nodes=2
          #SBATCH --partition=batch
          #SBATCH --exclusive
          #SBATCH --time=00:5:00
          
          module load openmpi/5.0.8/gcc-8.5.0-cuda-12.8
          
          export OMP_PROC_BIND=true
          export OMP_PLACES=cores
          export SLURM_NTASKS_PER_NODE=${SLURM_NTASKS_PER_NODE:-1}
          export SLURM_CPUS_PER_TASK=${SLURM_CPUS_PER_TASK:-1}
          export OMPI_MCA_pml=ucx
          export UCX_NET_DEVICES=mlx5_ib0:1,mlx5_ib1:1,mlx5_ib2:1,mlx5_ib3:1
          export SLURM_MPI_TYPE=pmix_v5
          export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
          
          srun --ntasks-per-node=$SLURM_NTASKS_PER_NODE --cpus-per-task=$SLURM_CPUS_PER_TASK --cpu-bind=cores --gpu-bind=single:1 -m plane=$SLURM_NTASKS_PER_NODE test_app

          3.4 cpu亲和

          NOTE: 现在只支持cores这一个选项

          cores,即n个task(线程)对应n个cpu,将-ppn与-c设置成其乘积不超过单节点总核数

          • 测试指令如下:

          ctbatch -q test -N 1 -ppn 3 -c 2 --env "OMP_PROC_BIND=true;OMP_PLACES=cores" -J cpu_affinity --mpi OpenMPI --cpu_bind cores -- /home/affinity_cpu/bin_gcc_openmpi_cpu_affinity
          • 测试结果:每1个rank(即task或线程)对应2个CPU核,共3个rank

          rank    0 maps to 1 core [  0] on gpuqinhexingcompute0001 (6718)
                    thread   0 maps to 1 core [  0] on gpuqinhexingcompute0001 (6718)
                    thread   1 maps to 1 core [  1] on gpuqinhexingcompute0001 (6758)
          
          rank    1 maps to 1 core [  2] on gpuqinhexingcompute0001 (6719)
                    thread   0 maps to 1 core [  2] on gpuqinhexingcompute0001 (6719)
                    thread   1 maps to 1 core [  3] on gpuqinhexingcompute0001 (6757)
          
          rank    2 maps to 1 core [  4] on gpuqinhexingcompute0001 (6720)
                    thread   0 maps to 1 core [  4] on gpuqinhexingcompute0001 (6720)
                    thread   1 maps to 1 core [  5] on gpuqinhexingcompute0001 (6756)

          附录1 亲和性拓扑示例

          mpi:gpu 1:1
          多个节点, 每个节点使用8MPI, 每个MPI使用7个OpenMP线程和1块GPU

          mpi:gpu 1:n
          多个节点, 每个节点使用4MPI, 每个MPI使用14个OpenMP线程和2块GPU

          mpi:gpu n:1
          多个节点, 每个节点使用56MPI, 每个MPI均为单线程, 每7个MPI公用1块GPU

          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  Portal提交作业
          下一篇 :  查看作业结果
          搜索 关闭
          ©2026 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2026天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明