HcclCreateSubCommConfig
产品支持情况
| 
          产品  | 
        
          是否支持  | 
       
|---|---|
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          x  | 
       
| 
          | 
        
          x  | 
       
| 
          | 
        
          x  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          x  | 
       
功能说明
基于既有的全局通信域,切分具有特定配置的子通信域。
该子通信域创建方式无需进行socket建链与rank信息交换,可应用于业务故障下的快速通信域创建。
函数原型
          1
           | 
         
          HcclResult HcclCreateSubCommConfig(HcclComm *comm, uint32_t rankNum, uint32_t *rankIds, uint64_t subCommId, uint32_t subCommRankId, HcclCommConfig *config, HcclComm *subComm)  | 
        
参数说明
| 
          参数名  | 
        
          输入/输出  | 
        
          描述  | 
       
|---|---|---|
| 
          comm  | 
        
          输入  | 
        
          被切分的全局通信域。 HcclComm类型的定义可参见HcclComm。  | 
       
| 
          rankNum  | 
        
          输入  | 
        
          需要切分的子通信域中的rank数量。  | 
       
| 
          rankIds  | 
        
          输入  | 
        
          子通信域中rank在全局通信域中的rank id组成的数组。 需要注意:该数组应当是有序的,数组中每个rank的下标将映射为其在子通信域的rank id。  | 
       
| 
          subCommId  | 
        
          输入  | 
        
          当前子通信域标识。 
  | 
       
| 
          subCommRankId  | 
        
          输入  | 
        
          本rank在子通信域中的rank id。 请配置为当前rank在rankIds数组中的下标索引。  | 
       
| 
          config  | 
        
          输入  | 
        
          通信域配置项,包括buffer大小、确定性计算开关、通信域名称、通信算法编排展开位置等信息,配置参数需确保在合法值域内,关于HcclCommConfig中的详细参数含义及优先级可参见HcclCommConfig的定义。 需要注意:传入的config必须先调用HcclCommConfigInit对其进行初始化。  | 
       
| 
          subComm  | 
        
          输出  | 
        
          将初始化后的子通信域以指针的信息回传给调用者。 HcclComm类型的定义可参见HcclComm。  | 
       
返回值
HcclResult:接口成功返回HCCL_SUCCESS,其他失败。
约束说明
- 属于同一子通信域的rank调用该接口时传入的rankNum、rankIds、subCommId、config均应相同。
 - 不需要创建子通信域的rank应当传入rankIds==nullptr和subCommId=0xFFFFFFFF,此场景不会对“subCommId”参数做校验。
 - 只支持从全局通信域切分子通信域,不支持通信域嵌套切分。
 
调用示例
           1 2 3 4 5 6 7 8 9  | 
          
           HcclComm globalHcclComm; HcclCommInitClusterInfo(rankTableFile, devId, &globalHcclComm); HcclCommConfig config; HcclCommConfigInit(&config); config.hcclBufferSize = 50; strcpy(config.hcclCommName, "comm_1"); HcclComm hcclComm; uint32_t rankIds[4] = {0, 1, 2, 3}; HCCLCHECK(HcclCreateSubCommConfig(&globalHcclComm, 4, rankIds, 1, devId, &config, &hcclComm));  | 
         
