---
title: create_group
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/hcclug/hcclpython_07_0003.html
sourcePath: /source/zh/canncommercial/900/API/hcclug/hcclpython_07_0003.html
indexId: e71b6ec972c5fda8b5a6183e7a67d54ac5483c660cca50f5a3a2cfcc92ec468e64
---
# create_group

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | ☓ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |


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

针对 Atlas 推理系列产品 ，仅支持Atlas 300I Duo 推理卡。


#### 功能说明

创建集合通信用户自定义group。

如果开发者不调用此接口创建用户自定义group，则默认将所有参与集群训练的设备创建为全局的hccl_world_group。

group为参与集合通信的进程组，其中：- hccl_world_group：默认的全局group，包含所有参与集合通信的rank，由HCCL自动创建。
- 自定义group：hccl_world_group包含的进程组的子集。


#### 函数原型

```
def create_group(group, rank_num, rank_ids)
```


#### 参数说明

| 参数名 | 输入/输出 | 描述 |
| --- | --- | --- |
| group | 输入 | String类型，最大长度为128字节，含结束符。 group名称，集合通信group的标识，不能为默认全局group名字“hccl\_world\_group”，如果用户传入的group名字是“hccl\_world\_group”，会创建失败。 |
| rank\_num | 输入 | int类型。 组成该group的rank数量。 最大值为32768。 |
| rank\_ids | 输入 | list类型。 组成该group的world\_rank\_id列表。 在不同单板类型上，有不同的限制。 针对 Atlas 训练系列产品 ： 对于Server单机场景，rank\_ids需满足如下条件： rank数量必须为1/2/4/8，0\-3卡与4\-7卡各为一个组网，rank数量为2/4时要求选取的AI处理器同属一个cluster。 对于Server集群场景，rank\_ids满足如下条件： 各Server要选取相同数量的rank（且数量要求为1/2/4/8）。 各Server选取rank数量为2/4时要求选取的AI处理器同属一个cluster（即rank id按8取模余数都小于4或都大于等于4）。 举例： 假设对三台Server创建group，三台Server的rank id分别为： {0,1,2,3,4,5,6,7} {8,9,10,11,12,13,14,15} {16,17,18,19,20,21,22,23} 则满足要求的rank\_ids列表可以是： rank\_ids=[1,9,17] rank\_ids=[1,2,9,10,17,18] rank\_ids=[4,5,6,7,12,13,14,15,20,21,22,23] 针对 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 ： 对于Server单机场景，rank\_ids无限制条件。 对于Server集群场景，rank\_ids需满足如下条件： 建议各Server要选取相同数量的rank（数量大小无要求），且各Server选取的rank对应位置要相等（即rank id按8取模相等）。若各Server选取的rank数量不同，会造成性能劣化。 举例： 假设对三台Server创建group，三台Server的rank id分别为： {0,1,2,3,4,5,6,7} {8,9,10,11,12,13,14,15} {16,17,18,19,20,21,22,23} 则满足要求的rank\_ids列表可以是： rank\_ids=[1,9,17] rank\_ids=[1,2,9,10,17,18] rank\_ids=[4,5,6,7,12,13,14,15,20,21,22,23] 针对 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 ：建议每个超节点中的Server数量一致，每个Server中的rank数量一致，若不一致，会造成性能劣化。 针对Atlas 300I Duo 推理卡：仅支持Server单机场景，rank\_ids无限制条件。 补充说明： 建议rank\_ids按照Device物理连接顺序进行排序，即将物理连接上较近的device编排在一起。例如，若device\_ip按照物理连接从小到大设置，则rank\_ids也建议按照从小到大的顺序设置。 |


#### 返回值

无。


#### 约束说明

- 必须在集合通信初始化完成之后调用。
- 调用该接口的rank必须在当前接口入参group定义的范围内，不在此范围内的rank调用该接口会失败。


#### 调用示例

```
from hccl.manage.api import create_group
create_group("myGroup", 4, [0, 1, 2, 3])
```
