Rank Table Configuration (Atlas training product)

For the Atlas training product, configure AI processors that participate in training in the rank table file. Currently, two configuration templates are supported. Template 1 is recommended for development from scratch, and template 2 is compatible with certain existing scenarios.

The rank table file is in JSON format. The comments in the JSON file provided in this section are for reference only. Delete the comments when you use it.

(Recommended) Template 1

The following is an example of configuring the rank table file when there are two AI servers and each AI server has two devices:
{
    "status":"completed",   // Rank table availability flag. The value completed indicates that the rank table is available.
    "version":"1.0",        // Rank table template version. Set this option to 1.0.
    "server_count":"2",     // Number of AI servers participating in training. In this example, there are two AI servers.
    "server_list":
    [
        {
            "server_id":"node_0",  // AI server ID, which is of the string type. Ensure that the ID is globally unique.
            "device":[             // List of devices on the AI server
                {
                    "device_id":"0",   // Physical ID of the processor
                    "device_ip":"192.168.1.8",   // NIC IP address of the processor
                    "rank_id":"0"                // Rank ID, which starts from 0 and must be globally unique.
                },
                {
                    "device_id":"1",
                    "device_ip":"192.168.1.9", 
                    "rank_id":"1"
                }
            ]
        },
        {
            "server_id":"node_1",
            "device":[
                {
                    "device_id":"0",
                    "device_ip":"192.168.2.8",
                    "rank_id":"2"
                },
                {
                    "device_id":"1",
                    "device_ip":"192.168.2.9", 
                    "rank_id":"3"
                }
            ]
        }
    ]
}
Table 1 Rank table file description

Level-1 Configuration Item

Level-2 Configuration Item

Level-3 Configuration Item

Description

status

     

Mandatory.

Rank table availability flag.

  • completed: The rank table is available.
  • initializing: The rank table is unavailable.

version

     

Mandatory.

Version of a rank table template.

Set the value to 1.0.

server_count

     

Mandatory.

Number of AI servers that participate in collective communication.

server_list

     

Mandatory.

List of AI servers that participate in collective communication.

  

server_id

  

Mandatory.

AI server ID. The value is a string with a maximum of 64 characters. Ensure that the value is globally unique.

Example: node_0

  

device

  

Mandatory.

List of devices on the AI server.

     

device_id

Mandatory.

Physical ID of the AI processor, that is, the serial number of the device on the AI server.

You can run the ls /dev/davinci* command to obtain the physical ID of the AI processor.

For example, /dev/davinci0 indicates that the physical ID of the AI processor is 0.

The value ranges from 0 to Actual number of devices – 1.

Note: device_id takes precedence over the environment variable ASCEND_DEVICE_ID.

     

device_ip

Mandatory.

IP address of the integrated NIC on the AI processor, which is globally unique and must be in the IPv4 or IPv6 format.

You can run the cat /etc/hccn.conf command on the current AI server to obtain the NIC IP address.

address_0=xx.xx.xx.xx

netmask_0=xx.xx.xx.xx

netdetect_0=xx.xx.xx.xx

address_xx shows the NIC IP address, in which xx is the physical ID of AI processor (device_id). The IP address following address_xx is the one you need to set for the device.

     

rank_id

Mandatory.

Unique ID of a rank. The value ranges from 0 to number of devices – 1.

  • You are advised to sort rank_id based on the physical connection sequence of devices, that is, arrange devices by physical connection proximity.

    For example, if device_ip is set in ascending order based on physical connections, you are advised to set rank_id in ascending order.

  • rank_id must be sequentially allocated within each AI server and cannot be interleaved across servers.

    Correct: The rank_id set is {0, 1, 2, 3} for server 1, and {4, 5, 6, 7} for server 2.

    Incorrect: The rank_id set is {0, 1, 2, 7} for server 1, and {3, 4, 5, 6} for server 2.

Template 2 (Compatible with Some Existing Scenarios and Not Recommended in the New Version)

{
    "status":"completed",  // Rank table availability flag. The value completed indicates that the rank table is available.
    "group_count":"1",     // Number of groups. The recommended value is 1.
    "group_list":          // List of groups
    [
        {
            "group_name":"hccl_world_group",  // Group name. The recommended value is hccl_world_group.
            "instance_count":"2",             // Number of instances, which can be considered as the number of containers in the container scenario.
            "device_count":"2",               // Number of all devices in the group
            "instance_list":[                 // Instance list
                {
                    "pod_name":"tf-bae41",     // Instance name, which is generally the container name.
                    "server_id":"node_0",      // AI server ID, which is of the string type. Ensure that the ID is globally unique.
                    "devices":[                // List of devices of the instance
                        {
                            "device_id":"0",           // Physical ID of the processor
                            "device_ip":"192.168.1.8"  // NIC IP address of the processor
                        }
                    ]
                },
                {
                    "pod_name":"tf-tbdf1",
                    "server_id":"node_1",
                    "devices":[
                        {
                            "device_id":"1",
                            "device_ip":"192.168.1.9"  
                        }
                    ]
                }
            ]
        }
    ]
}
Table 2 Rank table file description

Level-1 Configuration Item

Level-2 Configuration Item

Level-3 Configuration Item

Level-4 Configuration Item

Description

status

        

Mandatory.

Rank table availability flag.

  • completed: The rank table is available.
  • initializing: The rank table is unavailable.

group_count

        

Mandatory.

Number of groups that a user applies for. The recommended value is 1.

group_list

        

Mandatory.

Group list.

  

group_name

     

Optional.

Group name. When group_count is set to 1, you are advised to set this item to hccl_world_group or leave it empty. In the current version, a group named hccl_world_group is created regardless of the value of this item.

If multiple groups are created using this configuration file, the system automatically combines the groups into a group named hccl_world_group.

  

instance_count

     

Mandatory.

The value of this item must be the same as the number of pods in the instance list. In the container scenario, the value is the number of containers.

  

device_count

     

Mandatory.

Number of devices in a group.

  

instance_list

     

Mandatory.

Instance list.

     

pod_name

  

Mandatory.

User-defined pod name, which must be unique in instance_list.

     

server_id

  

Mandatory.

AI server ID. The value is a string with a maximum of 64 characters. Ensure that the value is globally unique.

Example: node_0

     

devices

  

Mandatory.

Device list.

        

device_id

Mandatory.

Physical ID of the AI processor, that is, the serial number of the device on the server.

You can run the ls /dev/davinci* command to obtain the physical ID of the AI processor.

For example, /dev/davinci0 indicates that the physical ID of the AI processor is 0.

The value ranges from 0 to Actual number of devices – 1.

Note: device_id takes precedence over the environment variable ASCEND_DEVICE_ID.

        

device_ip

Mandatory.

IP address of the integrated NIC on the AI processor, which is globally unique and must be in the IPv4 or IPv6 format.

You can run the cat /etc/hccn.conf command on the current server to obtain the NIC IP address.