环境变量说明

MindCluster组件使用的环境变量

MindCluster组件使用的环境变量说明如表1所示。

表 1 环境变量说明

环境变量名称 来源 是否必选 取值 作用
POD_IP 部署组件的YAML中写入 当前容器所在Pod的Pod IP ClusterD、TaskD用于启动gRPC服务
POD_UID 部署组件的YAML中写入 当前容器所在Pod的PodUID 用于解析ranktable文件的server_id字段
ASCEND_DOCKER_RUNTIME 容器创建时Ascend Docker Runtime写入 "true" Ascend Device Plugin用于判断当前节点容器默认运行时是否是Ascend Docker Runtime
HOSTNAME K8s创建容器时写入 当前容器所在Pod的Pod名称 Ascend Device Plugin用于获取当前Pod名称
NODE_NAME 部署组件的YAML中写入 当前容器所在节点的节点名称 Ascend Device Plugin、NodeD、ClusterD用于获取当前节点名称
LD_LIBRARY_PATH Dockerfile中写入 文件路径 Ascend Device Plugin和NPU Exporter用于初始化DCMI
BATCH_BIND_NUM - 数字字符串 指定Volcano设置批量绑定Pod的数量
MULTI_SCHEDULER_ENABLE - "true"或者"false" 指定Volcano是否是多调度器场景
SCHEDULER_POD_NAME - 字符串 指定Volcano调度器Pod名称
SCHEDULER_NUM - 数字字符串 指定Volcano调度器数量
PANIC_ON_ERROR - "true"或者"false" 指定Volcano调度器发生错误时是否需要panic
KUBECONFIG - 文件路径 指定Volcano连接K8s api-server的kubeconfig路径
HOME K8s创建容器时写入 文件夹路径 指定Volcano获取当前用户home路径
DEBUG_SOCKET_DIR - socket文件路径 指定Volcano侦听的socket路径
HCCL_CONNECT_TIMEOUT 训练脚本中写入 HCCL建链的超时时间 表示建链超时时间
TTP_PORT 部署组件的YAML中写入 MindIO TTP用的通信端口 用于启动MindIO Controller
SSH_CLIENT SSH 服务器设置的环境变量,它包含有关客户端连接的信息 当前客户端连接的信息 安装Ascend Docker Runtime时,记录该信息到操作日志中
TASKD_LOG_PATH - 字符串 表示TaskD组件运行日志的落盘路径
MINDX_SERVER_IP 容器创建时由Ascend Operator写入 字符串 表示任务与ClusterD通信的IP地址,同时也是clusterd-grpc-svc的svc IP
MINDX_SERVER_DOMAIN 容器创建时由Ascend Operator写入 字符串 表示任务与ClusterD通信的域名,默认值为"clusterd-grpc-svc.mindx-dl.svc.cluster.local"
MINDX_TASK_ID 容器创建时Ascend Operator写入 MindIE推理任务场景下,取值为acjob任务中label字段下jobID字段的值 Elastic Agent/TaskD向ClusterD注册gRPC服务和TaskD profiling功能保存日志需要提供MINDX_TASK_ID信息
GROUP_BASE_DIR 任务启动脚本中写入 文件夹路径 表示TaskD组件的并行域信息导出路径
MINDIO_WAIT_MINDX_TIME 任务YAML中写入 数字字符串,取值范围为[1, 3600] 不开启进程级重调度,开启弹性训练时等待故障Pod调度的超时时间
RAS_NET_ROOT_PATH 用户配置 ClusterD和NodeD共享目录的根路径 在慢网络诊断场景下ClusterD和NodeD通过共享存储进行交互,详细请参见慢网络诊断
REPLICA_TYPE 容器创建时由Ascend Operator写入 Master、Scheduler、Chief或Worker Pod副本类型

Ascend Operator环境变量说明

Ascend Operator为不同AI框架的分布式训练任务(acjob)提供相应的环境变量,该环境变量的相关说明如下表所示。

表 2 Ascend Operator注入的训练环境变量

框架名称

环境变量名称

功能

取值

说明

PyTorch

MASTER_ADDR

与Master节点通信的IP地址

合法的IP地址,格式为字符串,要求为常规IPv4或IPv6格式

