Service Configuration
Receives and processes client registration requests, performing initialization preparations for subscribing to related service configurations.
rpc Register(ClientInfo) returns (Status) {}
| Parameter | Type (Protobuf Definition) | Description |
|---|---|---|
| ClientInfo | message ClientInfo{ string jobId = 1; string role = 2; } | ClientInfo.jobId: Job ID. ClientInfo.role: Client role. |
| Return Value | Type (Protobuf Definition) | Description |
|---|---|---|
| Status | message Status{ int32 code = 1; string info =2; } | Status.code: Return code.
Status.info: Return information. |
Receives a client's request to subscribe to the RankTable. The server assigns a message queue to each job and listens for pending messages in the queue. If messages are present, they are sent to the client via a gRPC stream.
rpc SubscribeRankTable(ClientInfo) returns (stream RankTableStream) {}
| Parameter | Type (Protobuf Definition) | Description |
|---|---|---|
| ClientInfo | message ClientInfo{ string jobId = 1; string role = 2; } | ClientInfo.jobId: Job ID. ClientInfo.role: Client role. |
| Return Value | Type (Protobuf Definition) | Description |
|---|---|---|
| stream | grpc stream |
|
| Return Value | Type (Protobuf Definition) | Description |
|---|---|---|
| RankTableStream | message RankTableStream{ string jobId = 1; string rankTable = 2; } | RankTableStream.jobId: Job ID. RankTableStream.rankTable: RankTable information. For detailed descriptions of each field, see Table 1. |
ClusterD generates global-ranktable in the RankTable field as the return message. Some fields in global-ranktable come from the hccl.json file. For details about the hccl.json file, see hccl.json File Description.
Example:
{ "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" } ] } ] }Example (Atlas A3 Training Series Products):
{ "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" } ] } ] } ] }
Table 1 global-ranktable description
| Field | Description |
|---|---|
| version | Version |
| status | Status |
| server_group_list | Server group list |
| group_id | Job group ID |
| server_count | Number of servers |
| server_list | Server list |
| server_id | AI Server identifier, globally unique |
| server_ip | Pod IP |
| device_id | NPU device ID |
| device_ip | NPU device IP |
| super_device_id | Unique identifier of the NPU within the Atlas A3 Training Series Products/SuperPoD |
| rank_id | Training rank ID corresponding to the NPU |
| device_logical_id | Logical ID of the NPU |
| super_pod_list | SuperPoD list |
| super_pod_id | Logical SuperPoD ID |