HcclRankGraphGetRanksByLayer
产品支持情况
|
产品 |
是否支持 |
|---|---|
|
|
√ |
|
|
√ |
|
|
☓ |
|
|
☓ |
|
|
☓ |
针对
功能说明
给定通信域和拓扑层级编号,返回该层级下本rank所在拓扑实例的所有rank编号列表以及rank数量。

- Layer 0中包含两个拓扑实例,为方便理解,定义拓扑实例ID分别为0和1。
- Layer1中包含1个拓扑实例。
假设在rank 0上调用此接口,如果指定layer层级为0,则此接口返回的rank编号列表为[0,1,2],rank数量为3;如果指定layer层级为1,则此接口返回的rank编号列表为[0,1,2,3,4,5],rank数量为6。
函数原型
1
|
HcclResult HcclRankGraphGetRanksByLayer(HcclComm comm, uint32_t netLayer, uint32_t **ranks, uint32_t *rankNum) |
参数说明
|
参数名 |
输入/输出 |
描述 |
||
|---|---|---|---|---|
|
comm |
输入 |
通信域。 HcclComm类型的定义如下:
|
||
|
netLayer |
输入 |
拓扑层级编号。 |
||
|
ranks |
输出 |
rank编号列表。 |
||
|
rankNum |
输出 |
rank数量。 |
返回值
HcclResult:接口成功返回HCCL_SUCCESS,其他失败。
约束说明
无
调用示例
以功能说明的拓扑模型为例。
对于rank0:
1 2 3 4 5 6 7 |
HcclComm commTp; vector<uint32_t> ranks; uint32_t rankNum; HcclRankGraphGetRanksByLayer(commTp, netLayer=0, &ranks, &rankNum); // 对于0级拓扑,ranks=[0,1,2], rankNum=3 HcclRankGraphGetRanksByLayer(commTp, netLayer=1, &ranks, &rankNum); // 对于1级拓扑,ranks=[0,1,2,3,4,5], rankNum=6 |
对于rank3:
1 2 3 4 5 6 7 |
HcclComm commTp; vector<uint32_t> ranks; uint32_t rankNum; HcclRankGraphGetRanksByLayer(commTp, netLayer=0, &ranks, &rankNum); // 对于0级拓扑,ranks=[3,4,5], rankNum=3 HcclRankGraphGetRanksByLayer(commTp, netLayer=1, &ranks, &rankNum); // 对于1级拓扑,ranks=[0,1,2,3,4,5], rankNum=6 |