Master Pod对应svc的clusterIP。

MASTER_PORT

与Master节点通信的端口

支持配置为字符串、数字,取值范围为0~65520

Master Pod对应svc中名称为ascendjob-port的值,默认为2222。

WORLD_SIZE

任务使用的总NPU数

大于0的整数

任务使用的总卡数,例如64个NPU任务,则取值为64。

RANK

本节点Pod的Node Rank

大于或等于0的整数

Master为0,Worker从1开始逐一增加。

LOCAL_WORLD_SIZE

每个节点Pod使用的NPU数

大于或等于0的整数

例如Pod使用4个NPU,则配置为4。

LOCAL_RANK

每个节点Pod使用的NPU的逻辑ID列表

字符串

根据Pod使用NPU数量进行配置,从0开始。例如,Pod使用4个NPU,则配置为{0,1,2,3}。

PyTorch、MindSpore、TensorFlow

HostNetwork

表示当前任务YAML的hostNetwork字段的值。

  • true:使用HostIP创建Pod。
  • false:不使用HostIP创建Pod。

当集群规模较大(节点数量>1000时),推荐使用HostIP创建Pod。

MINDX_SERVER_IP

表示任务与ClusterD通信的IP地址,同时也是clusterd-grpc-svc的svc ip。

合法的IP地址,格式为字符串,要求为常规IPv4或IPv6格式。

-

HCCL_LOGIC_SUPERPOD_ID

相同ID的芯片间使用灵衢网络通信,不同ID的芯片间使用RoCE网络通信。

大于或等于0的整数

HCCL使用此环境变量用于动态组网,限制芯片间网络通信方式。

当前环境变量仅支持在以下条件下使用:

  • 硬件:Atlas 900 A3 SuperPoD 超节点
  • 软件:MindCluster 7.0.RC1及以上版本、CANN 8.0.0及以上版本。

MINDX_TASK_ID

Elastic Agent/TaskDClusterD注册gRPC服务需要提供MINDX_TASK_ID信息。

MindIE推理任务场景下,取值为acjob任务中label字段下jobID字段的值。

字符串

任务的UID。

APP_TYPE

取值为acjob任务中label字段下app字段的值。

字符串

-

REPLICA_TYPE

Pod副本类型。

字符串,取值为Master、Scheduler、Chief或Worker

-

MindSpore

NPU_POD

标记当前Pod是否挂载了芯片。

  • true:当前pod已挂载芯片。
  • false:当前pod未挂载芯片。

-

MS_SERVER_NUM

指定角色为MS_PSERVER的进程数量

0

暂不支持PS模式,设置固定值0。

关于MS_PSERVER和PS模式的详细说明请参见MindSpore相关文档。

MS_WORKER_NUM

任务使用的总NPU数

大于0的整数

任务使用的总NPU数,例如64个NPU任务,则取值为64。

MS_LOCAL_WORKER

每个节点Pod使用的NPU数

大于0的整数

例如Pod使用4个NPU,则配置为4。

MS_SCHED_HOST

指定Scheduler的IP地址

合法的IP地址,格式为字符串,要求为常规IPv4或IPv6格式

  • Scheduler Pod中设置为podIP
  • Worker Pod设置为Scheduler Pod对应svc的clusterIP。

MS_SCHED_PORT

与Scheduler通信的端口

1024~65535范围内的端口号。

Scheduler Pod对应svc中名称为ascendjob-port的值,默认取值为2222。

MS_ROLE

指定本进程角色

  • MS_SCHED:表示Scheduler进程,一个训练任务只启动一个Scheduler,负责组网,容器恢复等,不会执行训练代码
  • MS_WORKER:表示Worker进程,一般设置分布式训练进程为此角色。

Worker进程会向Scheduler进程注册从而完成组网。

MS_NODE_RANK

本节点Pod的Node Rank

大于或等于0的整数

Scheduler Pod设置为0。

  • 当Scheduler挂载芯片时,Worker Pod从1开始递增。
  • 当Scheduler不挂载芯片时,Worker Pod从0开始递增。

TensorFlow

CM_CHIEF_IP

与CHIEF通信的IP

合法的IP地址,格式为字符串,要求为常规IPv4或IPv6格式

  • chief Pod中设置为podIP。
  • Worker Pod设置为chief Pod对应svc的clusterIP。

