管理训练容器环境变量
什么是环境变量
本章节展示了训练容器环境中预置的环境变量,方便用户查看,主要包括以下类型。
- 路径相关环境变量
- 分布式训练作业环境变量
- NCCL(Nvidia Collective multi-GPU Communication Library)环境变量
- OBS环境变量
- PIP源环境变量
- API网关地址环境变量
- 作业元信息环境变量
约束限制
为了避免新设置的环境变量与系统环境变量冲突,而引起作业运行异常或失败,请在定义自定义环境变量时,不要使用“MA_”开头的名称。
如何修改环境变量
用户可以在创建训练作业页面增加新的环境变量,也可以设置新的取值覆盖当前训练容器中预置的环境变量值。

为保证数据安全,请勿输入敏感信息,例如明文密码。
训练容器中预置的环境变量
训练容器中预置的环境变量如下面表格所示,包括表1、表2、表3、表4、表5、表6、表7。
此处的环境变量取值仅为示例,涉及不同规格、引擎、Region可能取值不一样,此处仅供参考。
变量名 | 说明 | 示例 | 默认值 |
|---|---|---|---|
PATH | 可执行文件路径,已包含常用的可执行文件路径。 | “PATH=/usr/local/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin” | 可执行文件路径,不固定 |
LD_LIBRARY_PATH | 动态链接库路径,已包含常用的动态库路径。 | “LD_LIBRARY_PATH=/usr/local/seccomponent/lib:/usr/local/cuda/lib64:/usr/local/cuda/compat:/root/miniconda3/lib:/usr/local/lib:/usr/local/nvidia/lib64” | 动态链接库路径,不固定 |
LIBRARY_PATH | 静态库路径,已包含常用的静态库路径。 | “LIBRARY_PATH=/usr/local/cuda/lib64/stubs” | 静态库路径,不固定 |
MA_HOME | 训练作业的主目录。 | “MA_HOME=/home/ma-user” | /home/ma-user |
MA_JOB_DIR | 训练算法文件夹所在的父目录。 | “MA_JOB_DIR=/home/ma-user/modelarts/user-job-dir” | /home/ma-user/modelarts/user-job-dir |
MA_MOUNT_PATH | ModelArts挂载至训练容器内的路径,用于临时存放训练算法、算法输入、算法输出、日志等文件。 | “MA_MOUNT_PATH=/home/ma-user/modelarts” | /home/ma-user/modelarts |
MA_LOG_DIR | 训练日志目录。 | “MA_LOG_DIR=/home/ma-user/modelarts/log” | /home/ma-user/modelarts/log |
MA_SCRIPT_INTERPRETER | 训练脚本解释器。 | “MA_SCRIPT_INTERPRETER=” | 未设置 |
变量名 | 说明 | 示例 | 默认值 |
|---|---|---|---|
MA_CURRENT_IP | 作业容器IP。 | “MA_CURRENT_IP=192.168.23.38” | 作业容器IP,不固定 |
MA_NUM_GPUS | 作业容器的加速卡数量。 | “MA_NUM_GPUS=8” | 0 |
MA_TASK_NAME | 作业容器的角色名,例如:
| “MA_TASK_NAME=worker” | worker |
MA_NUM_HOSTS | 实例数。系统自动从资源参数的“实例数”中读取。 | “MA_NUM_HOSTS=4” | 1 |
VC_TASK_INDEX | 当前容器索引,容器从0开始编号。单机训练的时候,该字段无意义。在多机作业中,用户可以根据这个值来确定当前容器运行的算法逻辑。 | “VC_TASK_INDEX=0” | 0 |
VC_WORKER_NUM | 训练作业使用的实例数量。 | “VC_WORKER_NUM=4” | 1 |
VC_WORKER_HOSTS | 多节点训练时,每个节点的域名地址,按顺序以英文逗号分隔,可以通过域名解析获取IP地址。 | “VC_WORKER_HOSTS=modelarts-job-a0978141-1712-4f9b-8a83-000000000000-worker-0.modelarts-job-a0978141-1712-4f9b-8a83-000000000000,modelarts-job-a0978141-1712-4f9b-8a83-000000000000-worker-1.ob-a0978141-1712-4f9b-8a83-000000000000,modelarts-job-a0978141-1712-4f9b-8a83-000000000000-worker-2.modelarts-job-a0978141-1712-4f9b-8a83-000000000000,ob-a0978141-1712-4f9b-8a83-000000000000-worker-3.modelarts-job-a0978141-1712-4f9b-8a83-000000000000” | 节点的域名地址,不固定 |
${MA_VJ_NAME}-${MA_TASK_NAME}-N.${MA_VJ_NAME} | 表示不同节点的通信域名,例如0号节点的通信域名为 “${MA_VJ_NAME}-${MA_TASK_NAME}-0.${MA_VJ_NAME}”。 N表示实例数。 警告: 此方法拼接的通信域名不适用于超节点资源池。 所有资源池(包含超节点资源池)均可直接通过VC_WORKER_HOSTS获取所有节点的通信域名。 | 例如,实例数为4时,此环境变量分别为 “${MA_VJ_NAME}-${MA_TASK_NAME}-0.${MA_VJ_NAME}”、 “${MA_VJ_NAME}-${MA_TASK_NAME}-1.${MA_VJ_NAME}”、 “${MA_VJ_NAME}-${MA_TASK_NAME}-2.${MA_VJ_NAME}”、 “${MA_VJ_NAME}-${MA_TASK_NAME}-3.${MA_VJ_NAME}”。 | 节点的通信域名, 不固定 |
变量名 | 说明 | 示例 | 默认值 |
|---|---|---|---|
NCCL_VERSION | NCCL版本。 | “NCCL_VERSION=2.7.8” | NCCL库版本,不固定 |
NCCL_DEBUG | NCCL日志等级。 | “NCCL_DEBUG=INFO” | INFO |
NCCL_IB_HCA | 指定NCCL使用的IB网卡。 | “NCCL_IB_HCA=^mlx5_bond_0” | IB网卡,不固定 |
NCCL_IB_TIMEOUT | InfiniBand传输超时时间。 | “NCCL_IB_TIMEOUT=18” | 18 |
NCCL_IB_RETRY_CNT | InfiniBand传输最大重试次数。 | “NCCL_IB_RETRY_CNT=15” | 15 |
NCCL_IB_GID_INDEX | InfiniBand在RoCE模式下使用的全局ID索引。 | “NCCL_IB_GID_INDEX=3” | 3 |
NCCL_IB_TC | InfiniBand的流量类型。 | “NCCL_IB_TC=128” | 128 |
NCCL_SOCKET_IFNAME | 指定NCCL使用的SOCKET网卡。 | “NCCL_SOCKET_IFNAME=bond0,eth0” | SOCKET网卡,不固定 |
NCCL_NET_PLUGIN | 指定NCCL使用的网络插件。 | “NCCL_NET_PLUGIN=none” | none |
变量名 | 说明 | 示例 | 默认值 |
|---|---|---|---|
MA_S3_ENDPOINT | OBS地址,确保应用程序能够正确地连接到指定的OBS。 | “MA_S3_ENDPOINT=https://obs.region.myhuaweicloud.com” | OBS地址,不固定 |
S3_VERIFY_SSL | 访问OBS是否使用SSL。如果设置为0,则不验证SSL证书;如果设置为1,则验证SSL证书。 | “S3_VERIFY_SSL=0” | 0 |
S3_USE_HTTPS | 访问OBS是否使用HTTPS。如果设置为1,则使用HTTPS;如果设置为0,则使用HTTP。 | “S3_USE_HTTPS=1” | 1 |
变量名 | 说明 | 示例 | 默认值 |
|---|---|---|---|
MA_PIP_HOST | PIP源域名。 | “MA_PIP_HOST=repo.example.com” | 华为内部PIP源域名 |
MA_PIP_URL | PIP源地址。 | “MA_PIP_URL=http://repo.example.com/repository/pypi/simple/” | 华为内部PIP源地址 |
MA_APIGW_ENDPOINT | ModelArts API网关地址。 | “MA_APIGW_ENDPOINT=https://modelarts.region.xxx.example.com” | ModelArts API网关地址,不固定 |
变量名 | 说明 | 示例 | 默认值 |
|---|---|---|---|
MA_CURRENT_INSTANCE_NAME | 多节点训练时,当前节点的名称。 | “MA_CURRENT_INSTANCE_NAME=modelarts-job-a0978141-1712-4f9b-8a83-000000000000-worker-1” | 当前节点的名称,不固定 |
变量名 | 说明 | 示例 | 默认值 |
|---|---|---|---|
MA_SKIP_IMAGE_DETECT | ModelArts预检是否开启。1和不设置表示开启预检,0表示关闭预检。 推荐开启预检,预检可提前发现节点故障、驱动故障。默认不设置(开启预检)。 | “1” | 未设置 |
变量名 | 说明 | 示例 | 默认值 |
|---|---|---|---|
MA_HANG_DETECT_TIME | 卡死检测时间。在这段时间内IO无变化则判定为任务卡死。 取值范围:10~720 单位:分钟 默认值:30 | “30” | 30 |



