通用环境变量列表
更新时间:2026-10-21
提交分布式训练任务时,百舸平台会自动注入多个通用环境变量,便于您在代码中直接使用。
本文将为您介绍百舸平台默认提供的环境变量列表信息。
公共环境变量
高性能网络环境变量
高性能网络环境变量,详见 平台预置NCCL环境变量。
任务通用环境变量
| 环境变量名 | 说明 |
|---|---|
AIHC_JOB_NAME |
任务的名称。 |
AIHC_TENSORBOARD_LOG_PATH |
Tensorboard 日志路径(仅开启了 Tensorboard 的任务会默认注入)。 |
PyTorch 环境变量
在 PyTorch 分布式训练框架中,Master 和 Worker 扮演不同的角色并需要相互建立连接以进行通信。百舸平台为 PyTorch 训练任务默认注入通用环境变量,用于关键信息的同步。
| 环境变量名 | 说明 |
|---|---|
MASTER_ADDR |
Master 节点地址,默认为 {任务名称}-master-0。 |
MASTER_PORT |
所有 Worker 进行通信协商的端口号,默认为 23456。 |
RANK |
节点的 Index。例如,若提交一个包含 1 个 Master 和 2 个 Worker 的作业,则 Master 上设置的 RANK 为 0,Worker-0 设置的 RANK 为 1,Worker-1 设置的 RANK 为 2。 |
WORLD_SIZE |
训练的节点总数。例如,若提交一个包含 1 个 Master 和 2 个 Worker 的作业,则 WORLD_SIZE 设置为 3。 |
NPROC_PER_NODE |
每个 Worker 节点的 GPU 卡数。例如,该 Worker 节点申请为 8 卡,则该 Worker 节点的 NPROC_PER_NODE 为 8。 |
(注:以上是平台注入的环境变量,只要选择 PyTorch 类型任务,就会自动注入,和框架无关。除此之外,不同框架可能还会自己注入一些环境变量,但和框架及启动方式有关,可以参考“训练框架内部注入的环境变量”一节。)
多机任务启动示例
torchrun 启动:
Bash
1torchrun \
2 --nproc_per_node "$NPROC_PER_NODE" \
3 --nnodes "$WORLD_SIZE" \
4 --node_rank "$RANK" \
5 --master_addr "$MASTER_ADDR" \
6 --master_port "$MASTER_PORT" \
7 your_training_script.py
accelerate launch 启动:
请确保训练镜像已安装 accelerate。num_processes 为训练总进程数,计算方式为 WORLD_SIZE * NPROC_PER_NODE。
Bash
1num_processes=$((WORLD_SIZE * NPROC_PER_NODE))
2echo "$num_processes"
3accelerate launch --same_network --multi_gpu --gpu_ids all \
4 --num_machines "$WORLD_SIZE" --num_processes "$num_processes" \
5 --machine_rank "$RANK" --main_process_ip "$MASTER_ADDR" \
6 --main_process_port "$MASTER_PORT" \
7 your_training_script.py
TensorFlow 环境变量
TensorFlow 分布式作业通过 TF_CONFIG 环境变量来构建分布式的网络拓扑信息。百舸为 TensorFlow 训练配置的通用环境变量如下:
| 环境变量名 | 说明 |
|---|---|
TF_CONFIG |
TensorFlow 分布式作业的集群拓扑与当前任务信息。 |
TF_CONFIG 示例:
JSON
1{
2 "cluster": {
3 "ps": ["tf-dist-mnist-xxxxxx-ps-0.default.svc:2222"],
4 "worker": ["tf-dist-mnist-xxxxxx-worker-0.default.svc:2222"]
5 },
6 "task": {
7 "type": "ps",
8 "index": 0
9 },
10 "environment": "cloud"
11}
常见训练框架内部注入的环境变量
| 环境变量名 | 说明 |
|---|---|
LOCAL_RANK |
进程在本机的局部索引号。由 PyTorch DDP 框架自动注入,需要以 torchrun 或 python -m torch.distributed.launch 方式启动才会注入。若未注入,请检查启动命令。 |
评价此篇文章