CM_CHIEF_PORT

与CHIEF通信的端口

支持配置为字符串、数字,取值范围0~65520

Scheduler Pod对应svc中名称为ascendjob-port的值,默认取值为2222。

CM_CHIEF_DEVICE

用于指定CHIEF节点中统计Server端集群信息的Device逻辑ID

0

取值固定取值为0。

CM_WORKER_SIZE

任务使用的总NPU数

取值范围为0~32768

任务使用的总卡数,例如64个NPU任务,则取值为64。

CM_LOCAL_WORKER

每个Pod使用的NPU数

大于0的整数

例如Pod使用4个NPU,则配置为4。

CM_WORKER_IP

Pod的podIP

合法的IP地址,格式为字符串,要求为常规IPv4或IPv6格式

当前Pod的podIP。

CM_RANK

本节点Pod的Node Rank

大于或等于0的整数

  • chief设置为0
  • worker从1开始递增

PyTorch、MindSpore

PROCESS_RECOVER

进程级别重调度、进程级在线恢复及弹性训练总开关。

  • on:开启本功能。
  • off:关闭本功能。

进程级别重调度、进程级在线恢复、进程级原地恢复和弹性训练场景下注入该环境变量。

PyTorch

HIGH_AVAILABILITY

MindSpeed-LLM进程级恢复功能开关。

任务可用恢复策略。

  • retry:进程级在线恢复。
  • recover:进程级别重调度。
  • dump:保存临终遗言。
  • elastic-training:弹性训练。

PyTorch、MindSpore

ELASTIC_PROCESS_RECOVER_ENABLE

Elastic Agent侧进程级别重调度、进程级在线恢复、临终CKPT恢复功能开关。

  • 取值为1:开启本功能。
  • 取值为其他值:关闭本功能。关闭本功能时,MindIO侧相关功能需同时关闭。

进程级别重调度、进程级在线恢复、进程级原地恢复场景下注入该环境变量。

PyTorch、MindSpore

ENABLE_RESTART_FAULT_PROCESS

Elastic Agent/TaskD组件开启故障进程级原地恢复功能开关。

  • on:开启本功能。
  • 其他值:关闭本功能。
[!NOTE] 说明
  • PyTorch框架下,本功能由Elastic Agent/TaskD提供。
  • MindSpore框架下,本功能由TaskD提供。

MindSpore

MINDIO_FOR_MINDSPORE

MindIO启动MindSpore开关。

  • 取值为1:开启MindIO启动MindSpore开关。
  • 取值不为1:关闭MindIO启动MindSpore开关。

MindSpore

MS_ENABLE_TFT

MindSpore启动进程级恢复开关。

{TTP:1,UCE:1,ARF:1,HCCE:1,RSC:1}    # 字符串类型,分别开启临终遗言、片上内存故障的进程级在线恢复、进程级别重调度、网络故障的进程级在线恢复和Pod级别重调度
[!NOTE] 说明
上述字段的详细说明请参见MindSpore文档中“MS_ENABLE_TFT”环境变量。

Ascend Docker Runtime环境变量说明

Ascend Docker Runtime为容器注入相应的环境变量。

环境变量名称 功能 取值 说明
ASCEND_DOCKER_RUNTIME 标识当前环境是否安装了Ascend Docker Runtime插件。 True 当未安装Ascend Docker Runtime时不存在该环境变量。

Ascend Device Plugin环境变量说明

Ascend Device Plugin为容器注入相应的环境变量,该环境变量的相关说明请参见下表。

表 3 Ascend Device Plugin向容器中注入的环境变量

环境变量名称 功能 取值 说明
ASCEND_VISIBLE_DEVICES 如果任务需要使用NPU设备,必须使用ASCEND_VISIBLE_DEVICES指定被挂载至容器中的NPU设备,否则挂载NPU设备失败。使用设备序号指定设备时,支持单个和范围指定且支持混用;使用芯片名称指定设备时,支持同时指定多个同类型的芯片名称。
  • 挂载物理芯片(NPU)
    • ASCEND_VISIBLE_DEVICES=0表示将0号NPU设备(/dev/davinci0)挂载入容器中。
    • ASCEND_VISIBLE_DEVICES=1,3表示将1号和3号NPU设备挂载入容器中。
  • 挂载虚拟芯片(vNPU)
    • 静态虚拟化:和物理芯片使用方式相同,只需要把物理芯片ID换成虚拟芯片ID(vNPU ID)即可。
    • 动态虚拟化:ASCEND_VISIBLE_DEVICES=0表示从0号NPU设备中划分出一定数量的AICore。
