环境变量说明
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注入的训练环境变量
Master Pod对应svc的clusterIP。 |
||||
|
||||
REPLICA_TYPE |
Pod副本类型。 |
字符串,取值为Master、Scheduler、Chief或Worker |
- |
|
|
||||
暂不支持PS模式,设置固定值0。 关于MS_PSERVER和PS模式的详细说明请参见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设备失败。使用设备序号指定设备时,支持单个和范围指定且支持混用;使用芯片名称指定设备时,支持同时指定多个同类型的芯片名称。 |
|
- |
| ASCEND_ALLOW_LINK | 是否允许挂载的文件或目录中存在软链接,在Atlas 500 A2 智能小站、Atlas 200I A2 加速模块和Atlas 200I DK A2 开发者套件场景下必须指定该参数。 |
|
- |
| ASCEND_RUNTIME_OPTIONS | 对参数ASCEND_VISIBLE_DEVICES中指定的芯片ID作出限制:
|
|
- |
| 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=/job/code/alllogs/$MINDX_TASK_ID/elasticlogs/elastic-log$XDL_IP-$RANK 请将$XDL_IP替换成实际使用的节点IP。 请将$RANK替换成实际使用的节点RANK。 |
|||
|
|||
|
|||
|
TaskD环境变量说明
使用TaskD组件时可以配置的环境变量。如需了解其他来自源码的环境变量,请参见PyTorch相关资料。
表 5 TaskD环境变量说明
| 环境变量名称 | 功能 | 取值 | 说明 |
|---|---|---|---|
| TASKD_LOG_PATH | 指定TaskD组件运行日志的落盘路径。 | 字符串 | 如未指定使用默认的./taskd_log/taskd.log-worker-{RANK},即当前执行路径下的taskd_log目录。 {RANK}为当前训练进程的全局Rank号。 |
| TASKD_FILE_LOG_LEVEL | 指定需要记录到日志文件的日志等级。 | 字符串 | 取值为:
|
| TASKD_STD_LOG_LEVEL | 指定需要打印的日志等级。 | 字符串 | 取值为:
|
| TASKD_LOG_STDOUT | 指定日志是否需要打印。 | bool | 取值为True或False。不配置默认为True。 |
| ENABLE_RESTART_FAULT_PROCESS | TaskD组件开启进程级别原地恢复功能的开关。 | 字符串 | 取值为“on”或“其他值”。
|
| RESTART_FAULT_PROCESS_TYPE | TaskD通知MindIO重启故障进程的类型。 | 字符串 | 取值为“worker”或“pod”。
|
| TASKD_PROCESS_ENABLE | TaskD组件开启进程级别重调度、进程级在线恢复、进程级别原地恢复和弹性训练功能的开关。 | 字符串 | 取值为“on”或“off”。
|
| LOCAL_PROXY_ENABLE | 是否开启本地代理(安全加固需要)。 | 字符串 | 取值为“on”或“off”。
|
| HCCL_ASYNC_ERROR_HANDLING | 是否开启watchdog功能。 | 字符串 | 取值如下:
|
| 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中写入该环境变量。 |