Information processing device
By determining the execution order of unicast communications based on a connection graph, the information processing device optimizes data distribution in heterogeneous networks, addressing inefficiencies in existing collective communication algorithms.
Patent Information
- Application Number
- PCT/JP2024/031057
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-29
- Publication Date
- 2026-03-05
AI Technical Summary
Existing collective communication algorithms, such as binary trees, do not effectively shorten data distribution time when node and communication line performances are uneven, leading to inefficiencies in data distribution.
An information processing device determines the execution order of unicast communications based on a connection graph that reflects the physical relationships between nodes, optimizing the order to minimize data distribution time even in heterogeneous networks.
This approach reduces data distribution time by optimizing the execution order of unicast communications, effectively handling uneven node and communication line performances, and is applicable to various network configurations.
Smart Images

Figure JP2024031057_05032026_PF_FP_ABST
Abstract
Description
Information processing device
[0001] The present disclosure relates to an information processing device.
[0002] Conventionally, collective communication that distributes the same data to multiple nodes has been known. Liner, Chain, and Binary Tree are known as representative algorithms for collective communication (Non-Patent Document 1). In Non-Patent Document 1, these algorithms are extended according to the network connection configuration of the system, and the performance of multiple algorithms is evaluated.
[0003] "Evaluation of MPI Collective Communication Performance on the Supercomputer Fugaku," Information Processing Society of Japan Research Report, Vol. 2021-HPC-182 No. 15, December 7, 2021.
[0004] Incidentally, if the number of nodes is expressed as n (n is an integer satisfying 2≦n), and the performance of all nodes and the performance of the communication lines between all nodes are uniform, the time required to distribute data using a liner and chain is given by O(n). In contrast, the time required to distribute data using a binary tree is given by O(log 2 n) Therefore, if the performance of all nodes and the performance of the communication lines between all nodes are uniform, the time required to distribute data can be shortened by using a binary tree.
[0005] However, the performance of all nodes and the performance of the communication lines between all nodes are not necessarily uniform, so simply using a binary tree does not necessarily shorten the time it takes to distribute data.
[0006] In view of the above, an object of the present disclosure is to shorten the time required for distributing data.
[0007] An information processing device according to one embodiment of the present disclosure includes a control unit that determines the execution order of unicast communication for distributing data to each of a plurality of nodes based on a connection graph that shows the physical connection relationships between a plurality of nodes and to which communication times between the plurality of nodes are associated.
[0008] According to an embodiment of the present disclosure, the time required for distributing data can be reduced.
[0009] 1 is a block diagram showing a schematic configuration of a communication network according to a first embodiment of the present disclosure; FIG. 2 is a flowchart showing an example of an operation of a communication device according to a first embodiment of the present disclosure; FIG. 3 is a diagram showing an example of a correspondence relationship between a plurality of nodes; FIG. 4 is a diagram showing an example of a correspondence table of communication times; FIG. 5 is a diagram showing an example of a connection graph; FIG. 6 is a timing chart showing an example of unicast communication according to the first embodiment of the present disclosure; FIG. 7 is a timing chart showing unicast communication according to a comparative example; FIG. 8 is a diagram showing an example of a configuration of a plurality of nodes; FIG. 9 is a flowchart showing an example of an operation of a communication device according to a third embodiment of the present disclosure; FIG. 10 is a timing chart showing an example of unicast communication according to the third embodiment of the present disclosure; FIG. 11 is a timing chart showing unicast communication according to a comparative example.
[0010] First, an overview of the collective communication of the present disclosure will be described. As described above, if the performance of all nodes and the performance of the communication lines between all nodes are uniform, the time required for data distribution can be shortened by simply using a binary tree. However, the performance of all nodes and the performance of the communication lines between all nodes are not necessarily uniform. Therefore, simply using a binary tree does not necessarily shorten the time required for data distribution.
[0011] For example, consider the configuration shown in Fig. 11. In Fig. 11, nodes 31, 32, 33, and 34 are connected by communication lines. The communication lines include a transmission path indicated by a solid line and a switch SW3. The communication speed of the transmission path indicated by a thick line is faster than the communication speed of the transmission path indicated by a thin line. The switch SW3 is a Layer 2 switch.
[0012] Here, the time T required for communication is given by equation (1): T = L + M / B equation (1) In equation (1), time L is propagation time. Data capacity M is the amount of data transmitted and received between nodes. Bandwidth B is the bandwidth of the communication line between nodes.
[0013] The first term of equation (1) is negligibly small except when transmitting small data over long distances. Therefore, the second term of equation (1), i.e., M / B, becomes dominant during time T. Therefore, when data capacity M is constant, time T is affected by bandwidth B. Here, the communication speed between node 31 and switch SW3 and the communication speed between node 32 and switch SW3 are 100 Gbps. Furthermore, the communication speed between node 33 and switch SW3 and the communication speed between node 34 and switch SW3 are 25 Gbps. In this case, the transmission path between node 31 and node 32 includes only a 100 Gbps transmission path. In contrast, the transmission paths between the other nodes include a 25 Gbps transmission path. As a result, the time T required for communication between node 31 and node 32 is shorter than the time required for communication between other nodes. For example, the time T required for communication between node 31 and node 32 is about one-fourth of the time T required for communication between node 33 and node 34 .
[0014] In Fig. 11, consider distributing the same data by applying a binary tree including a first communication phase and a second communication phase. The first communication phase is the first communication executed. The second communication phase is the second communication executed. In the first communication phase in Fig. 11, data is transmitted from node 31 to node 33. In the second communication phase in Fig. 11, data is transmitted from node 31 to node 32 and data is transmitted from node 33 to node 34 simultaneously and in parallel. A timing chart for this is shown in Fig. 12.
[0015] Now, consider distributing the same data by applying the binary tree shown in Fig. 8 to a communication network having the same configuration as the communication network shown in Fig. 11. The binary tree shown in Fig. 8 includes a first communication phase and a second communication phase. In the first communication phase in Fig. 8, data is transmitted from node 31 to node 32. In the second communication phase in Fig. 8, data is transmitted from node 31 to node 33, and data is transmitted from node 32 to node 34, simultaneously and in parallel. A timing chart for this is shown in Fig. 10.
[0016] 12 and the timing chart shown in Fig. 10, it can be seen that even if the configuration of the communication network is the same, the time required for data distribution can be shortened by distributing the same data in the execution order realized by the timing chart shown in Fig. 10. In other words, if the performance of the nodes and the performance of the communication lines between the nodes are uneven, simply using a binary tree does not necessarily shorten the time required for data distribution.
[0017] Here, multicast communication, which is a type of collective communication that distributes the same data to multiple nodes, can be realized as a combination of multiple unicast communications. In other words, multicast communication expressed as a binary tree can be realized as a combination of multiple unicast communications. Furthermore, the difference between the multicast communication realized by the timing chart shown in FIG. 10 and the multicast communication realized by the timing chart shown in FIG. 12 is the execution order in which the unicast communications are performed. In other words, even if the performance of the nodes and the performance of the communication lines between the nodes are uneven, the time required to distribute data in collective communication can be shortened by appropriately setting the execution order of the unicast communications.
[0018] Therefore, the information processing device of the present disclosure determines the execution order of multiple unicast communications in collective communication based on a connection graph (described later) that shows the physical connection relationships between multiple nodes. With this configuration, as described later, it is possible to shorten the time required for data distribution even if the performance of the nodes and the performance of the communication lines connecting the nodes are uneven.
[0019] Hereinafter, embodiments according to the present disclosure will be described with reference to the drawings. In the following, it is assumed that the information processing device according to the present disclosure is a communication device 10 as shown in FIG. However, the information processing device according to the present disclosure is not limited to the communication device 10.
[0020] 1, a communication network 1 according to this embodiment includes a plurality of communication devices 10. The plurality of communication devices 10 are connected via a communication line 2 so as to be able to communicate with each other.
[0021] The communication line 2 may be configured to include a variety of elements as long as it connects multiple communication devices 10 so that they can communicate with each other. The communication line 2 may be configured to include, for example, a line of a wide area communication network, a wired LAN, a wireless LAN, or a combination of at least two of these. The communication line 2 may be configured to include at least one of a layer 2 switch, a router, and buffering. However, the communication line 2 is not limited to these and may be configured to include any element.
[0022] The performance of the multiple elements included in the communication line 2 may be the same or different. For example, the transmission distances of the multiple transmission paths included in the communication line 2 or the available bandwidths of the multiple transmission paths may be the same or different.
[0023] The communication device 10 is an information processing device. The communication device 10 is a node in the communication network 1. Hereinafter, the communication device 10 is also referred to as a "node." The communication device 10 may be any device that is capable of communication. The performance of each of the multiple communication devices 10, such as communication performance or computing performance, may be the same or different.
[0024] The communication device 10 includes a communication unit 11 , a storage unit 12 , and a control unit 13 .
[0025] The communication unit 11 is configured to include at least one communication module connectable to the communication line 2. The communication module is, for example, a communication module compatible with standards such as a wired LAN (Local Area Network) or a wireless LAN. When the communication line 2 includes a line of a wide area communication network, the communication unit 11 is connected to the wide area communication network via the wired LAN or wireless LAN by the communication module.
[0026] The storage unit 12 includes at least one semiconductor memory, at least one magnetic memory, at least one optical memory, or a combination of at least two of these. The storage unit 12 may function as a main storage device, an auxiliary storage device, or a cache memory. The storage unit 12 stores data used in the operation of the communication device 10 and data obtained by the operation of the communication device 10. The storage unit 12 may also store a program executed by the control unit 13.
[0027] The storage unit 12 stores, for example, destination information and information on communication times between multiple nodes. The destination information is destination information for multiple communication devices 10 to which data is distributed in collective communication. The communication time between nodes is the time required for data communication between a sending node and a receiving node on a communication line 2 connecting two nodes, i.e., two communication devices 10. For example, the storage unit 12 stores communication times such as those shown in FIG. 4, which will be described later.
[0028] The control unit 13 includes at least one processor, at least one programmable circuit, at least one dedicated circuit, or any combination thereof. The processor is a general-purpose processor such as a central processing unit (CPU), a graphics processing unit (GPU), or a digital signal processor (DSP), or a dedicated processor specialized for a specific process. The programmable circuit is, for example, a field-programmable gate array (FPGA). The dedicated circuit is, for example, an application-specific integrated circuit (ASIC). The control unit 13 controls each unit of the communication device 10 and executes processes related to the operation of the communication device 10.
[0029] The control unit 13 determines the execution order of collective communication, i.e., unicast communication for distributing the same data to a plurality of nodes, based on the communication time information stored in the storage unit 12. This process will be described later with reference to FIG.
[0030] FIG. 2 is a flowchart showing an example of the operation of the communication device 10 according to the first embodiment of the present disclosure.
[0031] In the process of step S1, the control unit 13 acquires communication time between multiple nodes. The control unit 13 may acquire, as the communication time, the time required for one-way communication from when the transmitting node transmits data until when the receiving node receives the data. Alternatively, the control unit 13 may acquire, as the communication time, the round-trip time from when the transmitting node transmits data until a response from the receiving node is returned to the transmitting node. Furthermore, if the communication time varies depending on the size of data to be transmitted and received, the control unit 13 may acquire the communication time for each different data size.
[0032] As will be explained below, the communication times between multiple nodes are not necessarily the same.
[0033] For example, if the available bandwidth of a certain communication line 2 is limited, when transmitting a large amount of data via that communication line 2, the time required to transmit that large amount of data will be longer. Therefore, the communication time between the communication devices 10, i.e., nodes, connected by that communication line 2 will also be longer than other communication devices. Furthermore, for example, a certain communication device 10 may be located in a location geographically distant from other communication devices 10. In this case, the transmission path of the communication line 2 connecting that communication device 10 to the other communication devices 10 will be longer. Therefore, the communication time between that communication device 10 and the other communication devices 10, i.e., between nodes, will be longer than other communication devices.
[0034] As such, various factors affect the communication time between multiple nodes, so the communication time between multiple nodes is not necessarily the same.
[0035] Therefore, the control unit 13 may acquire the communication time between the plurality of nodes by calculating it based on factors that affect the communication time. Alternatively, the control unit 13 may acquire the communication time between the plurality of nodes by actually measuring the communication time. When actually measuring the communication time, the control unit 13 may acquire the communication time between the plurality of nodes by transmitting and receiving a predetermined packet to and from another communication device 10 via the communication line 2 using the communication unit 11.
[0036] For example, in FIG. 3, nodes 21, 22, 23, 24, and 25 are connected via a communication line 2. Each of the nodes 21 to 25 is a different communication device 10. In FIG. 3, the communication line 2 connecting each of the nodes 21 to 25 is indicated by a dashed line. The control unit 13 acquires the communication time on the communication line 2 between each of the nodes 21 to 25. In FIG. 3, the acquired communication time is written above the dashed line. The unit of communication time is [msec].
[0037] When the control unit 13 acquires the communication time between the plurality of nodes, the control unit 13 stores the acquired communication time in the storage unit 12. For example, the control unit 13 stores a correspondence table of communication times as shown in FIG.
[0038] In the process of step S2, the control unit 13 generates a connection graph based on the communication time acquired in the process of step S1. The connection graph is a graph that shows the connection relationships between multiple nodes. Here, the following generation method 1 and generation method 2 can be considered as a method for creating the connection graph.
[0039] <Generation Method 1> Generation method 1 is a method for generating a connection graph by creating a connection graph showing the physical connection relationships between multiple nodes and associating the communication times acquired in step S1 with the communication lines between the nodes in the connection graph. Here, when multiple unicast communications are performed simultaneously, some unicast communications may share the same communication line 2, resulting in unintended delays in communication time between nodes. This is because when the communication line 2 is shared, the timing at which different unicast communications use the communication line 2 increases. When the timing at which the communication line 2 is used overlaps, the likelihood of data collisions on the communication line 2 increases. By using the connection graph generated by generation method 1, the possibility of unintended delays in communication time due to the sharing of the same communication line 2 can be reduced when determining the execution order of unicast communications in step S3, described below. Information regarding the physical connection relationships between nodes may be acquired in advance and stored in the storage unit 12. Methods for obtaining information regarding the physical connection relationships between nodes include, for example, using a network configuration diagram created by the operator, using connection information managed in the operating system used by the network operator, and aggregating adjacent device information exchanged by operating LLDP (Link Layer Discovery Protocol), which exchanges device information between the node and the aggregation device.
[0040] <Generation Method 2> Generation Method 2 is a method for creating a connection graph that shows the connection relationships based on the communication times acquired in the processing of step S1, without taking into account the physical connection relationships between multiple nodes. Since Generation Method 2 does not take into account the physical connection relationships between multiple nodes, it is possible to create a connection graph with less information.
[0041] In generation method 2, nodes with short inter-node communication times are assumed to be located close to each other, and nodes with long inter-node communication times are assumed to be located far away or connected via multiple aggregation devices. Then, in generation method 2, nodes with short inter-node communication times are grouped together to create a connection graph. For example, in FIG. 3, the communication time between node 21 and node 22 is shorter than the communication time between node 21 or node 22 and each of nodes 23 to 25. Furthermore, the communication time between each of nodes 23 to 25 is shorter than the communication time between each of nodes 23 to 25 and node 21 or node 22. Therefore, in FIG. 3, a group including node 21 and node 22 and a group including nodes 23 to 25 are created to generate a connection graph.
[0042] Here, in generation method 2, a connection graph is created based on the assumption that nodes with short communication times between them are located close to each other. As a result, the connection relationships between multiple nodes in the connection graph created by generation method 2 are likely to differ from the actual physical connection relationships between the multiple nodes. Therefore, when creating a connection graph using generation method 2, it is necessary to assume that even if multiple unicast communications are executed simultaneously, the same communication line 2 will not be shared by some of the unicast communications. This is because, as described above, sharing the same communication line 2 in some unicast communications may result in unintended delays in communication time between nodes. However, in collective communications in which data of a predetermined volume or more is transmitted and received, the assumption that the same communication line 2 will not be shared by some of the multiple unicast communications is likely to be invalid.
[0043] Therefore, in this embodiment, the control unit 13 generates a connection graph by generation method 1. For example, the control unit 13 generates a connection graph as shown in FIG. 5. The connection graph shown in FIG. 5 is generated for nodes 21 to 25 shown in FIG. 3. Switches SW1 and SW2 are Layer 2 switches. Solid lines indicate transmission paths. Switches SW1 and SW2 are connected to switch SWA1. Switch SWA1 is a Layer 2 switch.
[0044] In the process of step S3, the control unit 13 determines the execution order of unicast communication based on the connection graph generated in the process of step S2. As described above, even if the performance of the nodes and the performance of the communication lines between the nodes are uneven, the time required for data distribution in collective communication can be shortened by appropriately setting the execution order of unicast communication. The control unit 13 determines the execution order of unicast communication, as described below, so as to shorten the total time required for data distribution to all nodes.
[0045] Hereinafter, one or more nodes connected to the same aggregation device will be referred to as a "cluster." The aggregation device is a device included in communication line 2. The aggregation device is, for example, an L2 switch or a router. One or more nodes included in a cluster are nodes at the same hierarchical level. For example, in FIG. 5, nodes 21 and 22 are connected to the same aggregation device, switch SW1. Therefore, nodes 21 and 22 form a cluster. Furthermore, nodes 23 to 25 are connected to the same aggregation device, switch SW2. Therefore, nodes 23 to 25 form a cluster. Hereinafter, the cluster including nodes 21 and 22 will be referred to as "cluster C1." The cluster including nodes 23 to 25 will be referred to as "cluster C2."
[0046] Hereinafter, unicast communication performed between two nodes among multiple nodes included in the same cluster will be referred to as "first unicast communication." The first unicast communication may be performed between two nodes of the cluster via an aggregation device of the cluster. For example, in FIG. 5, the unicast communication performed between node 21 and node 22 via switch SW1 is the first unicast communication.
[0047] Hereinafter, unicast communication performed between a node included in one of two clusters and a node included in the other cluster will be referred to as "second unicast communication." Because the second unicast communication is performed between two clusters, it can be performed via at least two aggregation devices. For example, in FIG. 5, the unicast communication performed from node 21 to node 23 via switches SW1 and SW2 is the second unicast communication.
[0048] Here, the following determination method 1 and determination method 2 are conceivable as methods for determining the execution order of unicast communication.
[0049] <Determination Method 1> Determination method 1 is a method for determining the execution order of unicast communications so that a first unicast communication executed within the same cluster is executed with priority over a second unicast communication executed between two clusters.
[0050] <Determination Method 2> Determination Method 2 is a method for determining the execution order of unicast communications so that second unicast communication performed between two clusters is given priority over first unicast communication performed within the same cluster.
[0051] The connection graph according to this embodiment is generated by generation method 1 as described above, and therefore indicates the physical connection relationships between multiple nodes. Therefore, it is possible to avoid unintended delays in communication time due to sharing the same communication line 2. This is because, by using the connection graph generated by generation method 1, even if the same communication line 2 is shared by different unicast communications, the timing at which the communication line 2 is used can be shifted for the different unicast communications. In other words, by using the connection graph generated by generation method 1, it is possible to increase the utilization rate of the communication line 2 that can be shared. Furthermore, by increasing the utilization rate of the communication line 2 that can be shared, it is highly likely that the total time until data is distributed to all nodes in collective communications will be shortened.
[0052] Therefore, in this embodiment, the control unit 13 determines the execution order of unicast communications using determination method 2. That is, the control unit 13 determines the execution order of unicast communications based on the connection graph generated in the processing of step S2 so that the second unicast communication is executed with priority over the first unicast communication. With this configuration, the execution order of unicast communications is determined so that the second unicast communication is executed first between two different clusters, and then the first unicast communication is executed in each of the different clusters. By executing the second unicast communication first between two different clusters, one of the nodes included in the cluster may have data. Then, by executing the first unicast communication, the node having the data may transmit the data to another node in the same cluster. The first unicast communication can be executed simultaneously in each of the different clusters. Therefore, determination method 2 can shorten the total time until data is distributed to all nodes.
[0053] For example, as shown in Fig. 6, the control unit 13 determines the execution order of unicast communication. Fig. 6 corresponds to the connection graph shown in Fig. 5. In Fig. 6, node 21 is the node that is the origin of collective communication. In other words, data distributed in collective communication is transmitted from node 21. In Fig. 6, first, second unicast communication is executed from node 21 in cluster C1 to node 24 in cluster C2. Next, first unicast communication is executed from node 21 to node 22 in cluster C1, and first unicast communication is executed from node 24 to node 25 and from node 24 to node 23 in cluster C2.
[0054] Here, if the control unit 13 acquires the communication time for each different data size in the process of step S1, the control unit 13 may execute the processes of steps S2 and S3 for each data size. The control unit 13 does not need to execute the process of step S1 every time collective communication is executed. The control unit 13 may execute the process of step S1 once before the execution of collective communication.
[0055] Furthermore, the processes of steps S1 to S3 may be performed by all of the communication devices 10 included in the communication network 1, or by any one of the communication devices 10. When all of the communication devices 10 perform the processes of steps S1 to S3, each communication device 10 may store the communication time and destination information in the storage unit 12. When any one terminal device 10 performs the processes of steps S1 to S3, only that one communication device 10 may store the communication time and destination information in the storage unit 12. In this case, the other communication devices 10 may perform unicast communication in accordance with the execution order of unicast communication determined by the communication device 10 that performs the processes of steps S1 to S3. Alternatively, the processes of steps S1 to S3 may be performed by an information processing device other than the communication device 10. In this case, the communication device 10 may perform unicast communication in accordance with the execution order of unicast communication determined by the information processing device.
[0056] As described above, in the communication device 10 according to this embodiment, the control unit 13 determines the execution order of unicast communication for distributing data to each of a plurality of nodes based on the connection graph generated by generation method 1. As described above, by using the connection graph generated by generation method 1, it is possible to increase the utilization rate of the communication line 2 that can be shared. Furthermore, by increasing the utilization rate of the communication line 2 that can be shared, it is more likely that the total time until data is distributed to all nodes in collective communication will be shortened. Therefore, according to this embodiment, it is possible to shorten the time required for data distribution.
[0057] Furthermore, by using the connection graph generated by generation method 1 according to this embodiment, even if the performance of the nodes and the performance of the communication lines 2 between the nodes are uneven, it is possible to appropriately set the execution order of unicast communication and shorten the time required for data distribution. Therefore, the technology according to this embodiment can be useful for heterogeneous network configurations.
[0058] In this embodiment, the control unit 13 may also determine the execution order of unicast communications using determination method 2. That is, the control unit 13 may determine the execution order of unicast communications so that the second unicast communication is executed with priority over the first unicast communication. This configuration can further shorten the time required for data distribution. For example, as a comparative example, FIG. 7 shows a case in which the execution order of unicast communications is determined using determination method 1, i.e., so that the first unicast communication is executed with priority over the second unicast communication. In FIG. 7 , as in FIG. 6 , node 21 is the node that serves as the origin of collective communication. In FIG. 7 , the first unicast communication is executed with priority, so first, the first unicast communication is executed from node 21 to node 22. Next, the second unicast communication is executed from node 21 in cluster C1 to node 23 in cluster C2. In FIG. 7 , the first unicast communication is executed with priority, so the time required for data distribution is longer compared to the configuration shown in FIG. 6 . Therefore, by determining the order of execution of unicast communications so that the second unicast communication is executed with priority, the time required for distributing data can be shortened.
[0059] Depending on the communication environment, it may be necessary to prepare a communication queue for each communication partner or to carefully manage session information between the sending node and the receiving node. When multicast communication is performed in such a communication environment, replicating data using a relay device may result in inconsistencies in information between nodes. When there is a high possibility of inconsistencies in information between nodes, it is necessary to manage the communication status for each node individually in communication between nodes. In a configuration in which the communication status is managed individually for each node, when distributing the same data to multiple nodes, it may be preferable to perform unicast communication multiple times. In other words, in cases where multicast communication is performed while mutually confirming data reachability between the sending node and the receiving node, it may be preferable to perform unicast communication multiple times. The technology according to this embodiment is useful in such cases. As an example, it is useful to apply the technology according to this embodiment to a configuration in which multicast communication is performed in a situation in which communication status is managed at a layer higher than Layer 3 (network layer: end-to-end communication) in the OSI reference model. For example, it is useful to apply the technology according to this embodiment to RDMA (Remote Direct Memory Access).
[0060] (Second embodiment) A communication network according to a second embodiment can employ a configuration that is the same as or similar to the communication network 1 according to the first embodiment as shown in Fig. 1. Therefore, the communication network 1 according to the second embodiment will be described with reference to Fig. 1.
[0061] In the first embodiment, a case where multiple nodes that distribute data are connected to multiple aggregation devices as shown in Figure 5 is described. In the second embodiment, a case where multiple nodes that distribute data are connected to one aggregation device is described. This corresponds to the configuration shown in Figure 8, for example. Nodes 31, 32, 33, and 34 shown in Figure 8 are each different communication devices 10. Nodes 31 to 34 are connected to one aggregation device, i.e., one switch SW3. Switch SW3 is a Layer 2 switch. Solid lines indicate transmission paths.
[0062] 9 is a flowchart showing an example of the operation of the communication device 10 according to the second embodiment. For example, after executing the processes of steps S1 and S2 shown in FIG. 2, the control unit 13 proceeds to the process of step S11. Here, when multiple nodes that distribute data are connected to one aggregation device, the connection graph generated in the process of step S2 is a single-level connection graph. Therefore, if the connection graph generated in the process of step S2 is a single level, the control unit 13 may proceed to the process of step S11. In other words, if the connection graph generated in the process of step S2 is a multi-level connection graph, the control unit 13 may proceed to the process of step S3.
[0063] In the process of step S11, the control unit 13 identifies a first node that has data and a second node that does not have data from among the multiple nodes connected to one aggregation device, i.e., from among the multiple nodes in the cluster. Here, "node that has data" refers to a "node that has data" in the process of determining the execution order of unicast communication. Also, "node that does not have data" refers to a "node that does not have data" in the process of determining the execution order of unicast communication. For example, in the configuration shown in FIG. 8, node 31 is the node that serves as the origin of collective communication. That is, data to be distributed in collective communication is first transmitted to node 31. In this case, in the first process of step S1, node 31 is the node that has data, and nodes 32 to 34 are nodes that do not have data. Therefore, the control unit 13 identifies node 31 as the first node and nodes 32 to 34 as the second nodes.
[0064] In the process of step S12, the control unit 13 determines whether or not multiple second nodes exist. For example, if the control unit 13 identifies nodes 32 to 34 shown in FIG. 3 as second nodes in the process of step S11, the control unit 13 determines in the process of step S12 that multiple second nodes exist. If the control unit 13 determines that multiple second nodes exist (step S12: YES), the control unit 13 proceeds to the process of step S13. If the control unit 13 determines that multiple second nodes do not exist, that is, if the control unit 13 determines that only one second node exists (step S12: NO), the control unit 13 proceeds to the process of step S17.
[0065] In the process of step S13, the control unit 13 acquires the communication time from the first node to each of the plurality of second nodes based on the connection graph generated in the process of step S2. For example, in Fig. 8, if the first node is node 31 and the second nodes are nodes 32 to 34, the control unit 13 acquires the communication time from node 31 to each of nodes 32 to 34.
[0066] In the process of step S14, the control unit 13 identifies the shortest communication time among the multiple communication times acquired in the process of step S13. For example, in Fig. 8, the communication speed between node 31 and switch SW3 and the communication speed between node 32 and switch SW3 are 100 Gbps. Also, the communication speed between node 33 and switch SW3 and the communication speed between node 34 and switch SW3 are 25 Gbps. In this case, the control unit 13 identifies the communication time from node 31 to node 32 as the shortest communication time.
[0067] The process of step S15 is a process of determining the execution order of unicast communication so as to shorten the total time until data is distributed to all nodes. In this embodiment, the control unit 13 determines the execution order of unicast communication so that unicast communication between the first node and the second node having the shortest communication time acquired in the process of step S14 is executed with priority. An example of the process of step S15 will be described below.
[0068] In the first processing of step S15, the control unit 13 determines the unicast communication to be executed first. The control unit 13 determines the unicast communication from the first node to the second node identified in the processing of step S14 as having the shortest communication time as the unicast communication to be executed first. For example, it is assumed that the control unit 13 identified the unicast communication from node 31 to node 32 shown in FIG. 8 as the unicast communication from the first node to the second node having the shortest communication time in the processing of step S14. In this case, the control unit 13 determines the unicast communication from node 31 to node 32 as the unicast communication to be executed first.
[0069] In the second and subsequent processing of step S15, the control unit 13 updates the execution order of the unicast communications. In this embodiment, the control unit 15 updates the execution order of the unicast communications by determining the unicast communication to be executed after the unicast communication determined in the previous processing of step S15. The control unit 15 determines the unicast communication from the first node to the second node, which has been identified in the processing of step S14 as having the shortest communication time, as the unicast communication to be executed after the unicast communication determined in the previous processing of step S15.
[0070] In the process of step S16, the control unit 15 updates the second node, for which the execution order of unicast communication was determined in the process of step S15, to the first node. For example, in the first execution of the process of step S15, the control unit 13 determines that the unicast communication from node 31 to node 32 shown in Fig. 8 is to be the unicast communication to be executed first. In this case, the control unit 13 updates the node 32, which was identified as the second node in the process of step S11, to the first node.
[0071] After the process of step S16, the control unit 13 returns to the process of step S11.
[0072] The process of step S17 is executed when it is determined in the process of step S12 that there is only one second node in the cluster. When there is only one second node in the cluster, there are two patterns, namely, pattern 1 and pattern 2. The first pattern occurs when there are three or more nodes in the cluster, but as a result of updating the second nodes to first nodes in the process of step S16, there is no longer one second node in the cluster. The second pattern occurs when there are only two nodes in the cluster.
[0073] In the first pattern, the control unit 13 determines that the unicast communication from the first node to the second node identified in the process of step S11 is the unicast communication to be executed next after the unicast communication determined in the previous process of step S15. Through this process, the control unit 15 updates the execution order of the unicast communications.
[0074] In the second pattern, the control unit 13 determines that the unicast communication to be executed first is unicast communication from the first node to the second node.
[0075] After the process of step S17, the control unit 13 ends the process shown in FIG.
[0076] Here, in the same cluster, unicast communications executed between different nodes can be executed simultaneously in parallel. Therefore, in the processing of steps S15 and S17, the control unit 13 may determine the execution order of the unicast communications so that unicast communications from different first nodes to second nodes are executed simultaneously in parallel. For example, in FIG. 8 , the control unit 13 executes unicast communications from node 31 as the first node to node 33 as the second node and unicast communications from node 32 as the first node to node 34 as the second node simultaneously in parallel.
[0077] By performing the processes of steps S11 to S17, the execution order of unicast communication is determined as follows in the configuration shown in Fig. 8. Here, the first communication phase in Fig. 8 is the communication executed the first time. The second communication phase is the communication executed the second time. In the first communication phase, unicast communication is executed from node 31 to node 32. In the second communication phase, unicast communication is executed from node 31 to node 33 and unicast communication from node 32 to node 34. This timing chart is shown in Fig. 10.
[0078] The processes of steps S11 to S17 may be performed by all of the communication devices 10 included in the communication network 1, or by any one of the communication devices 10. When all of the communication devices 10 perform the processes of steps S11 to S17, each communication device 10 may store the communication time and destination information in the storage unit 12. When any one terminal device 10 performs the processes of steps S11 to S17, only that one communication device 10 may store the communication time and destination information in the storage unit 12. In this case, the other communication devices 10 may perform unicast communication in accordance with the execution order of unicast communication determined by the communication device 10 that performs the processes of steps S11 to S17. Alternatively, the processes of steps S11 to S17 may be performed by an information processing device other than the communication device 10. In this case, the communication device 10 may perform unicast communication in accordance with the execution order of unicast communication determined by the information processing device.
[0079] As described above, in the communication device 10 according to the second embodiment, when multiple nodes distributing data are connected to a single aggregation device, the control unit 13 identifies a first node and a second node from among the multiple nodes connected to the aggregation device. If multiple second nodes exist, the control unit 13 acquires the communication time from the first node to each of the multiple second nodes based on the connection graph. Furthermore, the control unit 13 determines the execution order of unicast communications so that unicast communications between the first node and the second node with the shortest acquired communication time are prioritized. This configuration can shorten the time required for data distribution. For example, the configurations shown in FIGS. 11 and 12 described above can be cited as comparative examples. According to this embodiment, the time required for data distribution can be shortened compared to the configuration according to the comparative example.
[0080] Other configurations and effects of the communication network 1 according to the second embodiment are the same as or similar to those of the communication network 1 according to the first embodiment.
[0081] (Third embodiment) A communication network according to a third embodiment can employ a configuration that is the same as or similar to the communication network 1 according to the first embodiment, as shown in Fig. 1. Therefore, the communication network 1 according to the third embodiment will be described with reference to Fig. 1.
[0082] In the third embodiment, a case will be described in which there are multiple aggregation devices and the communication time from each of the multiple nodes in the cluster to the aggregation device is different. This corresponds to, for example, the configuration shown in FIG.
[0083] As shown in FIG. 13, switches SW4, SW5, SW6, and SW7 are aggregation devices. Switches SW4 to SW7 are Layer 2 switches. Nodes 41 and 42 are connected to switch SW4, and therefore form a cluster. The cluster including nodes 41 and 42 is referred to as "cluster C3." Node 43 is connected to switch SW5, and therefore form a cluster. The cluster including node 43 is referred to as "cluster C4." Nodes 44, 45, and 46 are connected to switch SW6, and therefore form a cluster. The cluster including nodes 44 to 46 is referred to as "cluster C5." Nodes 47 and 48 are connected to switch SW7, and therefore form a cluster. The cluster including nodes 47 and 48 is referred to as "cluster C6." Nodes 41 to 48 are each different communication devices 10. In FIG. 13, thick lines indicate broadband communication lines. Thin lines indicate narrowband communication lines. The broadband communication line and the narrowband communication line may be the same type of line or different types of line. The switches SW4 to SW7 are connected to the switch SWA2. The switch SWA2 is a Layer 2 switch.
[0084] FIG. 14 is a flowchart showing an example of the operation of the communication device 10 according to the third embodiment. This process may be executed by any one of the multiple communication devices 10 included in the communication network 1. After executing the processes of steps S1 and S2 shown in FIG. 2, the control unit 13 proceeds to the process of step S21. Here, if multiple aggregation devices are present, the connection graph generated in the process of step S2 will be a multi-level connection graph. Therefore, if the control unit 13 determines that the connection graph generated in the process of step S2 is multi-level and that the communication times from each of the multiple nodes in the cluster to the aggregation device are different based on the connection graph, the control unit 13 may proceed to the process of step S21. In other words, if the connection graph generated in the process of step S2 is multi-level and the control unit 13 does not determine that the communication times from each of the multiple nodes in the cluster to the aggregation device are different based on the connection graph, the control unit 13 may proceed to the process of step S3.
[0085] In the process of step S21, the control unit 13 identifies a source node from among the multiple nodes. Furthermore, the control unit 13 identifies a source cluster from among the multiple clusters. After identifying the source cluster, the control unit 13 sets clusters other than the source cluster as unreceived clusters. A source node is a node that has data in the process of determining the execution order of unicast communication. A source cluster is a cluster that has a source node in the process of determining the execution order of unicast communication. Here, in the first process of step S21, the source node is the node that serves as the origin of collective communication. For example, in the configuration shown in FIG. 13, node 41 is the node that serves as the origin of collective communication. Therefore, in the configuration shown in FIG. 13, the control unit 13 identifies node 41 as the source node. Furthermore, the control unit 13 identifies cluster C3 as the source cluster. The control unit 13 sets clusters C4 to C6 as unreceived clusters.
[0086] In the processing of step S22, the control unit 13 identifies a representative node in each of the multiple clusters based on the connection graph generated in the processing of step S2. A representative node is a node, among the multiple nodes included in one cluster, that has the shortest communication time to the aggregation device of that cluster. If, among the multiple nodes included in a cluster, the source node is the node that has the shortest communication time to the aggregation device, the control unit 13 may identify the source node as the representative node. Furthermore, if there is one node connected to the aggregation device, that is, if there is one node included in the cluster, the control unit 13 identifies that node as the representative node.
[0087] For example, in the configuration shown in FIG. 13, the control unit 13 identifies node 42 of cluster C3, node 43 of cluster C4, node 44 of cluster C5, and node 48 of cluster C6 as representative nodes.
[0088] In the process of step S23, the control unit 13 selects a pair of a source cluster and an unreceived cluster from among one or more source clusters and one or more unreceived clusters based on the connection graph generated in the process of step S2. As a method for selecting a pair of a source cluster and an unreceived cluster, in this embodiment, the following selection method 1 or selection method 2 is executed.
[0089] <Selection Method 1> In selection method 1, first, the control unit 13 acquires the communication time between one or more source clusters and one or more unreceived clusters based on the connection graph generated in the processing of step S2. Furthermore, the control unit 13 selects, as a pair of source clusters and unreceived clusters, a source cluster and an unreceived cluster with the shortest communication time between the one or more source clusters and the one or more unreceived clusters. When the processing of step S23 is executed for the first time, the number of source clusters is one. Therefore, in the processing of step S23 for the first time, the control unit 13 selects, as a pair of source clusters and unreceived clusters, a source cluster and an unreceived cluster with the shortest communication time between the one source cluster and one or more unreceived clusters.
[0090] 13, in the first processing of step S23, the source cluster is cluster C3, and clusters C4 to C6 are unreceived clusters. Here, among the communication times between cluster C3 and each of clusters C4 to C6, the communication time between cluster C3 and cluster C4 is assumed to be the shortest. In this case, the control unit 13 selects clusters C3 and C4 as the source cluster and unreceived cluster pair with the shortest communication time, i.e., the source cluster and unreceived cluster pair.
[0091] <Selection Method 2> In selection method 2, the control unit 13 first calculates, for each unreceived cluster, the communication time required for all nodes in the unreceived cluster to have data, based on the connection graph generated in the processing of step S2. Specifically, the control unit 13 calculates the communication time required for all nodes in the unreceived cluster to have data, from a state in which only the representative node in the unreceived cluster has data and all other nodes in the unreceived cluster do not have data. In a cluster in which a long communication time is required for all nodes in the cluster to have data, it is desirable for the representative node of the cluster to become a node that has data early. In other words, in a cluster in which a long communication time is required for all nodes in the cluster to have data, it is desirable to perform the first unicast communication described in the first embodiment while performing second unicast communication between other nodes. Therefore, the control unit 13 selects, from among the multiple unreceived clusters, the unreceived cluster that requires the longest communication time for all nodes in the cluster to have data.
[0092] In selection method 2, the control unit 13 then obtains the communication time between the selected unreceived cluster and one or more source clusters based on the connection graph generated in the processing of step S2. The control unit 13 selects the source cluster with the shortest communication time with the selected unreceived cluster from among the one or more source clusters. The control unit 13 sets the selected unreceived cluster and source cluster as a pair of unreceived cluster and source cluster to be selected in the processing of step S23.
[0093] In the processing of step S24, the control unit 13 determines the execution order of unicast communication between clusters so as to shorten the total time until data is distributed to all nodes. Unicast communication between clusters is unicast communication executed between a node included in one of two clusters and a node included in the other cluster. The control unit 13 determines the execution order of unicast communication between clusters so that unicast communication between the representative node of the sending cluster selected in the processing of step S23 and the representative node of the non-receiving cluster is executed with priority. An example of the processing of step S24 will be described below.
[0094] In the first processing of step S24, the control unit 13 determines the inter-cluster unicast communication to be executed first. For a pair of a source cluster and a non-receiving cluster selected in the processing of step S23, the control unit 13 determines that the inter-cluster unicast communication to be executed first is unicast communication between the representative node of the source cluster and the representative node of the non-receiving cluster. For example, in the configuration shown in FIG. 13, the inter-cluster unicast communication to be executed first is determined to be unicast communication from node 42, which is the representative node of cluster C3, which is the source cluster, to node 43, which is the representative node of cluster C4. Note here that the inter-cluster unicast communication to be executed first uses a representative node rather than the source node of the source cluster. For example, in FIG. 13, node 42, which is the representative node, is used rather than the source node of cluster C3, which is the sending cluster, i.e., node 41. With this configuration, the time required for data distribution can be shortened, as will be described later with reference to FIG. 15.
[0095] In the processing of step S24 from the second time onwards, the control unit 13 updates the execution order of inter-cluster unicast communication. In this embodiment, the control unit 13 updates the execution order of unicast communication by determining inter-cluster unicast communication to be executed after the inter-cluster unicast communication determined in the previous processing of step S24. The control unit 13 determines that, for a pair of source cluster and unreceived cluster selected in the processing of step S23, unicast communication between the representative node of the source cluster and the representative node of the unreceived cluster will be executed after the inter-cluster unicast communication determined in the previous processing of step S24.
[0096] In the process of step S25, the control unit 13 updates the non-receiving cluster for which the execution order of unicast communication has been determined in the process of step S24 to the source cluster, and updates the representative node of the non-receiving cluster to the source node.
[0097] In the process of step S26, the control unit 13 determines whether or not there is an unreceived cluster among the multiple clusters. If the control unit 13 determines that there is an unreceived cluster (step S26: YES), the control unit 13 returns to the process of step S21. If returning to the process of step S21, the control unit 13 does not need to execute the process of step S22 again. If the control unit 13 determines that there is no unreceived cluster (step S26: NO), the control unit 13 proceeds to the process of step S27.
[0098] In the process of step S27, the control unit 13 determines the execution order of unicast communication within the cluster. The control unit 13 determines the execution order of unicast communication within the cluster by executing the processes of steps S11 to S17 shown in FIG.
[0099] The processes of steps S21 to S27 may be performed by all of the communication devices 10 included in the communication network 1, or by any one of the communication devices 10. When all of the communication devices 10 perform the processes of steps S21 to S27, each communication device 10 may store the communication time and destination information in the storage unit 12. When any one terminal device 10 performs the processes of steps S21 to S27, only that one communication device 10 may store the communication time and destination information in the storage unit 12. In this case, the other communication devices 10 may perform unicast communication in accordance with the execution order of unicast communication determined by the communication device 10 that performs the processes of steps S21 to S27. Alternatively, the processes of steps S21 to S27 may be performed by an information processing device other than the communication device 10. In this case, the communication device 10 may perform unicast communication in accordance with the execution order of unicast communication determined by the information processing device.
[0100] As described above, in the communication device 10 according to the third embodiment, the control unit 13 identifies a source cluster from among a plurality of clusters. The control unit 13 also designates clusters other than the source cluster from among the plurality of clusters as unreceived clusters. Furthermore, the control unit 13 selects a pair of a source cluster and an unreceived cluster from among one or more source clusters and one or more unreceived clusters based on the connection graph. The control unit 13 determines the execution order of unicast communication between clusters so that priority is given to unicast communication executed between the representative node of the selected source cluster and the representative node of the unreceived cluster. With this configuration, the time required for data distribution can be shortened, as will be described with reference to FIGS. 15 and 16 .
[0101] FIG. 15 is a timing chart showing unicast communication according to the third embodiment. The configuration shown in FIG. 15 corresponds to the configuration shown in FIG. 13. For simplicity, FIG. 15 shows only the beginning of unicast communication. As described above, in this embodiment, unicast communication between two clusters is performed between the representative node of one cluster and the representative node of the other cluster. Therefore, after unicast communication is performed from node 41 to node 42 in cluster C3, unicast communication is performed from node 42 in cluster C3 to node 43 in cluster C4. Here, in FIG. 13, the broadband indicated by the thick line is assumed to be 100 Gbps, and the narrowband indicated by the thin line is assumed to be 10 Gbps. Also, assume that 10 Gbit data is distributed from node 41 to nodes 42 to 48. In this case, unicast communication from node 41 to node 42 takes 1 sec (= 10 Gbit / 10 Gbps). Unicast communication from node 42 of cluster C3 to node 43 of cluster C4 takes 0.1 seconds (=10 Gbit / 100 Gbps). Therefore, the time required for data distribution from node 41 to nodes 42 and 43 is 1.1 seconds.
[0102] FIG. 16 is a timing chart showing unicast communication according to a comparative example. Unlike FIG. 15, in this comparative example, the node that initiates the collective communication, i.e., node 41, executes unicast communication between clusters. Therefore, after unicast communication from node 41 to node 43, unicast communication from node 41 to node 42 is executed. As shown in FIG. 13, the communication between node 41 and switch SW4 is narrowband communication, and therefore the communication time is longer than that between node 42 and switch SW4. Therefore, in the configuration according to the comparative example shown in FIG. 16, the time required for data distribution is longer than in the configuration according to the present embodiment shown in FIG. 15. As in the above example, in FIG. 13, the broadband indicated by the thick line is 100 Gbps, and the narrowband indicated by the thin line is 10 Gbps. Furthermore, assume that 10 Gbit data is distributed from node 41 to nodes 42 to 48. In this case, unicast communication from node 41 to node 43 takes 1 sec (= 10 Gbit / 10 Gbps). Unicast communication from node 41 to node 42 takes 1 sec (= 10 Gbit / 10 Gbps). Therefore, the time required for data distribution from node 41 to nodes 42 and 43 is 2.0 sec.
[0103] Other configurations and effects of the communication network 1 according to the third embodiment are the same as or similar to those of the communication network 1 according to the first embodiment or the communication network 1 according to the second embodiment.
[0104] The present disclosure is not limited to the above-described embodiments. For example, two or more blocks shown in the block diagram may be integrated, or one block may be divided. Two or more steps shown in the flowchart may be executed in parallel or in a different order, instead of being executed in chronological order as described, depending on the processing capabilities of the device executing each step or as needed. Other modifications are possible within the scope of the present disclosure.
[0105] For example, the configuration shown in FIG. 13 is exemplified as a configuration to which the third embodiment can be applied. However, the configuration to which the third embodiment can be applied is not limited to the configuration shown in FIG. 13. Another example is a configuration in which multiple devices each include multiple GPUs. In this case, the multiple GPUs within the device are connected via a broadband communication line. Furthermore, the multiple devices are each connected via a narrowband communication line.
[0106] For example, in the above-described embodiment, the information processing device of the present disclosure is described as the communication device 10. However, the information processing device of the present disclosure is not limited to the communication device 10.
[0107] The information processing device of the present disclosure can also be realized by a computer and a program, and the program can be recorded on a recording medium or provided via a network.
[0108] For example, an embodiment is also possible in which a general-purpose computer functions as the communication device 10 according to the above-described embodiment. Specifically, a program describing the processing content for realizing each function of the communication device 10 according to the above-described embodiment is stored in the memory of the general-purpose computer, and the program is read and executed by a processor. Therefore, the present disclosure can also be realized as a program executable by a processor or a non-transitory computer-readable medium storing the program.
[0109]
[0110] 1: communication network, 2: communication line, SW1, SW2, SW3, SW4, SW5, SW6, SW7: switches, 10: communication device, 11: communication unit, 12: storage unit, 13: control unit, 21, 22, 23, 24, 25, 31, 32, 33, 34, 41, 42, 43, 44, 45, 46, 47, 48: nodes, C1, C2, C3, C4, C5, C6: clusters
Claims
1. An information processing device comprising a control unit that determines the execution order of unicast communications for distributing data to each of a plurality of nodes based on a connection graph showing the physical connection relationships between the plurality of nodes, in which the communication times between the plurality of nodes are associated.
2. The information processing device of claim 1, wherein a cluster is one or more nodes among the plurality of nodes that are connected to the same aggregation device, a first unicast communication is a unicast communication performed between two nodes included in the same cluster, and a second unicast communication is a unicast communication performed between a node included in one of the two clusters and a node included in the other of the two clusters, and the control unit determines the order of execution of the unicast communications based on the connection graph so that the second unicast communication is executed with priority over the first unicast communication.
3. The information processing device of claim 1, wherein a cluster is one or more nodes among the plurality of nodes that are connected to the same aggregation device, and wherein the control unit, in the process of determining the order of execution of the unicast communication, identifies a source cluster from among the plurality of clusters that includes a node having data, and designates clusters among the plurality of clusters other than the source cluster as unreceived clusters, identifies a representative node from among one or more nodes included in the cluster that has the shortest communication time to the aggregation device for the cluster, selects a pair of a source cluster and an unreceived cluster from among the one or more source clusters and one or more unreceived clusters based on the connection graph, and determines the order of execution of unicast communication between the clusters so that unicast communication between the representative node of the selected source cluster and the representative node of the unreceived cluster is executed with priority.
4. The information processing device of claim 1 or 3, wherein, when the multiple nodes that distribute the data are connected to one aggregation device, the control unit, in the process of determining the order of execution of the unicast communication, identifies a first node that has data and a second node that does not have data from among the multiple nodes, and when multiple second nodes exist, obtains the communication time from the first node to each of the multiple second nodes based on the connection graph, and determines the order of execution of the unicast communication so that unicast communication between the first node and the second node with the shorter obtained communication time is executed preferentially.