-
ASCEND_ALLOW_LINK 是否允许挂载的文件或目录中存在软链接,在Atlas 500 A2 智能小站、Atlas 200I A2 加速模块和Atlas 200I DK A2 开发者套件场景下必须指定该参数。
  • ASCEND_ALLOW_LINK=True,表示在Atlas 500 A2 智能小站、Atlas 200I A2 加速模块和Atlas 200I DK A2 开发者套件场景下允许挂载带有软链接的驱动文件。
  • ASCEND_ALLOW_LINK=False或者不指定该参数,Atlas 500 A2 智能小站、Atlas 200I A2 加速模块和Atlas 200I DK A2 开发者套件将无法使用Ascend Docker Runtime。
-
ASCEND_RUNTIME_OPTIONS 对参数ASCEND_VISIBLE_DEVICES中指定的芯片ID作出限制:
  • NODRV:表示不挂载驱动相关目录。
  • VIRTUAL:表示挂载的是虚拟芯片。
  • NODRV,VIRTUAL:表示挂载的是虚拟芯片,并且不挂载驱动相关目录。
  • ASCEND_RUNTIME_OPTIONS=NODRV
  • ASCEND_RUNTIME_OPTIONS=VIRTUAL
  • ASCEND_RUNTIME_OPTIONS=NODRV,VIRTUAL
-
WORLD_SIZE 任务使用的总NPU数 大于或等于0的整数 仅在动态vNPU调度场景下写入
LOCAL_WORLD_SIZE 每个节点Pod使用的NPU数 大于或等于0的整数 仅在动态vNPU调度场景下写入
LOCAL_RANK 每个节点Pod使用的NPU的逻辑ID列表 字符串 仅在动态vNPU调度场景下写入。从0开始。例如,Pod使用4个NPU,则配置为{0,1,2,3}。
CM_WORKER_SIZE 任务使用的总NPU数 大于或等于0的整数 仅在动态vNPU调度场景下写入
CM_LOCAL_WORKER 每个节点Pod使用的NPU数 大于或等于0的整数 仅在动态vNPU调度场景下写入
MS_WORKER_NUM 任务使用的总NPU数 大于或等于0的整数 仅在动态vNPU调度场景下写入
MS_LOCAL_WORKER 每个节点Pod使用的NPU数 大于或等于0的整数 仅在动态vNPU调度场景下写入
PERF_DUMP_PATH 迭代时延和分组信息保存路径 字符串 仅在慢节点检测场景下写入
PERF_DUMP_CONFIG 迭代时延和分组信息启停开关 字符串 仅在慢节点检测场景下写入
KUBELET_PORT 指定当前节点kubelet默认端口号(若用户未自定义kubelet端口,则无需配置)。 0~65535的整数 若用户修改kubelet默认端口,需要设置该环境变量的值为自定义端口号。

若用户未修改kubelet默认端口,则忽略该环境变量。

HOST_IP 指定当前节点的物理IP。 合法的IP地址,格式为字符串,要求为常规IPv4或IPv6格式 固定配置项,初始YAML文件已提供。

Elastic Agent环境变量说明

Note

Elastic Agent组件已经日落,相关资料将于2026年12月30日的版本删除。

使用Elastic Agent组件时可以配置的环境变量。如需了解其他来自源码的环境变量,请参见PyTorch相关资料

表 4 Elastic Agent环境变量说明

环境变量名称

功能

取值

说明

ELASTIC_LOG_PATH

Elastic Agent组件运行日志的落盘路径。

字符串

配置时需区分该日志的节点名称。参考示例:

ELASTIC_LOG_PATH=/job/code/alllogs/$MINDX_TASK_ID/elasticlogs/elastic-log$XDL_IP-$RANK 
请将$XDL_IP替换成实际使用的节点IP。
请将$RANK替换成实际使用的节点RANK。

