---
title: HCCL_NPU_SOCKET_PORT_RANGE
description: "当通信域的创建方式为“基于root节点信息创建”时，开发者可通过此环境变量配置HCCL在NPU侧使用的通信端口。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/hcclug/hcclenvref_07_0021.html
sourcePath: /source/zh/canncommercial/900/API/hcclug/hcclenvref_07_0021.html
indexId: 09c3c3ebe46f672c3ac83b577376b31c48682178cfa76abb0153e2c340eb530864
---
# HCCL_NPU_SOCKET_PORT_RANGE

#### 功能描述

当通信域的创建方式为“基于root节点信息创建”时，开发者可通过此环境变量配置HCCL在NPU侧使用的通信端口。

该环境变量支持配置为具体的端口、端口范围或者字符串“auto”。- 若指定具体的端口号或端口范围，规划的端口数量建议不小于单个NPU上的HCCL进程数，端口号取值范围为[1,65535]，且需要确保指定的端口未被其他进程占用。需要注意，[1,1023]为系统保留端口，应避免使用这些端口。
  具体端口号与端口范围可以组合使用，中间使用英文“,”分隔，但逗号之间的端口号/端口范围不能存在范围交叉，配置方式可参见配置示例。

- 若指定为字符串“auto”，代表HCCL使用的NPU端口号由操作系统动态分配。
- 若不配置该环境变量，HCCL在NPU侧使用的通信端口默认为16666。


#### 配置示例

```
//方式一：配置为端口范围。
export HCCL_NPU_SOCKET_PORT_RANGE="61000-61050"
//方式二：具体的端口号与端口范围配合使用，使用英文“,”分隔。
export HCCL_NPU_SOCKET_PORT_RANGE="61000,61050-61100,61200-61210"
//方式三：指定具体的端口号，使用英文“,”分隔。
export HCCL_NPU_SOCKET_PORT_RANGE="57000,57005,57007,58008,58100,58105,58107,58108"
//方式四：操作系统动态分配端口号
export HCCL_NPU_SOCKET_PORT_RANGE="auto"
```


#### 使用约束

- 在多卡场景下，若需要配置该环境变量，则同一通信域内的所有卡都必须进行配置。
- 若业务为单卡多进程场景（即多个业务进程同时共用一个NPU），建议配置此环境变量，否则业务可能会因为端口冲突运行失败。但需要注意，多进程会对资源开销、通信性能产生一定的影响。
- 针对Atlas A2 训练系列产品 / Atlas A2 推理系列产品，若网络中存在MC²通算融合算子（计算和通信融合的算子，例如AllGatherMatmul、MatmulReduceScatter、AlltoAllAllGatherBatchMatMul等），不支持配置此环境变量。


#### 支持的型号

Atlas 350 加速卡

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

Atlas A2 训练系列产品 / Atlas A2 推理系列产品 （针对 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 ，仅支持Atlas 800T A2 训练服务器、Atlas 900 A2 PoD 集群基础单元、Atlas 200T A2 Box16 异构子框。）
