业务配置接口
Register
接收处理客户端的注册请求,为订阅相关业务配置做初始化准备。
rpc Register(ClientInfo) returns (Status) {}
| 参数 | 类型(Protobuf定义) | 说明 |
|---|---|---|
| ClientInfo | message ClientInfo{ string jobId = 1; string role = 2; } |
ClientInfo.jobId:任务ID。 ClientInfo.role:客户端角色。 |
| 返回值 | 类型(Protobuf定义) | 说明 |
|---|---|---|
| Status | message Status{ int32 code = 1; string info =2; } |
Status.code:返回码。
Status.info:返回信息描述。 |
SubscribeRankTable
接收客户端订阅RankTable请求。服务端为每一个任务分配一个消息队列,并侦听消息队列是否存在待发送的消息,若存在则通过gRPC stream发送给客户端。
rpc SubscribeRankTable(ClientInfo) returns (stream RankTableStream) {}
| 参数 | 类型(Protobuf定义) | 说明 |
|---|---|---|
| ClientInfo | message ClientInfo{ string jobId = 1; string role = 2; } |
ClientInfo.jobId:任务ID。 ClientInfo.role:客户端角色。 |
| 返回值 | 类型(Protobuf定义) | 说明 |
|---|---|---|
| stream | grpc stream |
|
| 返回值 | 类型(Protobuf定义) | 说明 |
|---|---|---|
| RankTableStream | message RankTableStream{ string jobId = 1; string rankTable = 2; } |
RankTableStream.jobId:任务ID。 RankTableStream.rankTable:RankTable信息,各字段的详细说明如表1所示。 |
ClusterD会生成global-ranktable在RankTable字段作为返回消息。global-ranktable中部分字段来自于hccl.json文件,关于hccl.json文件的详细说明请参见hccl.json文件说明。
-
示例如下。
{ "version": "1.0", "status": "completed", "server_group_list": [ { "group_id": "2", "deploy_server": "0", "server_count": "1", "server_list": [ { "device": [ { "device_id": "x", "device_ip": "xx.xx.xx.xx", "device_logical_id": "x", "rank_id": "x" } ], "server_id": "xx.xx.xx.xx", "server_ip": "xx.xx.xx.xx" } ] } ] } -
Atlas A3 训练系列产品示例如下。
{ "version": "1.2", "status": "completed", "server_group_list": [ { "group_id": "2", "deploy_server": "1", "server_count": "1", "server_list": [ { "device": [ { "device_id": "0", "device_ip": "xx.xx.xx.xx", "super_device_id": "xxxxx", "device_logical_id": "0", "rank_id": "0" } ], "server_id": "xx.xx.xx.xx", "server_ip": "xx.xx.xx.xx" } ], "super_pod_list": [ { "super_pod_id": "0", "server_list": [ { "server_id": "xx.xx.xx.xx" } ] } ] } ] }
表 1 global-ranktable字段说明
| 字段 | 说明 |
|---|---|
| version | 版本 |
| status | 状态 |
| server_group_list | 服务组列表 |
| group_id | 任务组编号 |
| server_count | 服务器数量 |
| server_list | 服务器列表 |
| server_id | AI Server标识,全局唯一 |
| server_ip | Pod IP |
| device_id | NPU的设备ID |
| device_ip | NPU的设备IP |
| super_device_id | Atlas A3 训练系列产品超节点内NPU的唯一标识 |
| rank_id | NPU对应的训练rank ID |
| device_logical_id | NPU的逻辑ID |
| super_pod_list | 超节点列表 |
| super_pod_id | 逻辑超节点ID |