ELASTIC_PROCESS_RECOVER_ENABLE

Elastic Agent侧进程级别重调度、进程级在线恢复、临终CheckPoint恢复功能开关。

字符串

  • 取值为1:开启本功能。
  • 其他值:关闭本功能。

    关闭本功能时,MindIO侧相关功能需同时关闭。

ENABLE_RESTART_FAULT_PROCESS

Elastic Agent组件开启进程级别原地恢复功能的开关。

字符串

取值为“on”或“其他值”。

  • on:开启本功能
  • 其他值:关闭本功能

RESTART_FAULT_PROCESS_TYPE

Elastic Agent通知MindIO重启故障进程的类型。

字符串

取值为“worker”或“pod”。

  • worker:不退出Pod,只重启故障进程
  • pod:重启Pod

RANK_TABLE_FILE

RankTable文件路径

字符串

hccl.json文件的路径

PROCESS_RECOVER

进程级别重调度或进程级在线恢复开关

字符串

取值为“on”或“其他值”。

  • on:开启本功能
  • 其他值:关闭本功能

TaskD环境变量说明

使用TaskD组件时可以配置的环境变量。如需了解其他来自源码的环境变量,请参见PyTorch相关资料

表 5 TaskD环境变量说明

环境变量名称 功能 取值 说明
TASKD_LOG_PATH 指定TaskD组件运行日志的落盘路径。 字符串 如未指定使用默认的./taskd_log/taskd.log-worker-{RANK},即当前执行路径下的taskd_log目录。

{RANK}为当前训练进程的全局Rank号。

TASKD_FILE_LOG_LEVEL 指定需要记录到日志文件的日志等级。 字符串 取值为:
  • DEBUG:调试信息
  • INFO:一般信息(默认级别)
  • WARNING:警告信息
  • ERROR:错误信息
TASKD_STD_LOG_LEVEL 指定需要打印的日志等级。 字符串 取值为:
  • DEBUG:调试信息
  • INFO:一般信息(默认级别)
  • WARNING:警告信息
  • ERROR:错误信息
TASKD_LOG_STDOUT 指定日志是否需要打印。 bool 取值为True或False。不配置默认为True。
ENABLE_RESTART_FAULT_PROCESS TaskD组件开启进程级别原地恢复功能的开关。 字符串 取值为“on”或“其他值”。
  • on:开启本功能
  • 其他值:关闭本功能
RESTART_FAULT_PROCESS_TYPE TaskD通知MindIO重启故障进程的类型。 字符串 取值为“worker”或“pod”。
  • worker:不退出Pod,只重启故障进程
  • pod:重启Pod
TASKD_PROCESS_ENABLE TaskD组件开启进程级别重调度、进程级在线恢复、进程级别原地恢复和弹性训练功能的开关。 字符串 取值为“on”或“off”。
  • on:开启本功能
  • off:关闭本功能
LOCAL_PROXY_ENABLE 是否开启本地代理(安全加固需要)。 字符串 取值为“on”或“off”。
  • on:开启本功能
  • off:关闭本功能
默认值为“off”,通信安全加固场景需要设置为“on”。
HCCL_ASYNC_ERROR_HANDLING 是否开启watchdog功能。 字符串 取值如下:
  • 0:表示关闭故障检测和进程退出功能。
  • 1:表示开启故障检测和进程退出功能。
  • 2:表示仅开启故障检测功能。
默认值为1。
TASKD_PROCESS_INTERVAL 设置TaskD Manager主流程处理间隔。 字符串 取值范围为100~1000,单位为毫秒。
TASKD_REPORT_FAULT_TIMEOUT 设置TaskD Agent上报业务故障给TaskD Manager的超时时间。若超时后,故障仍然存在,则TaskD Agent退出。 字符串 取值范围为300~600,单位为秒。

NodeD环境变量说明

表 6 NodeD环境变量说明

环境变量名称 功能 取值 说明
XDL_IP 用于获取Pod所在host的IP地址,慢节点使用,用于记录、匹配慢节点信息。 合法的IP地址,格式为字符串,要求为常规IPv4或IPv6格式。 部署NodeD组件的YAML中写入该环境变量。