Control device and control method

The control device optimizes data transmission in heterogeneous networks by creating a communication schedule that accounts for varying line speeds, segmenting data, and synchronizing reception and retransmission times, thus reducing the time needed to transmit data to all nodes.

WO2026100080A1PCT designated stage Publication Date: 2026-05-15NT T INC
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
NT T INC
Filing Date
2024-11-11
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Multicast communication in heterogeneous networks faces challenges with packet loss and unreliable delivery due to the lack of retransmission control in UDP, leading to inefficiencies in data transmission times across nodes with varying connection speeds.

Method used

A control device and method that creates a communication schedule based on the line speed of each node's connection, dividing data into multiple segments and scheduling their transmission to ensure a constant time difference between data reception and retransmission, particularly increasing the number of segments for slower lines to accelerate data transmission.

Benefits of technology

This approach reduces the overall data transmission time by ensuring that nodes with slower connections can start transmitting data earlier, thereby shortening the time required to complete data transmission to all nodes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024040042_15052026_PF_FP_ABST
    Figure JP2024040042_15052026_PF_FP_ABST
Patent Text Reader

Abstract

A control device (10) according to the present disclosure comprises a control unit (11) that creates a communication schedule for transmitting transmission data from one node among plurality of nodes to all the other nodes through repetitive transfer of the data by a node that has received the data to another node. The control unit (11) acquires the line speed of a line to which each of the plurality of nodes is connected, and creates the communication schedule on the basis of the line speed of the line to which each of the plurality of nodes is connected such that the time difference from when each of the plurality of nodes starts receiving at least a portion of the transmission data to when each of the plurality of nodes starts transmitting the received data to the other nodes is constant.
Need to check novelty before this filing date? Find Prior Art

Description

Control device and control method

[0001] This disclosure relates to a control device and a control method.

[0002] Consider a heterogeneous network environment, as shown in Figure 8, where multiple nodes (in the example shown in Figure 8, five nodes #1 to #5) are connected via a switch SW using lines of different speeds (in the example shown in Figure 8, a 100Gbps line, a 25Gbps line, and a 10Gbps line). The case involves multicast communication of the same data from one node (for example, node #1) to the other nodes (nodes #2 to #5).

[0003] Generally, when sending data to multiple nodes, multicast communication using UDP (User Datagram Protocol) is considered. However, UDP lacks features to guarantee packet delivery, such as retransmission control in case of packet loss, which presents reliability challenges. Therefore, to reliably multicast data to multiple nodes, a more reliable method is to perform multiple unicast communications using TCP (Transmission Control Protocol).

[0004] Figure 9 shows an example of a transfer flow when sending the same data from node #1 to all other nodes (nodes #2 to #5) in the network shown in Figure 8. In Figure 9, the transmission and reception of data for each node from #1 to #5 are shown separately as a transmission port that sends the data and a reception port that receives the data. The notation "#X" attached to the data sent from the transmission port indicates that the data is being sent to node #X. The horizontal axis represents the passage of time.

[0005] As shown in Figure 9, first, data is sent from node #1 to node #2. Next, data is sent from node #1 to node #3, and simultaneously from node #2 to node #4. Finally, by sending data from node #1 to node #5, the same data can be sent to all nodes (nodes #2 to #5).

[0006] Here, if we assume that the transmission time is 10 ms when data is sent only via a line with a connection speed of 100 Gbps (for example, when sending data from node #1 to node #2), then the transmission time will be 40 ms when data is sent via a line with a connection speed of 25 Gbps (for example, when sending data from node #1 to node #3). Also, the transmission time will be 100 ms when data is sent via a line with a connection speed of 10 Gbps (for example, when sending data from node #2 to node #4).

[0007] Therefore, as shown in Figure 9, node #1 completes data transmission to node #2 in 10 ms. Then, node #1 starts transmitting data to node #3 at 10 ms, and this data transmission takes 40 ms. That is, data transmission to node #3 is completed 50 ms after the start of data transmission to node #2. Then, node #1 starts transmitting data to node #5 at 50 ms, and this data transmission takes 100 ms. Therefore, in the example shown in Figure 9, after node #1 starts transmitting data to node #2, data can be transmitted to all nodes in 150 ms.

[0008] As a method to complete data transmission to all nodes in a shorter time than the example shown in Figure 9, there is a method of uniformly dividing the data to be transmitted to each node and transmitting the divided data sequentially (see Non-Patent Literature 1). In this method, each node, upon receiving one of the multiple divided data sets, immediately transmits that received divided data to other nodes. This allows the transmission of received data to other nodes to begin more quickly, and as a result, the time required to transmit data to all nodes can be reduced.

[0009] Figure 10 shows an example of a transfer flow when the transmitted data is uniformly divided into two parts and sent in order of fastest line speed, similar to Figure 10. In the following, the notation "#X Y / Z" attached to the data transmitted from the transmission port indicates that the Y-th division of the transmitted data, when divided into Z parts, is sent to node #X.

[0010] In the example shown in Figure 9, data transmission to node #3 began at 10 ms, and data transmission to node #5 began at 50 ms. On the other hand, in the example shown in Figure 10, by splitting the transmission data into two parts and starting transmission to the other node as soon as the first part of the data is received, the start of data transmission to node #3 can be brought forward to 5 ms, and the start of data transmission to node #5 can be brought forward to 25 ms. As a result, the completion of data transmission to node #5 can also be brought forward from 150 ms to 125 ms.

[0011] Hosono, Iwasawa, and Makino, "Evaluation of MPI collective communication performance on the supercomputer Fugaku," Information Processing Society of Japan Research Report Vol.2021-HPC-182 No.15, 2021.12.7.

[0012] In the method of uniformly dividing the transmitted data as explained with reference to Figure 10, the transmission of divided data to nodes connected to low-speed lines takes longer to complete compared to nodes connected to high-speed lines, resulting in a delay in the start of transmission of divided data to the next node. For example, in the example shown in Figure 10, the transmission of divided data from node #1 to node #2 is completed in 5 ms, while the transmission of the same divided data from node #2 to node #3 takes 20 ms. Therefore, the start of transmission of the same divided data to node #5 after the completion of transmission to node #3 is also delayed.

[0013] In view of the above-mentioned problems, the purpose of this disclosure is to provide a control device and a control method that can shorten the time required for data transmission.

[0014] A control device according to one embodiment is a control device that controls communication between a plurality of nodes in a communication network including a plurality of nodes capable of unicast communication, and includes a control unit that creates a communication schedule to transmit data from one of the plurality of nodes to all other nodes by repeatedly transferring the data received by the node to other nodes, and the control unit acquires the line speed of the line to which each of the plurality of nodes is connected, and creates the communication schedule based on the line speed of the line to which each of the plurality of nodes is connected, such that the time difference from when each of the plurality of nodes starts receiving at least a portion of the transmitted data to when it starts transmitting the received data to other nodes is constant.

[0015] A control method according to one embodiment is a control method executed by a control device that controls communication between a plurality of nodes in a communication network including a plurality of nodes capable of unicast communication, and includes the steps of creating a communication schedule to transmit data from one of the plurality of nodes to all other nodes by repeatedly transferring the data received by a node to other nodes, and obtaining the line speed of the line to which each of the plurality of nodes is connected, and creating the communication schedule based on the line speed of the line to which each of the plurality of nodes is connected such that the time difference from when each of the plurality of nodes starts receiving at least a portion of the transmitted data to when it starts transmitting the received data to other nodes becomes constant.

[0016] According to this disclosure, it is possible to reduce the time required for data transmission.

[0017] This figure shows an example of the configuration of a control device according to one embodiment of the present disclosure. This is a flowchart showing an example of the operation of the control device shown in Figure 1. This is a diagram illustrating the numbering of multiple nodes by the control unit shown in Figure 1. This is a diagram illustrating the numbering of multiple nodes by the control unit shown in Figure 1. This is a flowchart showing the details of the processing in step S13 shown in Figure 2. This is a diagram illustrating the division of transmitted data by the control unit shown in Figure 1. This is a diagram illustrating the division of transmitted data by the control unit shown in Figure 1. This is a flowchart showing the details of the processing in step S14 shown in Figure 2. This is a diagram illustrating the creation of a communication schedule by the control unit shown in Figure 1. This is a diagram illustrating the creation of a communication schedule by the control unit shown in Figure 1. This is a diagram illustrating the creation of a communication schedule by the control unit shown in Figure 1. This is a diagram showing an example of the configuration of a communication network according to the present disclosure. This is a diagram showing an example of a communication schedule in the communication network shown in Figure 8. This is a diagram showing another example of a communication schedule in the communication network shown in Figure 8.

[0018] Embodiments of this disclosure will be described below with reference to the drawings.

[0019] Figure 1 shows an example of the configuration of a control device 10 according to one embodiment of the present disclosure. The control device 10 according to the present disclosure is a device that controls communication between multiple nodes in a communication network including multiple unicast-enabled nodes (nodes #1 to #5 in the example shown in the figure) connected via a switch SW, as shown in Figure 8. In the following, it is assumed that data to be transmitted from node #1 (source node), which is one of the multiple nodes, is transmitted to all other nodes #2 to #5 (destination nodes), and the control device 10 creates a communication schedule for each of the multiple nodes. Furthermore, in the following, the line speeds of the lines connecting nodes #1 to #5 are different, and as shown in Figure 8, the line speed of the line connecting nodes #1 and #2 is 100 Gbps, the line speed of the line connecting node #3 is 25 Gbps, and the line speed of the line connecting nodes #4 and #5 is 10 Gbps.

[0020] The control device 10 creates a communication schedule for each of the multiple nodes before transmitting the data, and notifies the other nodes of the created communication schedule. The control device 10 is installed, for example, in node #1, which is the source node. Alternatively, the control device 10 may be provided as a separate device from nodes #1 to #5, and connected to nodes #1 to #5 via a switch SW. Or, each node may be equipped with a control device 10, and after providing each node with information such as the number of nodes included in the communication network and the line speed of the line to which each node is connected, the control device 10 installed in each node may create a communication schedule based on the same algorithm.

[0021] As shown in Figure 1, the control device 10 according to this embodiment comprises a control unit 11, a storage unit 12, and a communication unit 13.

[0022] The control unit 11 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 CPU (Central Processing Unit) or GPU (Graphics Processing Unit), or a dedicated processor specialized for a specific process. The programmable circuit is, for example, an FPGA (Field-Programmable Gate Array). The dedicated circuit is, for example, an ASIC (Application Specific Integrated Circuit). The control unit 11 controls each part of the control device 10 and executes processes related to the operation of the control device 10. For example, the control unit 11 creates a communication schedule to send data from one node (the source node, node #1) to all other nodes (the destination nodes, node #2 to node #5) among a plurality of nodes (nodes #1 to node #5) by repeatedly transferring the data from the node that receives the data to other nodes.

[0023] Specifically, the control unit 11 acquires information on the number of nodes in the communication network and the line speed of the line to which each node is connected. The control unit 11 may acquire this information, for example, by communicating with each node via the communication unit 13, which will be described later. Alternatively, the control unit 11 may acquire this information, for example, by input from the user. For each node, the control unit 11 determines the number of divisions to which the transmitted data will be divided into multiple divided data, according to the line speed of the line to which the node is connected, and creates a communication schedule so that the divided data, divided according to the determined number of divisions, is sequentially sent to each node. Here, the control unit 11 increases the number of divisions of the transmitted data for nodes with slower line speeds. Details of how the control unit 11 creates the communication schedule will be described later.

[0024] The storage unit 12 includes at least one semiconductor memory, at least one magnetic memory, at least one optical memory, or any combination thereof. The semiconductor memory is, for example, RAM (Random Access Memory), ROM (Read Only Memory), or flash memory. The RAM is, for example, SRAM (Static Random Access Memory) or DRAM (Dynamic Random Access Memory). The ROM is, for example, EEPROM (Electrically Erasable Programmable Read Only Memory). The flash memory is, for example, SSD (Solid-State Drive). The magnetic memory is, for example, HDD (Hard Disk Drive). The storage unit 12 functions, for example, as main memory, auxiliary memory, or cache memory. The storage unit 12 stores information used for the operation of the control device 10 and information obtained by the operation of the control device 10. The storage unit 12 stores, for example, information acquired by the control unit 11, such as the number of nodes and the line speed of the lines to which each node is connected. Furthermore, the memory unit 12 stores, for example, the communication schedule created by the control unit 11.

[0025] The communication unit 13 includes at least one communication module. The communication module is, for example, a module compatible with a LAN communication standard such as Ethernet®. The communication unit 13 communicates with each node via a switch SW. The communication unit 13 receives information used for the operation of the control device 10 and transmits information obtained through the operation of the control device 10. The communication unit 13 may be shared with a communication module used for sending and receiving actual data for multicast communication, or it may be a dedicated port for exchanging only information related to the operation of the control device 10.

[0026] The functions of the control device 10 are realized by executing the program according to this embodiment on the processor acting as the control unit 11. In other words, the functions of the control device 10 are realized by software. The program causes the computer to perform the operations of the control device 10, thereby causing the computer to function as the control device 10. That is, the computer functions as the control device 10 by performing the operations of the control device 10 according to the program.

[0027] The program can be stored on a non-temporary computer-readable medium. Examples of non-temporary computer-readable mediums include flash memory, magnetic recording devices, optical discs, magneto-optical recording media, or ROM. The program can be distributed, for example, by selling, transferring, or leasing portable media such as SD (Secure Digital) cards, DVDs (Digital Versatile Discs), or CD-ROMs (Compact Disc Read Only Memory) on which the program is stored. The program may also be distributed by storing it in server storage and transferring it from the server to other computers. The program may also be provided as a program product.

[0028] A computer, for example, stores a program stored on a portable medium or a program transferred from a server in its main memory. Then, the computer reads the program stored in the main memory with its processor and executes the processing according to the read program. The computer may also read the program directly from the portable medium and execute the processing according to the program. The computer may also execute the processing according to the received program sequentially each time a program is transferred to it from a server. Processing may also be performed by a so-called ASP (Application Service Provider) type service, which does not transfer programs from the server to the computer, but realizes its function only through execution instructions and result retrieval. A program includes information used for processing by an electronic computer that is equivalent to a program. For example, data that is not a direct instruction to the computer but has the nature of defining the computer's processing falls under "equivalent to a program".

[0029] Some or all of the functions of the control device 10 may be implemented by a programmable circuit or a dedicated circuit as the control unit 11. In other words, some or all of the functions of the control device 10 may be implemented by hardware.

[0030] Next, the operation of the control device 10 according to this embodiment will be described. Figure 2 is a flowchart showing an example of the operation of the control device 10 according to this embodiment, and is a diagram for explaining the control method executed by the control device 10 according to this embodiment.

[0031] In the following, as shown in Figure 3A, the communication network includes multiple nodes (Nodes #A to #E) capable of unicast communication, and each node is assumed to have a different line speed on the line it connects to. Specifically, the line speed of the line connected to Nodes #A and #C is 100 Gbps, the line speed of the line connected to Node #D is 25 Gbps, and the line speed of the line connected to Nodes #B and #E is 10 Gbps. The operation of the control device 10 (control unit 11) that creates a communication schedule for each node to send the same transmission data from one source node (transmitting node #A) among the multiple nodes (Nodes #A to #E) to all other destination nodes (Nodes #B to #E) will be described.

[0032] The control unit 11 acquires information on the number of nodes in the communication network and the line speed of the line to which each node is connected (step S11). As described above, the control unit 11 may acquire this information, for example, by communicating with each node. Alternatively, the control unit 11 may acquire this information, for example, by input from the user.

[0033] The control unit 11 sorts the multiple nodes from which information has been acquired in descending order of the speed of the connected lines, as shown in Figure 3B, and numbers them from #1 (step S12). As described above, the line speed of the line connected to nodes #A and #C is 100 Gbps, the line speed of the line connected to node #D is 25 Gbps, and the line speed of the line connected to nodes #B and #E is 10 Gbps. Therefore, as shown in Figure 3B, nodes #1 and #2 correspond to nodes #A and #C respectively, node #3 corresponds to node #D, and nodes #4 and #5 correspond to nodes #B and #E respectively.

[0034] Referring again to Figure 2, the control unit 11 determines the number of divisions of the transmission data to be sent to each node (destination node) according to the line speed of the line to which the node is connected (step S13). Figure 4 is a flowchart that shows the process of step S13 in more detail.

[0035] The control unit 11 calculates the time required for transmitting the transmission data to each node (each destination node) (data transmission time) based on the line speeds (B 1 , B 2 ,..., B m ) of the lines to which each node (node #1... node #m) is connected (step S131). When the control unit 11 passes through a line with different line speeds before and after the SW, it calculates the data transmission time based on the slower line speed. That is, assuming that the data transmission time when passing through only the fastest line speed B 1 is t, the control unit 11 calculates the data transmission time when passing through a line with a line speed of B 1 or less and a line speed of B 2 or more as follows. Line speed B 1 → data transmission time t Line speed B 2 → data transmission time (B 1 / B 2 )t ... Line speed B m → data transmission time (B 1 / B m )t

[0036] In the example shown in FIG. 3B, assuming that the data transmission time to node #2 connected to a line with a line speed of 100 Gbps is 10 ms, as shown in FIG. 5A, the data transmission time to node #3 connected to a line with a line speed of 25 Gbps is 40 ms, and the data transmission times to nodes #4 and #5 connected to a line with a line speed of 10 Gbps are 100 ms.

[0037] Referring again to FIG. 4, the control unit 11 determines the number of divisions of the transmission data for each node so that the greatest common divisor a of the data transmission times of each node becomes the transmission time of the divided data obtained by dividing the transmission data (step S132). In the example shown in FIG. 5A, the greatest common divisor a of 10 ms, which is the data transmission time of node #2, 40 ms, which is the data transmission time of node #3, and 100 ms, which are the data transmission times of nodes #4 and #5, is 10 ms. The control unit 11 determines the number of divisions of the transmission data for each node so that the transmission time of the divided data transmitted to that node becomes the greatest common divisor a (= 10 ms). That is, as shown in FIG. 5B, the control unit 11 determines that there is no division of the transmission data (division number 1 = 10 / 10) for node #2, determines the division number 4 (= 40 / 10) for node #3, and determines the division number 10 (= 100 / 10) for nodes #4 and #5. By doing so, the control unit 11 can determine the number of divisions of the transmission data so that the transmission time of the divided data to each node becomes constant. In the following description, the time required for the transmission and reception of the fixed divided data is referred to as the reference time.

[0038] If the minimum time unit x into which the transmission data can be divided is smaller than the greatest common divisor a, the control unit 11 may further divide the transmission data more finely so that the transmission time of the divided data becomes x.

[0039] Thus, in the present embodiment, the number of divisions of the transmission data transmitted to each node is changed according to the line speed of the line to which each node is connected. Specifically, the lower the line speed of the connected line, the greater the number of divisions of the transmission data. By doing so, compared with the case where the transmission data is divided into a fixed number of divisions (FIG. 10), the transmission time of the divided data to a node with a slower line speed of the connected line can be shortened, and the start of data transmission to the next node can also be accelerated. That is, since data can be transmitted to more nodes from an earlier time zone, the time required for data transmission can be shortened.

[0040] Note that, in FIGS. 4 to 5B, the control unit 11 has described an example in which the number of divisions is determined so that the transmission time of the divided data to be transmitted to each node is constant. However, the present disclosure is not limited to this. In short, the control unit 11 may increase the number of divisions of the transmission data for nodes with a lower line speed of the connected line.

[0041] Referring to FIG. 2 again, the control unit 11 creates a communication schedule so that the divided data obtained by dividing the transmission data according to the determined number of divisions is sequentially transmitted to each node (step S14). FIG. 6 is a flowchart showing the process of step S14 in more detail.

[0042] The control unit 11 schedules data transmission from the source node (node #1) to the destination node (node #2) with the fastest line speed among the connected lines (step S141). That is, as shown in FIG. 7A, in the first step, the control unit 11 schedules the transmission of data (undivided transmission data) from node #1 to node #2.

[0043] Next, the control unit 11 determines whether there is a destination node for which reception of all data (the entire transmission data) has not been completed (step S142). In the first step shown in FIG. 7A, since nodes #3 to #5 have not received the data, the control unit 11 determines that there is a destination node for which reception of all data has not been completed.

[0044] When it is determined that there is a destination node for which reception of all data has not been completed (step S142: Yes), the control unit 11 determines a transmission-enabled node and schedules data transmission from the transmission-enabled node to the destination node (step S143). Here, the control unit 11 determines a node that has received data even if it is a part of the source node and the transmission data as a transmission-enabled node. In the example shown in FIG. 7A, in the first step, node #2 has received the data (the reception of the data transmitted from node #1 is scheduled), so the control unit 11 determines node #1 and node #2, which are the source nodes, as transmission-enabled nodes.

[0045] The control unit 11 schedules the transmission of unsent segmented data to the same destination node as in the previous step for any transmittable nodes that have not yet sent all segmented data to the destination node to which data was sent in the previous step (condition A). Furthermore, for transmittable nodes that have not sent data in the previous step, or that have sent all segmented data to the destination node to which data was sent in the previous step, the control unit 11 schedules the transmission of segmented data to the destination node with the fastest connection speed among destination nodes that have not yet received any data (condition B). Note that even if a transmittable node exists, the control unit 11 will not use it for data transmission if there are no destination nodes that meet the above conditions A or B.

[0046] As described above, in the second step, node #1, which is the source node, and node #2, which is receiving data from node #1, become transmittable nodes. Of the transmittable nodes, node #1 is the node that has sent all of the divided data to the destination node to which it sent data in the previous step. Therefore, in accordance with condition B, as shown in Figure 7B, in the second step, node #1 schedules the transmission of the divided data (#3 1 / 4) to node #3, which is the destination node with the fastest connection speed among the destination nodes that have not yet received any data.

[0047] Furthermore, among the transmittable nodes, node #2 is a node that did not transmit data in the previous step. Therefore, in accordance with condition B, as shown in Figure 7B, in the second step, the control unit 11 schedules node #2 to send the divided data (#4 1 / 10) to node #4, which is the destination node with the fastest connection speed among the destination nodes that have not yet received any data.

[0048] Referring again to Figure 6, after the processing in step S143, the control unit 11 returns to the processing in step S142. At the end of the second step, nodes #3 to Node 5 have not yet finished receiving all the transmitted data, so the control unit 11 proceeds to the processing in step S143 and performs scheduling in the third step.

[0049] In the third step, the transmittable nodes are node #1, node #2, node #3, and node #4. Of the transmittable nodes, node #1 is a node that has not yet sent all of its divided data to the destination node to which it sent data in the previous step. Therefore, in accordance with condition A, the control unit 11 schedules node #1 to send the divided data (#3 2 / 4) to node #3, which is the same destination node as in the previous step, as shown in Figure 7C. Similarly, node #2 is a node that has not yet sent all of its divided data to the destination node to which it sent data in the previous step. Therefore, in accordance with condition A, the control unit 11 schedules node #2 to send the divided data (#3 2 / 4) to node #3, which is the same destination node as in the previous step, as shown in Figure 7C.

[0050] Furthermore, among the transmittable nodes, node #3 is a node that did not transmit data in the previous step. Therefore, in accordance with condition B, as shown in Figure 7C, in the third step, the control unit 11 schedules node #3 to transmit the divided data (#5 1 / 10) to node #5, which is the destination node with the fastest connection speed among the destination nodes that have not yet received any data. Note that node #4 is a node that did not transmit data in the previous step, but since there are no destination nodes that meet conditions A and B, the control unit 11 does not schedule data transmission for node #4.

[0051] At the end of the third step, since nodes #3 to Node 5 have not yet finished receiving all the transmission data, the control unit 11 proceeds to step S143 and performs scheduling in the fourth step. The same process is repeated thereafter, and as shown in Figure 7D, a communication schedule is created in which the transmission of transmission data (divided data) to all destination nodes is scheduled.

[0052] If the control unit 11 determines that all destination nodes have received all the data (step S142: No), it terminates the process.

[0053] We compare a communication schedule created by uniformly dividing the transmitted data (Figure 10) with a communication schedule created by dividing the transmitted data in a number of divisions corresponding to the line speed of the line to which the node is connected (Figure 7D), as in this embodiment.

[0054] In the communication schedule shown in Figure 10, data transmission from node #2, which is connected to the high-speed line (100 Gbps), to node #3, which is connected to the low-speed line (25 Gbps), takes a significant amount of time (30 ms).

[0055] On the other hand, in the communication schedule shown in Figure 7D, the segmented data sent to nodes connected to the low-speed line is segmented more finely than the segmented data sent to nodes connected to the high-speed line. Specifically, the data to be sent to node #3, which is connected to the 25Gbps line, is segmented into four parts, and the data to be sent to nodes #4 and #5, which are connected to the 10Gbps line, is segmented into ten parts. This makes it possible to shorten the transmission time for one segment of data to node #3, which is connected to the low-speed line, compared to the communication schedule shown in Figure 10. As a result, the start of data transmission to the next node (node ​​#5) can be accelerated. Consequently, in the communication schedule shown in Figure 7D, the time required to complete the transmission of data to all destination nodes can be reduced from 125ms to 120ms compared to the communication schedule shown in Figure 10.

[0056] As described above, the control device 10 according to this embodiment includes a control unit 11. The control unit 11 creates a communication schedule to transmit data from one node to all other nodes by repeatedly transferring the data received by a node to other nodes. Specifically, for each node, the control unit 11 determines the number of divisions to which the transmitted data will be divided into multiple divided data, according to the line speed of the line to which the node is connected, and creates a communication schedule so that the divided data, divided according to the determined number of divisions, is sequentially transmitted to each node. Here, the control unit 11 increases the number of divisions of the transmitted data for nodes with slower line speeds.

[0057] By doing this, compared to dividing the transmitted data into a fixed number of segments, the transmission time of segmented data to nodes with slower connection speeds can be shortened, and the start of data transmission to the next node can also be accelerated. In other words, data can be transmitted to more nodes from an earlier time, thus reducing the time required for data transmission.

[0058] Furthermore, the control method according to this embodiment, which divides the transmitted data into multiple divided data sets according to the line speed and transmits them to each node, may be used in combination with a method of dividing the transmitted data into a fixed number of divisions. That is, after dividing the transmitted data according to the line speed so that the transmission time of the divided data to each node is constant, all nodes may be further divided into the same number of divisions. By doing so, the transmission of received data to other nodes can be started earlier, and as a result, the time required to transmit data to all nodes can be further reduced.

[0059] In this embodiment, the example of determining the number of divisions to divide the transmitted data into multiple divided data so that the transmission time of the divided data to each node is constant was used for the explanation. On the other hand, referring to Figure 7D, the data transmission from node #1 to node #3 is performed by continuously transmitting data as 1 / 4, 2 / 4, 3 / 4, 4 / 4, and so on. Similarly, the data transmission from node #2 to node #4, and the data transmission from node #3 to node #5 are also performed by continuously transmitting data as 1 / 10, 2 / 10, ..., 10 / 10, and so on. In other words, in this embodiment, it is not necessarily required to divide and transmit the data from the start to the end of data transmission.

[0060] Therefore, the key point of this disclosure lies in determining the timing for initiating data transmission. In other words, the key point of this disclosure is to determine the time difference between the start of reception and the start of transmission based on the line speed of each node when receiving data from one node and transmitting data to a different node. For example, when transmitting data from node #1 to node #3, and then transmitting data from node #3 (which received the data) to another node (e.g., node #5), the control unit 11 does not transmit the data after receiving all the data as shown in Figure 9, but rather schedules to start transmitting data to node #5 at the time when the amount of data to be received at the reference time, i.e., when node #3 has completed receiving 1 / 4 of the total data.

[0061] In other words, the control unit 11 can create a communication schedule based on the line speed of the line to which each of the multiple nodes is connected, such that the time difference between when each of the multiple nodes begins receiving at least a portion of the data transmitted from the source node and when it begins transmitting the received data to other nodes remains constant. By doing so, nodes connected to low-speed lines can also begin transmitting the received data to other nodes without waiting to receive the entire transmitted data, thereby reducing the time required for data transmission.

[0062] The following additional information is disclosed regarding the embodiments described above.

[0063] [Addendum 1] A control device for controlling communication between a plurality of nodes in a communication network including a plurality of nodes capable of unicast communication, comprising a control unit configured to create a communication schedule in which data transmitted from one of the plurality of nodes is transmitted to all other nodes by repeated forwarding of the data received by a node to other nodes, wherein the control unit acquires the line speed of the line to which each of the plurality of nodes is connected, and creates the communication schedule based on the line speed of the line to which each of the plurality of nodes is connected, such that the time difference from when each of the plurality of nodes starts receiving at least a portion of the transmitted data until when it starts transmitting the received data to other nodes is constant.

[0064] [Addendum 2] A control device as described in Addendum 1, wherein the control unit determines, for each node, the number of divisions to divide the transmission data into multiple divided data according to the line speed of the line to which the node is connected, creates a communication schedule so that the divided data obtained by dividing the transmission data according to the determined number of divisions is sequentially transmitted to each node, and the number of divisions of the transmission data is increased for nodes with slower line speeds of the line to which they are connected.

[0065] [Appendix 3] In the control device described in Appendix 2, the control unit determines the number of divisions of the transmitted data so that the transmission time of the divided data to each node is constant.

[0066] [Appendix 4] A control device according to Appendix 2 or 3, wherein the control unit creates the communication schedule prioritizing the transmission and reception nodes with the highest line speed.

[0067] [Appendix 5] A control method performed by a control device that controls communication between a plurality of nodes in a communication network including a plurality of nodes capable of unicast communication, comprising: creating a communication schedule that transmits data from one of the plurality of nodes to all other nodes by repeatedly transferring the data received by a node to other nodes, wherein creating the communication schedule includes: obtaining the line speed of the line to which each of the plurality of nodes is connected; and creating the communication schedule based on the line speed of the line to which each of the plurality of nodes is connected, such that the time difference between when each of the plurality of nodes begins to receive at least a portion of the data to transmit to other nodes is constant.

[0068] [Appendix 6] A non-temporary storage medium storing a program executable by a computer, the non-temporary storage medium storing a program that causes the computer to execute the control method described in any one of the appendix items 1 to 4.

[0069] Although the embodiments described above are representative examples, it will be apparent to those skilled in the art that many modifications and substitutions are possible within the spirit and scope of this disclosure. Therefore, the present invention should not be construed as being limited by the embodiments described above, and various modifications or changes are possible without departing from the claims. For example, it is possible to combine multiple component blocks shown in the configuration diagram of the embodiments into one, or to divide one component block.

[0070] 10 Control device 11 Control unit 12 Memory unit 13 Communication unit

Claims

1. A control device for controlling communication between a plurality of nodes in a communication network including a plurality of nodes capable of unicast communication, comprising a control unit that creates a communication schedule for transmitting data from one of the plurality of nodes to all other nodes by repeatedly transferring the data received by a node to other nodes, wherein the control unit obtains the line speed of the line to which each of the plurality of nodes is connected, and creates the communication schedule based on the line speed of the line to which each of the plurality of nodes is connected, such that the time difference between when each of the plurality of nodes begins to receive at least a portion of the transmitted data and when it begins to transmit the received data to other nodes is constant.

2. A control device according to claim 1, wherein the control unit determines, for each node, the number of divisions to divide the transmission data into a plurality of divided data according to the line speed of the line to which the node is connected, creates a communication schedule such that the divided data obtained by dividing the transmission data according to the determined number of divisions is sequentially transmitted to each node, and the number of divisions of the transmission data is increased for nodes with slower line speeds of the line to which they are connected.

3. A control device according to claim 2, wherein the control unit determines the number of divisions of the transmitted data so that the transmission time of the divided data to each node is constant.

4. A control method performed by a control device that controls communication between a plurality of nodes in a communication network including a plurality of nodes capable of unicast communication, comprising the steps of: creating a communication schedule that transmits data from one of the plurality of nodes to all other nodes by repeatedly transferring the data received by a node to other nodes; obtaining the line speed of the line to which each of the plurality of nodes is connected; and creating the communication schedule based on the line speed of the line to which each of the plurality of nodes is connected, such that the time difference between when each of the plurality of nodes begins to receive at least a portion of the data to be transmitted and when it begins to transmit the received data to other nodes is constant.