CN108667749B - Data scheduling method and device - Google Patents

Data scheduling method and device Download PDF

Info

Publication number
CN108667749B
CN108667749B CN201710193849.9A CN201710193849A CN108667749B CN 108667749 B CN108667749 B CN 108667749B CN 201710193849 A CN201710193849 A CN 201710193849A CN 108667749 B CN108667749 B CN 108667749B
Authority
CN
China
Prior art keywords
transmitted
data
determining
time slot
switch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710193849.9A
Other languages
Chinese (zh)
Other versions
CN108667749A (en
Inventor
陈怿
黄永成
黄勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710193849.9A priority Critical patent/CN108667749B/en
Publication of CN108667749A publication Critical patent/CN108667749A/en
Application granted granted Critical
Publication of CN108667749B publication Critical patent/CN108667749B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling

Abstract

The application provides a data scheduling method and device. The method comprises the following steps: determining a data transmission matrix according to a data transmission request sent by the network edge device received in the time window, wherein, the data transmission request includes the number of data packets to be transmitted, the identifier of the source network edge device and the identifier of the destination network edge device, the element in the data transmission matrix represents the number of data packets to be transmitted to other network edge devices by each network edge device, determining a first binary image corresponding to the data transmission matrix according to the data transmission matrix, and according to a dyeing algorithm, dyeing the first binary image, determining the number of time slots for transmitting the data packets to be transmitted and the information of the data packets to be transmitted in each time slot, according to the information of the data packet to be transmitted in each time slot in the first binary image, the transmission path of the data packet to be transmitted in each time slot is determined, and the data transmission efficiency and the real-time performance are improved.

Description

Data scheduling method and device
Technical Field
The present application relates to communications technologies, and in particular, to a data scheduling method and apparatus.
Background
The data center plays an important role in the development of the internet, and along with the development of the internet technology, the application of the data center is more and more extensive. Many interactive services and applications run inside the data center, and strict requirements are imposed on the transmission delay of data packets. How to realize a low-latency network is a problem which needs to be solved urgently at present. In the existing network, links have large capacity, so that the delay of the data packet from end to end transmission process is mainly attributed to queuing delay at intermediate nodes. In addition, the burst characteristic of the data stream also causes fluctuation of the queuing delay, thereby causing poor tail distribution of the overall delay. In fat-tree (fat-tree) networks, there are multiple equal-cost paths between every two hosts or every two edge switches to choose from. Multiple data packets may be transmitted on the same path, causing delay. Therefore, in order to reduce the delay, it is important how to select a transmission path after data enters the network.
The transmission path can be selected by adopting an Equal-cost multi-path (ECMP) mode based on the traditional method, and the specific process is as follows: analyzing the information of the data packet header, and processing the information of the data packet header by using a Hash function (Hash function) to obtain a processing result. And different processing results correspond to different transmission paths, and the data packet is transmitted on the corresponding transmission path according to the obtained processing result.
However, in the above process, it may happen that two data packets are processed by the hash function, and then the processing results are the same, and the two data packets are transmitted on the overlapped transmission path, which causes queuing delay and reduces the real-time performance of data transmission.
Disclosure of Invention
The application provides a data scheduling method and device to improve the real-time performance of data transmission.
In a first aspect, the present application provides a data scheduling method, including: determining a data transmission matrix according to a data transmission request of the network edge equipment acquired in a time window, wherein the data transmission request comprises the number of data packets to be transmitted, an identifier of source network edge equipment and an identifier of destination network edge equipment, and elements in the data transmission matrix represent the number of the data packets to be transmitted, which are transmitted to other network edge equipment, by each network edge equipment; determining a first binary image corresponding to the data transmission matrix according to the data transmission matrix, wherein each edge in the first binary image is used for indicating that a data packet to be transmitted exists from a source network edge device corresponding to a source node to a destination network edge device corresponding to a destination node; dyeing the first binary image according to a dyeing algorithm, and determining the number of time slots for transmitting the data packages to be transmitted and the information of the data packages to be transmitted in each time slot, wherein the information of the data packages to be transmitted in each time slot comprises the number of the data packages to be transmitted in each time slot and the transmission direction of the data packages to be transmitted in each time slot; and determining the transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary image. The data scheduling problem is converted into a coloring problem of a bipartite graph, the number of time slots of the data packages to be transmitted in the transmission time window and the information of the data packages to be transmitted in each time slot are determined according to a coloring result, then, the transmission path of the data packages transmitted in each time slot is determined, the number of the time slots required by all the data packages to be transmitted in the transmission time window is a theoretical limit value, and when the data packages are transmitted according to the determined transmission path, compared with a mode of determining the transmission path according to a Hash function, the queuing delay of each data package is zero, so that the efficiency and the real-time performance of data transmission are improved.
In a possible design of the first aspect, determining a first binary map corresponding to the data transmission matrix according to the data transmission matrix includes: dividing network edge equipment corresponding to each row in the data transmission matrix into source nodes; dividing network edge equipment corresponding to each column in the data transmission matrix into destination nodes; and determining the number of edges between the source node and the destination node according to the sizes of the elements in the data transmission matrix. In the process of determining the first binary image, the method is simple to implement and high in efficiency.
In a possible design of the first aspect, when the network edge device is a host, dyeing the first binary image according to a dyeing algorithm, and determining the number of time slots for transmitting the data packets to be transmitted and information of the data packets to be transmitted in each time slot, includes: according to a dyeing algorithm, determining the number of all colors of edges in the first binary image and the number of the edges in the same color, determining the number of all colors as the number of time slots for transmitting the data packets to be transmitted, determining the number of the edges in the same color as the number of the data packets to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges in the same color as the transmission direction of the data packets to be transmitted in each time slot.
In a possible design of the first aspect, determining a transmission path of a data packet to be transmitted in each time slot according to information of the data packet to be transmitted in each time slot in the first binary map includes: dividing different hosts under the control of the same edge switch in the first bipartite graph into nodes, and determining a second bipartite graph according to information of a data packet to be transmitted in each time slot in the first bipartite graph and the divided nodes; dyeing the second bipartite graph by adopting a dyeing algorithm; determining a first transmission path of a data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the second bipartite graph; and determining a second transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
In the two implementation modes, when the network edge device is the host, the number of the time slots for transmitting the data packets to be transmitted and the path of the data packets to be transmitted in each time slot are determined, and the efficiency and the real-time performance of data transmission are improved.
In a possible design of the first aspect, when the network edge device is an edge switch, dyeing the first binary image according to a dyeing algorithm, and determining the number of time slots for transmitting the data packets to be transmitted and information of the data packets to be transmitted in each time slot, includes: determining the number of all colors of edges in the first binary image and the number of the edges in the same color according to a dyeing algorithm, dividing the number of all colors by a value obtained by rounding n upwards to determine the number of time slots for transmitting data packets to be transmitted, determining the number of the edges in at most n colors as the number of the data packets to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges in at most n colors as the transmission direction of the data packets to be transmitted in each time slot; wherein n represents the element number of the fat tree network to which the data scheduling method is applied.
In a possible design of the first aspect, determining a transmission path of a data packet to be transmitted in each time slot according to information of the data packet to be transmitted in each time slot in the first binary map includes: determining a third bipartite graph according to the information of the data packet to be transmitted in each time slot in the first bipartite graph and the color of the edge in the first bipartite graph; determining a third transmission path of the data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the third bipartite graph; and determining a fourth transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
In the two implementation modes, when the network edge device is an edge switch, the number of the time slots for transmitting the data packets to be transmitted and the path of the data packets to be transmitted in each time slot are determined, and the efficiency and the real-time performance of data transmission are improved.
In a second aspect, the present application provides a data scheduling apparatus, including: the first determining module is used for determining a data transmission matrix according to the data transmission request of the network edge equipment acquired in the time window; the data transmission request comprises the number of data packets to be transmitted, the identifier of the source network edge device and the identifier of the destination network edge device, and elements in the data transmission matrix represent the number of the data packets to be transmitted, which are transmitted to other network edge devices, by each network edge device; the second determining module is used for determining a first binary image corresponding to the data transmission matrix according to the data transmission matrix; each edge in the first binary image is used for indicating that a data packet to be transmitted exists from a source network edge device corresponding to a source node to a destination network edge device corresponding to a destination node; the third determining module is used for dyeing the first binary image according to a dyeing algorithm, and determining the number of time slots for transmitting the data packets to be transmitted and the information of the data packets to be transmitted in each time slot; the information of the data package to be transmitted in each time slot comprises the number of the data packages to be transmitted in each time slot and the transmission direction of the data packages to be transmitted in each time slot; and the fourth determining module is used for determining the transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary image.
In a possible design of the second aspect, the second determining module is specifically configured to: dividing network edge equipment corresponding to each row in the data transmission matrix into source nodes; dividing network edge equipment corresponding to each column in the data transmission matrix into destination nodes; and determining the number of edges between the source node and the destination node according to the sizes of the elements in the data transmission matrix.
In a possible design of the second aspect, when the network edge device is a host, the third determining module is specifically configured to: according to a dyeing algorithm, determining the number of all colors of edges in the first binary image and the number of the edges in the same color, determining the number of all colors as the number of time slots for transmitting the data packets to be transmitted, determining the number of the edges in the same color as the number of the data packets to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges in the same color as the transmission direction of the data packets to be transmitted in each time slot.
In a possible design of the second aspect, the fourth determining module is specifically configured to: dividing different hosts under the control of the same edge switch in the first bipartite graph into nodes, and determining a second bipartite graph according to information of a data packet to be transmitted in each time slot in the first bipartite graph and the divided nodes; dyeing the second bipartite graph by adopting a dyeing algorithm; determining a first transmission path of a data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the second bipartite graph; and determining a second transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
In a possible design of the second aspect, when the network edge device is an edge switch, the third determining module is specifically configured to: determining the number of all colors of edges in the first binary image and the number of the edges in the same color according to a dyeing algorithm, dividing the number of all colors by a value obtained by rounding n upwards to determine the number of time slots for transmitting data packets to be transmitted, determining the number of the edges in at most n colors as the number of the data packets to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges in at most n colors as the transmission direction of the data packets to be transmitted in each time slot; where n represents the number of elements of the fat tree network in which the data scheduler is located.
In a possible design of the second aspect, the fourth determining module is specifically configured to: determining a third bipartite graph according to the information of the data packet to be transmitted in each time slot in the first bipartite graph and the color of the edge in the first bipartite graph; determining a third transmission path of the data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the third bipartite graph; and determining a fourth transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
In a third aspect, the present application provides a data scheduling apparatus, including: a memory and a processor. The memory is used for storing executable instructions of the processor. When the program of the data scheduling method runs, the processor communicates with the memory, and the processor calls the executable instructions to execute the following operations: determining a data transmission matrix according to a data transmission request of the network edge equipment acquired in a time window; the data transmission request comprises the number of data packets to be transmitted, the identifier of the source network edge device and the identifier of the destination network edge device, and elements in the data transmission matrix represent the number of the data packets to be transmitted, which are transmitted to other network edge devices, by each network edge device; determining a first binary image corresponding to the data transmission matrix according to the data transmission matrix; each edge in the first binary image is used for indicating that a data packet to be transmitted exists from a source network edge device corresponding to a source node to a destination network edge device corresponding to a destination node; dyeing the first binary image according to a dyeing algorithm, and determining the number of time slots for transmitting the data packets to be transmitted and the information of the data packets to be transmitted in each time slot; the information of the data package to be transmitted in each time slot comprises the number of the data packages to be transmitted in each time slot and the transmission direction of the data packages to be transmitted in each time slot; and determining the transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary image.
In one possible design of the third aspect, in determining the first binary corresponding to the data transmission matrix according to the data transmission matrix, the processor is specifically configured to: dividing network edge equipment corresponding to each row in the data transmission matrix into source nodes; dividing network edge equipment corresponding to each column in the data transmission matrix into destination nodes; and determining the number of edges between the source node and the destination node according to the sizes of the elements in the data transmission matrix.
In a possible design of the third aspect, when the network edge device is a host, in the aspect of dyeing the first binary image according to a dyeing algorithm and determining the number of time slots for transmitting the data packets to be transmitted and information of the data packets to be transmitted in each time slot, the processor is specifically configured to: according to a dyeing algorithm, determining the number of all colors of edges in the first binary image and the number of the edges in the same color, determining the number of all colors as the number of time slots for transmitting the data packets to be transmitted, determining the number of the edges in the same color as the number of the data packets to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges in the same color as the transmission direction of the data packets to be transmitted in each time slot.
In a possible design of the third aspect, in determining a transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary map, the processor is specifically configured to: dividing different hosts under the control of the same edge switch in the first bipartite graph into nodes, and determining a second bipartite graph according to information of a data packet to be transmitted in each time slot in the first bipartite graph and the divided nodes; dyeing the second bipartite graph by adopting a dyeing algorithm; determining a first transmission path of a data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the second bipartite graph; and determining a second transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
In a possible design of the third aspect, when the network edge device is an edge switch, in the aspect of dyeing the first binary image according to a dyeing algorithm and determining the number of time slots for transmitting the data packet to be transmitted and information of the data packet to be transmitted in each time slot, the processor is specifically configured to: determining the number of all colors of edges in the first binary image and the number of the edges in the same color according to a dyeing algorithm, dividing the number of all colors by a value obtained by rounding n upwards to determine the number of time slots for transmitting data packets to be transmitted, determining the number of the edges in at most n colors as the number of the data packets to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges in at most n colors as the transmission direction of the data packets to be transmitted in each time slot; where n represents the number of elements of the fat tree network in which the data scheduler is located.
In a possible design of the third aspect, in determining a transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary map, the processor is specifically configured to: determining a third bipartite graph according to the information of the data packet to be transmitted in each time slot in the first bipartite graph and the color of the edge in the first bipartite graph; determining a third transmission path of the data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the third bipartite graph; and determining a fourth transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
In a fourth aspect, the present application provides a readable storage medium containing an execution instruction, and when the execution instruction is executed by at least one processor of a data scheduling apparatus, the data scheduling apparatus is configured to execute the data scheduling method provided by the first aspect or various embodiments of the first aspect.
In a fifth aspect, the present application provides a program product comprising execution instructions stored in a computer-readable storage medium. The computer executable instructions may be read from a readable storage medium by at least one processor of the data scheduling apparatus, and execution of the executable instructions by the at least one processor causes the data scheduling apparatus to implement the data scheduling method provided by the first aspect or various embodiments of the first aspect.
Drawings
Fig. 1 is a schematic diagram of an application scenario of a data scheduling method provided in the present application;
fig. 2 is a schematic flowchart of an embodiment of a data scheduling method provided in the present application;
FIG. 3A is a schematic diagram of a network architecture according to the embodiment shown in FIG. 2;
FIG. 3B is a diagram of a data transmission matrix according to the embodiment shown in FIG. 2;
FIG. 3C is a first binary diagram corresponding to the data transmission matrix in FIG. 3B;
FIG. 3D is a bipartite graph obtained after dyeing the first bipartite graph of FIG. 3C;
FIG. 3E is the number of packets to be transmitted during the first time period of FIG. 3D;
FIG. 3F is a process for determining a second bipartite graph according to FIG. 3E;
FIG. 3G is a bipartite graph obtained by staining the second bipartite graph in FIG. 3F;
FIG. 3H is a diagram of a transmission path corresponding to FIG. 3G;
fig. 4 is a schematic structural diagram of a first data scheduling apparatus according to an embodiment of the present application;
fig. 5 is a schematic structural diagram of a second data scheduling apparatus according to an embodiment of the present application.
Detailed Description
The data scheduling method is applied to the data center of which the network topology is a fat tree network. The data scheduling method may be performed by a scheduler in the data center. Fig. 1 is a schematic diagram of an application scenario of a data scheduling method provided in the present application. The data scheduling method provided by the application can be applied to the network shown in fig. 1. The network is a 3-element fat tree network, which is a 3-layer network frameworkStructure: the first layer is a Core Switch (Core Switch), the second layer is an Aggregation Switch (Aggregation Switch), and the third layer is an Edge Switch (Edge Switch). The core switch is connected with the aggregation switch, and the aggregation switch is connected with the edge switch. The 3-element means that the network comprises 3 groups of core switches, each group of core switches comprises 3 core switches, including 2 x 3 groups (pod) of next-level switches, each group of next-level switches comprises 3 aggregation switches and 3 edge switches, and each edge switch is connected with 3 hosts (host). The rules for the connections between hosts, edge switches, aggregation switches, and central switches are shown in figure 1. The scheduler may control the core switches, aggregation switches, and edge switches. It can be understood that the data scheduling method provided by the present application can be applied to an n-ary fat tree network. At this time, the number of central exchanges in the network is n2The number of the aggregation switch and the edge switch is 2n, and the number of the aggregation switch and the edge switch is 2n2The number of hosts that this network can support is 2n3. In the fat tree network, there are two transmission modes of the data packets: one is from host to host: namely, the source host sends the data packet to the destination host through the network; one is from edge switch to edge switch: i.e. the source edge switch sends the data packet to the destination edge switch over the network. Hosts and edge switches are collectively referred to herein as network edge devices. In both data transfer modes, different transmission paths are available from the source network edge device to the destination network edge device. In addition, the fat tree network uses a time division multiplexing transmission mode, and a data packet may need to be transmitted through a plurality of time slots. During a time window, multiple data packets may need to be transmitted from different source network edge devices to different destination network edge devices. How to complete the transmission of the data packets within the time window in the least time slots and how to let the data packets not generate queuing delay in the transmission process is very important for the scheduler to improve the efficiency and real-time performance of data transmission.
The data scheduling method determines a data transmission matrix according to a data transmission request sent by network edge equipment received in a time window, wherein the data transmission request comprises the number of data packets to be transmitted, an identifier of source network edge equipment and an identifier of destination network edge equipment, elements in the data transmission matrix represent the number of data packets to be transmitted by each network edge equipment to other network edge equipment, a first binary diagram corresponding to the data transmission matrix is determined according to the data transmission matrix, wherein each edge in the first binary diagram is used for indicating that the destination network edge equipment corresponding to the source node from the source network edge equipment corresponding to the source node to the destination node has one data packet to be transmitted, the first binary diagram is dyed according to a dyeing algorithm, the number of time slots for transmitting the data packets to be transmitted and information of the data packets to be transmitted in each time slot are determined, the information of the data package to be transmitted in each time slot comprises the number of the data package to be transmitted in each time slot and the transmission direction of the data package to be transmitted in each time slot, the transmission path of the data package to be transmitted in each time slot is determined according to the information of the data package to be transmitted in each time slot in the first binary image, the data scheduling problem is converted into the coloring problem of the binary image, the number of the time slots of the data package to be transmitted in the transmission time window and the information of the data package to be transmitted in each time slot are determined according to the coloring result, then the transmission path of the data package to be transmitted in each time slot is determined, the number of the time slots required by all the data packages to be transmitted in the transmission time window is a theoretical limit value, and when the data package is transmitted according to the determined transmission path, the queuing delay of each data package is zero compared with the mode of determining the transmission path according to a hash function, therefore, the efficiency and the real-time performance of data transmission are improved.
The technical solution of the present application will be described in detail below with specific examples. The following several specific embodiments may be combined with each other, and details of the same or similar concepts or processes may not be repeated in some embodiments.
Fig. 2 is a schematic flowchart of an embodiment of a data scheduling method provided in the present application. As shown in fig. 2, the data scheduling method provided by the present application includes the following steps:
s201: and determining a data transmission matrix according to the data transmission request of the network edge equipment acquired in the time window.
The data transmission request comprises the number of data packets to be transmitted, the identifier of the source network edge device and the identifier of the destination network edge device, and the elements in the data transmission matrix represent the number of the data packets to be transmitted, which are to be transmitted to other network edge devices, by each network edge device.
Specifically, a network edge device in this application refers to an edge switch or host in a fat tree network. The time window refers to a preset period of time. And the data center completes transmission of the data packet in the preset time period in at least one time slot, namely, the scheduler performs unified scheduling on the data transmission request in the time window.
The scheduler has two implementations to obtain the data transmission request:
the first realization mode is as follows: the scheduler monitors each network edge device at a preset frequency. When the network edge device has a data transmission requirement, the number of data packets to be transmitted by the network edge device in the time window, the identifier of the source network edge device and the identifier of the destination network edge device are obtained. That is, the scheduler actively obtains the data transmission request of the network edge device.
The second implementation manner is as follows: when the network edge device has a data transmission requirement, the network edge device sends the number of the data packets to be transmitted, the identifier of the source network edge device and the identifier of the destination network edge device to the scheduler. That is, the scheduler passively acquires the data transmission request of the network edge device.
The identifier of the source network edge device and the identifier of the destination network edge device in this application may be an Internet Protocol (IP) address, a Media Access Control (MAC) address of the network edge device, or a unique identifier of the network edge device in the fat tree network.
The specific process for determining the data transmission matrix comprises the following steps: using data transmission momentsEach row in the matrix represents a source network edge device and each column in the data transmission matrix represents a destination network edge device. The network edge devices may be numbered according to preset rules, for example, in fig. 1, from left to right, the hosts are numbered as: 1-54, numbering edge switches as: 1-18. It should be noted that the number of the data packets to be transmitted may be written to a corresponding position in the data transmission matrix according to a correspondence between the identifier of the network edge device in the data transmission request and the number of the network edge device. The network transmission matrix corresponding to the network in fig. 1 is 54 × 54 dimensions. When the network is an n-element network, the data transmission matrix is 2n3*2n3A matrix of dimensions. The m-th row represents a vector of the number of packets that the m-th network edge needs to send to other network edge devices. The m-th column represents a vector of the number of packets that the m-th network edge device will receive from other network edge devices. The element Rij in the data transmission matrix represents the number of data packets to be transmitted by the ith network edge device to the jth network edge device. i and j are integers of 1 or more. For example, when Rij is 0, it indicates that the ith network device has no data packet to transmit to the jth network device. It is understood that the element ri in the data transmission matrix is 0.
Fig. 3A is a schematic diagram of a network structure in the embodiment shown in fig. 2. As shown in fig. 3A, the network structure is a 2-element fat tree network. It includes 2 central switches of group, includes 2 central switches in every group central switch, including 4 groups aggregation switch and edge switch, has 2 aggregation switch and 2 edge switches in every group, including 16 hosts. Assuming left to right in FIG. 3A, the hosts are numbered as: 1-16, the numbering of the edge switches is: 1-8. The network edge device in fig. 3A is the host. FIG. 3B is a diagram illustrating a data transmission matrix according to the embodiment shown in FIG. 2. As shown in FIG. 3B, the element "2" in the first column of the third row indicates that the 3 rd host has 2 packets to transmit to the 1 st host.
S202: and determining a first binary image corresponding to the data transmission matrix according to the data transmission matrix.
Each edge in the first binary image is used for indicating that a data packet to be transmitted exists from the source network edge device corresponding to the source node to the destination network edge device corresponding to the destination node.
Specifically, after the data transmission matrix is determined, a first binary map is determined from the matrix. Thus, the data scheduling problem is converted into the coloring problem of the bipartite graph.
The specific determination process is as follows: dividing network edge equipment corresponding to each row in the data transmission matrix into source nodes; dividing network edge equipment corresponding to each column in the data transmission matrix into destination nodes; and determining the number of edges between the source node and the destination node according to the sizes of the elements in the data transmission matrix. Fig. 3C is a first binary diagram corresponding to the data transmission matrix in fig. 3B. As shown in fig. 3C, the first binary graph includes two types of nodes, where the node in the first row is the source node and the node in the second row is the destination node. The number of edges between the source node and the destination node indicates how many data packets to be transmitted are transmitted from the source network edge device indicated by the source node to the destination network edge device indicated by the destination node, that is, the number of edges can be determined according to the size of the element at the corresponding position in the data transmission matrix. Referring to fig. 3B and fig. 3C, for example, an element of a first row and a second column in the data transmission matrix is 1, which indicates that a first network edge device has a data packet to be transmitted to a second network edge device, and then there is an edge between a first source node in the first row and a second destination node in the second row in fig. 3C; an element in the sixth row and the third column in the data transmission matrix is 2, that is, it indicates that the sixth network edge device has two data packets to be transmitted, which need to be transmitted to the third network edge device, and then there are two edges between the sixth source node in the first row and the third destination node in the second row in fig. 3C; and so on, the data transmission matrix can be converted into the first binary image.
S203: and dyeing the first binary image according to a dyeing algorithm, and determining the number of time slots for transmitting the data packets to be transmitted and the information of the data packets to be transmitted in each time slot.
The information of the data packets to be transmitted in each time slot includes the number of the data packets to be transmitted in each time slot and the transmission direction of the data packets to be transmitted in each time slot.
Specifically, after the first binary image is determined, the first binary image is stained using a staining algorithm. The principle of the coloring algorithm is that the colors of the edges having the same end point are different and the number of colors used by the edges of the first histogram is the least.
When the network edge device is the host: after dyeing, determining the number of all colors of the edges in the first binary image and the number of the edges in the same color, determining the number of all colors as the number of time slots for transmitting the data packets to be transmitted, determining the number of the edges in the same color as the number of the data packets to be transmitted in each time slot, and taking the direction from the source node to the destination node of the edges in the same color as the transmission direction of the data packets to be transmitted in each time slot.
FIG. 3D is a bipartite graph obtained by staining the first bipartite graph in FIG. 3C. As shown in fig. 3D, after dyeing, the edges in this first bipartite graph have three colors: green, red and blue. The number of time slots for transmitting the data packets to be transmitted in the time window is 3, that is, the data packets to be transmitted in the time window can be completely transmitted in three time slots. That is, in the first histogram after dyeing, different colors represent different time slots. The number of green edges is 10, which means that the number of data packets to be transmitted in the time slot is 10; the number of red edges is 11, which means that the number of data packets to be transmitted in the time slot is 11; the number of blue edges is 13, which means that the number of data packets to be transmitted in the time slot is 13.
When the network edge equipment is an edge switch, determining the number of all colors of edges in the first binary graph and the number of the edges in the same color according to a dyeing algorithm, dividing the number of all colors by a value obtained by rounding n upwards to determine the number of time slots for transmitting the data packets to be transmitted, determining the number of the edges with more than n colors as the number of the data packets to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges with more than n colors as the transmission direction of the data packets to be transmitted in each time slot. Wherein n represents the element number of the fat tree network to which the data scheduling method is applied.
In the present application, rounding up means that when the value of the number of all colors divided by n is 3.3, the rounded value is 4. When the network edge device is an edge switch, each edge switch can transmit n data packets in one time slot, so after the number of all colors is determined, the number of the data packets needs to be divided by n and rounded up, and the number of the data packets needs to be used as the number of the time slots for transmitting all data packets to be transmitted by the network. In each time slot, only the number of data packets represented by the number of edges of n colors can be transmitted at most. For example, when the number of colors dyed for the first histogram is 7 and the fat tree network is a 3-element network, the number of time slots required is: 7/3, rounded up to 3, needs 3 time slots to transmit the number of packets of 7 colors, which may be 3 time slots to transmit 2, and 3 color packets, or 1, 3, and 3 color packets. I.e. the number of colors transmitted in each time slot cannot exceed n at most, but can be less than n.
After determining the information of the data packet to be transmitted in each time slot, the transmission path of the data packet to be transmitted in each time slot needs to be calculated, so as to realize that the queuing delay of each data packet is zero.
S204: and determining the transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary image.
Specifically, when the transmission path is determined, the transmission path of the data packet to be transmitted in each time slot may be determined according to the information of the data packet to be transmitted in each time slot in the first binary image.
It should be noted that, if the number of time slots of all data packets in the transmission time window is determined in S203, the data to be transmitted in which color or the time slots represented by which color is transmitted in which time slot of the data center may be determined randomly. In other words, taking fig. 3D as an example, in the next time slot of the data center, whether to transmit the data to be transmitted in the time slot represented by red or the time slot represented by green or the time slot represented by blue first or the time slot represented by blue can be randomly determined.
The process of determining the transmission path is different based on whether the network edge device is a host or an edge switch.
When the network edge equipment is a host, dividing different hosts under the control of the same edge switch in the first bipartite graph into a node, and determining a second bipartite graph according to information of a data packet to be transmitted in each time slot in the first bipartite graph and the divided node; dyeing the second bipartite graph by adopting a dyeing algorithm; determining a first transmission path of a data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the second bipartite graph; and determining a second transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
Dividing different hosts under the control of the same edge switch into a node, if the node is a 2-element fat tree network, dividing a first node and a second node into a new first node, and dividing a third node and a fourth node into a new second node, … …, until a 15 th node and a 16 th node are divided into a new eighth node. It should be noted that the above process is performed for both the source node and the destination node. Next, the above-described procedure will be described by taking an example of determining a transmission path of a data packet to be transmitted in a time slot indicated by red. Fig. 3E shows the number of data packets to be transmitted in the first time period in fig. 3D. As shown in fig. 3E, the number of data packets to be transmitted in the timeslot is 11. And determining a second bipartite graph according to the information of the data packet to be transmitted in each time slot in the first bipartite graph and the divided nodes. FIG. 3F is a process for determining a second bipartite graph according to FIG. 3E. In fig. 3F, a diagram a shows the process of repartitioning the nodes and a diagram b shows the second bipartite graph determined. It should be noted that, after the first bipartite graph is dyed by using the dyeing algorithm, a plurality of colors exist, and finally, a corresponding number of second bipartite graphs can be determined. And then, dyeing the second bipartite graph by adopting a dyeing algorithm. The mapping of the edge's color to the aggregation switches may be predetermined, e.g., orange to the second aggregation switch in a pod and blue to the first aggregation switch in a pod. A first transmission path from the edge switch to the aggregation switch of the data packet to be transmitted in each time slot can be determined according to the mapping relation and the color of the edge in the second bipartite graph. Then, it is necessary to determine a transmission path from the aggregation switch to the central switch, and a mapping relationship between a data source in the aggregation switch and the central switch may be predetermined, for example, if the data source in the aggregation switch is a first edge switch in the pod, the data source in the aggregation switch corresponds to a second core switch, and if the data source in the aggregation switch is a second edge switch in the pod, the data source in the aggregation switch corresponds to the first core switch. In a specific implementation, the determination may be made by way of permutation.
FIG. 3G is a bipartite graph obtained by staining the second bipartite graph in FIG. 3F. Fig. 3H is a schematic diagram of a transmission path corresponding to fig. 3G. Referring to fig. 3G and fig. 3H, taking the determination of the transmission path between the second host and the sixth host as an example, the transmission path between the second host 1 and the edge switch in the uplink transmission is uniquely determined, and is the edge switch 00 in the first pod. And when the transmission path from the edge switch to the convergence switch is determined, determining according to the color in the dyed second bipartite graph. In fig. 3G, it can be seen that the color of the edge between the second host and the sixth host is orange, and assuming that it corresponds to the second aggregation switch 01 in the first pod, the first transmission path at this time is from 00-01. Next, the transmission path from the aggregation switch to the central switch needs to be determined. The data source in the aggregation switch 01 is the first edge switch 00, which corresponds to the second core switch 11, and the second transmission path is the slave 01-11 at this time. Then, the path from the core switch to the sixth host may be determined according to the address information in the packet to be transmitted. The finally determined transmission path is as shown by path 1 in fig. 3H. Path 2 in fig. 3H represents a transmission path from the fourth host to the eleventh host. Path 3 in fig. 3H represents a transmission path from the 3 rd host to the 5 th host. When determining the path from the aggregation switch to the core switch, a specific implementation process is as follows: the paths from the aggregation switches to the core switches are selected according to the permutation. For example, the arrangement is (1, 0), and as can be seen in the red path shown in fig. 3H, the aggregation switch 01 selects the core switch 11 corresponding to the first digit, i.e., 1, in the arrangement according to the data from the edge switch 00. For the green path, data is from edge switch 01, and the core switch 10 corresponding to the second digit in the permutation, i.e., 0, is selected.
When the network edge equipment is an edge switch, determining a third bipartite graph according to the information of the data packet to be transmitted in each time slot in the first bipartite graph and the color of the edge in the first bipartite graph; determining a third transmission path of the data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the third bipartite graph; and determining a fourth transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch. This process is substantially similar to the process when the network edge device is the master, except that: when the network edge device is an edge switch, the steps of node division and dyeing of the third bipartite graph are not needed, but the third bipartite graph is determined directly according to the information of the data packets to be transmitted in each time slot in the first bipartite graph and the colors of the edges in the first bipartite graph, namely, according to different colors in the first bipartite graph, the third bipartite graph is formed, wherein the number of the third bipartite graph is equal to the number of the data packets to be transmitted in each time slot, which is obtained by dividing the number of all colors in the first bipartite graph by the value of n, and the third bipartite graph has at most n colors, namely, the data packets represented by the number of the edges of the at most n colors are the data packets to be transmitted in each time slot.
After the first transmission path and the second transmission path are determined, the scheduler sends the transmission paths to the edge switch and the aggregation switch, or the scheduler directly schedules data according to the transmission paths.
A Global Packing Number (GPN) is defined herein, which represents the minimum Number of slots that a path system can achieve. Assuming that the data streams traversing the same link are assigned different time slots, the minimum number of time slots required in total is the global packing number.
When the data transmission mode is from the host to the host, the global encapsulation number is:
Figure BDA0001256881210000101
wherein, | HnI denotes the total number of hosts, AijRepresenting the element in the ith row and the jth column of the data transfer matrix. That is, the global number of packages is: in the data transmission matrix a, the elements of each row are summed, then the maximum number is determined, the maximum number is determined by summing the elements of each column, the larger number is determined from the two maximum numbers as the global packing number, that is, the global packing number is the maximum value of the sum of the elements of all rows and the maximum value of the sum of the elements of all columns.
When the data transmission mode is from the edge switch to the edge switch, the global encapsulation number is:
Figure BDA0001256881210000111
wherein, | εkL represents the total number of edge switches. n represents the number of elements of the fat tree network. And dividing the finally determined maximum number by n to obtain a number which is rounded to be the global packaging number.
According to the data scheduling method, the finally determined time slot number is the global encapsulation number, and therefore the transmission efficiency of the data scheduling method is high.
The data scheduling method determines a data transmission matrix according to a data transmission request sent by network edge equipment received in a time window, wherein the data transmission request comprises the number of data packets to be transmitted, an identifier of source network edge equipment and an identifier of destination network edge equipment, elements in the data transmission matrix represent the number of data packets to be transmitted by each network edge equipment to other network edge equipment, a first binary diagram corresponding to the data transmission matrix is determined according to the data transmission matrix, wherein each edge in the first binary diagram is used for indicating that the destination network edge equipment corresponding to the source node from the source network edge equipment corresponding to the source node to the destination node has one data packet to be transmitted, the first binary diagram is dyed according to a dyeing algorithm, the number of time slots for transmitting the data packets to be transmitted and information of the data packets to be transmitted in each time slot are determined, the information of the data package to be transmitted in each time slot comprises the number of the data package to be transmitted in each time slot and the transmission direction of the data package to be transmitted in each time slot, the transmission path of the data package to be transmitted in each time slot is determined according to the information of the data package to be transmitted in each time slot in the first binary image, the data scheduling problem is converted into the coloring problem of the binary image, the number of the time slots of the data package to be transmitted in the transmission time window and the information of the data package to be transmitted in each time slot are determined according to the coloring result, then the transmission path of the data package to be transmitted in each time slot is determined, the number of the time slots required by all the data packages to be transmitted in the transmission time window is a theoretical limit value, and when the data package is transmitted according to the determined transmission path, the queuing delay of each data package is zero compared with the mode of determining the transmission path according to a hash function, therefore, the efficiency and the real-time performance of data transmission are improved.
Fig. 4 is a schematic structural diagram of a first data scheduling apparatus according to an embodiment of the present application. As shown in fig. 4, the data scheduling apparatus provided in the present application includes the following modules:
the first determining module 41 is configured to determine a data transmission matrix according to the data transmission request of the network edge device acquired in the time window.
The data transmission request comprises the number of data packets to be transmitted, the identifier of the source network edge device and the identifier of the destination network edge device, and the elements in the data transmission matrix represent the number of the data packets to be transmitted, which are to be transmitted to other network edge devices, by each network edge device.
And a second determining module 42, configured to determine, according to the data transmission matrix, a first binary corresponding to the data transmission matrix.
Each edge in the first binary image is used for indicating that a data packet to be transmitted exists from the source network edge device corresponding to the source node to the destination network edge device corresponding to the destination node.
Optionally, the second determining module 42 is specifically configured to: dividing network edge equipment corresponding to each row in the data transmission matrix into source nodes; dividing network edge equipment corresponding to each column in the data transmission matrix into destination nodes; and determining the number of edges between the source node and the destination node according to the sizes of the elements in the data transmission matrix.
The third determining module 43 is configured to dye the first binary image according to a dyeing algorithm, and determine the number of time slots for transmitting the data packets to be transmitted and information of the data packets to be transmitted in each time slot.
The information of the data packets to be transmitted in each time slot includes the number of the data packets to be transmitted in each time slot and the transmission direction of the data packets to be transmitted in each time slot.
A fourth determining module 44, configured to determine a transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary image.
Optionally, when the network edge device is a host, the third determining module 43 is specifically configured to: according to a dyeing algorithm, determining the number of all colors of edges in the first binary image and the number of the edges in the same color, determining the number of all colors as the number of time slots for transmitting the data packets to be transmitted, determining the number of the edges in the same color as the number of the data packets to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges in the same color as the transmission direction of the data packets to be transmitted in each time slot. The fourth determination module 44 is specifically configured to: dividing different hosts under the control of the same edge switch in the first bipartite graph into nodes, and determining a second bipartite graph according to information of a data packet to be transmitted in each time slot in the first bipartite graph and the divided nodes; dyeing the second bipartite graph by adopting a dyeing algorithm; determining a first transmission path of a data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the second bipartite graph; and determining a second transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
Optionally, when the network edge device is an edge switch, the third determining module 43 is specifically configured to: according to a dyeing algorithm, determining the number of all colors of edges in a first binary graph and the number of the edges in the same color, dividing the number of all colors by a value obtained by rounding n upwards to determine the number of time slots for transmitting data packets to be transmitted, determining the number of the edges in at most n colors as the number of the data packets to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges in at most n colors as the transmission direction of the data packets to be transmitted in each time slot. Where n represents the number of elements of the fat tree network in which the data scheduler is located. The fourth determination module 44 is specifically configured to: determining a third bipartite graph according to the information of the data packet to be transmitted in each time slot in the first bipartite graph and the color of the edge in the first bipartite graph; determining a third transmission path of the data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the third bipartite graph; and determining a fourth transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
The data scheduling apparatus provided in the present application may be specifically configured to execute the data scheduling method provided in the embodiment shown in fig. 2, and the implementation process and the technical principle thereof are similar and will not be described herein again.
The data scheduling apparatus provided by the application, by setting a first determining module, configured to determine a data transmission matrix according to a data transmission request sent by a network edge device received within a time window, where the data transmission request includes a number of data packets to be transmitted, an identifier of a source network edge device, and an identifier of a destination network edge device, and an element in the data transmission matrix indicates a number of data packets to be transmitted by each network edge device to other network edge devices, a second determining module, configured to determine a first binary diagram corresponding to the data transmission matrix according to the data transmission matrix, where each edge in the first binary diagram is used to indicate that there is one data packet to be transmitted from the source network edge device corresponding to the source node to the destination network edge device corresponding to the destination node, and a third determining module, configured to perform a coloring algorithm, the method comprises the steps of dyeing a first binary image, determining the number of time slots for transmitting data packages to be transmitted and the information of the data packages to be transmitted in each time slot, wherein the information of the data packages to be transmitted in each time slot comprises the number of the data packages to be transmitted in each time slot and the transmission direction of the data packages to be transmitted in each time slot, determining a transmission path of the data packages to be transmitted in each time slot according to the information of the data packages to be transmitted in each time slot in the first binary image, converting a data scheduling problem into a dyeing problem of the binary image, determining the number of the time slots for transmitting the data packages in a transmission time window and the information of the data packages to be transmitted in each time slot according to a dyed result, then determining the transmission path of the data packages to be transmitted in each time slot, and realizing that the number of the time slots required by transmitting all the data packages to be transmitted in the time window is theoretical, and when the data packets are transmitted according to the determined transmission path, compared with a mode of determining the transmission path according to the hash function, the queuing time delay of each data packet is zero, so that the efficiency and the real-time property of data transmission are improved.
Fig. 5 is a schematic structural diagram of a second data scheduling apparatus according to an embodiment of the present application. As shown in fig. 5, the data scheduling apparatus provided in the present application includes the following modules: a memory 51 and a processor 52. The memory 51 is used for storing executable instructions of the processor 52.
Processor 52 may be a Central Processing Unit (CPU), or an Application Specific Integrated Circuit (ASIC), or one or more Integrated circuits that perform the present Application. When the program of the data scheduling method is running, the processor 52 communicates with the memory 51, and the processor 52 calls the executable instructions for performing the following operations:
determining a data transmission matrix according to a data transmission request of the network edge equipment acquired in a time window, wherein the data transmission request comprises the number of data packets to be transmitted, an identifier of source network edge equipment and an identifier of destination network edge equipment, and elements in the data transmission matrix represent the number of the data packets to be transmitted, which are transmitted to other network edge equipment, by each network edge equipment; determining a first binary image corresponding to the data transmission matrix according to the data transmission matrix, wherein each edge in the first binary image is used for indicating that a data packet to be transmitted exists from a source network edge device corresponding to a source node to a destination network edge device corresponding to a destination node; dyeing the first binary image according to a dyeing algorithm, and determining the number of time slots for transmitting the data packages to be transmitted and the information of the data packages to be transmitted in each time slot, wherein the information of the data packages to be transmitted in each time slot comprises the number of the data packages to be transmitted in each time slot and the transmission direction of the data packages to be transmitted in each time slot; and determining the transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary image.
Optionally, in an aspect of determining the first binary map corresponding to the data transmission matrix according to the data transmission matrix, the processor 52 is specifically configured to: dividing network edge equipment corresponding to each row in the data transmission matrix into source nodes; dividing network edge equipment corresponding to each column in the data transmission matrix into destination nodes; and determining the number of edges between the source node and the destination node according to the sizes of the elements in the data transmission matrix.
Optionally, when the network edge device is the host, in terms of dyeing the first binary image according to the dyeing algorithm, and determining the number of time slots for transmitting the data packets to be transmitted and information of the data packets to be transmitted in each time slot, the processor 52 is specifically configured to: according to a dyeing algorithm, determining the number of all colors of edges in the first binary image and the number of the edges in the same color, determining the number of all colors as the number of time slots for transmitting the data packets to be transmitted, determining the number of the edges in the same color as the number of the data packets to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges in the same color as the transmission direction of the data packets to be transmitted in each time slot. In determining a transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary image, the processor 52 is specifically configured to: dividing different hosts under the control of the same edge switch in the first bipartite graph into nodes, and determining a second bipartite graph according to information of a data packet to be transmitted in each time slot in the first bipartite graph and the divided nodes; dyeing the second bipartite graph by adopting a dyeing algorithm; determining a first transmission path of a data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the second bipartite graph; and determining a second transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
Optionally, when the network edge device is an edge switch, in terms of dyeing the first binary image according to a dyeing algorithm, and determining the number of time slots for transmitting the data packets to be transmitted and information of the data packets to be transmitted in each time slot, the processor 52 is specifically configured to: according to a coloring algorithm, determining the number of all colors of edges in a first binary graph and the number of the edges of the same color, dividing the number of all colors by a value obtained by rounding n upwards to determine the number of time slots for transmitting data packets to be transmitted, determining the number of the edges of at most n colors as the number of the data packets to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges of at most n colors as the transmission direction of the data packets to be transmitted in each time slot, wherein n represents the element number of a fat tree network where a data scheduling device is located. In determining a transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary image, the processor 52 is specifically configured to: determining a third bipartite graph according to the information of the data packet to be transmitted in each time slot in the first bipartite graph and the color of the edge in the first bipartite graph; determining a third transmission path of the data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the third bipartite graph; and determining a fourth transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
The data scheduling apparatus provided in the present application may be specifically configured to execute the data scheduling method provided in the embodiment shown in fig. 2, and the implementation process, the technical principle, and the technical effect thereof are similar and will not be described herein again.
The present application further provides a readable storage medium containing an execution instruction, and when at least one processor of the data scheduling apparatus executes the execution instruction, the data scheduling apparatus is configured to execute the data scheduling method provided in the embodiment shown in fig. 2.
The present application also provides a program product comprising execution instructions stored in a computer-readable storage medium. The computer executable instructions may be read from a readable storage medium by at least one processor of the data scheduling apparatus, and the execution of the instructions by the at least one processor causes the data scheduling apparatus to implement the data scheduling method provided by the embodiment shown in fig. 2.
Those of ordinary skill in the art will understand that: all or a portion of the steps of implementing the above-described method embodiments may be performed by hardware associated with program instructions. The program may be stored in a computer-readable storage medium. When executed, the program performs steps comprising the method embodiments described above; and the aforementioned storage medium includes: various media that can store program codes, such as ROM, RAM, magnetic or optical disks.

Claims (13)

1. A method for scheduling data, comprising:
determining a data transmission matrix according to a data transmission request of the network edge equipment acquired in a time window; the data transmission request comprises the number of data packets to be transmitted, the identifier of source network edge equipment and the identifier of destination network edge equipment, and elements in the data transmission matrix represent the number of the data packets to be transmitted, which are transmitted to other network edge equipment by each network edge equipment;
determining a first binary image corresponding to the data transmission matrix according to the data transmission matrix; each edge in the first binary image is used for indicating that a data packet to be transmitted exists from a source network edge device corresponding to a source node to a destination network edge device corresponding to a destination node;
according to a dyeing algorithm, dyeing the first binary image, and determining the number of time slots for transmitting the data packets to be transmitted and the information of the data packets to be transmitted in each time slot; the information of the data packets to be transmitted in each time slot comprises the number of the data packets to be transmitted in each time slot and the transmission direction of the data packets to be transmitted in each time slot;
and determining the transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary image.
2. The method of claim 1, wherein the determining the first bitmap corresponding to the data transmission matrix according to the data transmission matrix comprises:
dividing network edge equipment corresponding to each row in the data transmission matrix into source nodes;
dividing network edge equipment corresponding to each column in the data transmission matrix into destination nodes;
and determining the number of edges between the source and the destination node according to the sizes of the elements in the data transmission matrix.
3. The method of claim 2, wherein when the network edge device is a host, the determining the number of time slots for transmitting the data packets to be transmitted and the information of the data packets to be transmitted in each time slot according to the coloring algorithm by coloring the first binary map comprises:
determining the number of all colors of the edges in the first binary image and the number of the edges in the same color according to a dyeing algorithm, determining the number of all colors as the number of time slots for transmitting the data packets to be transmitted, determining the number of the edges in the same color as the number of the data packets to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges in the same color as the transmission direction of the data packets to be transmitted in each time slot.
4. The method of claim 3, wherein determining the transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary map comprises:
dividing different hosts under the control of the same edge switch in the first bipartite graph into nodes, and determining a second bipartite graph according to information of a data packet to be transmitted in each time slot in the first bipartite graph and the divided nodes;
dyeing the second bipartite graph by adopting a dyeing algorithm;
determining a first transmission path of a data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the second bipartite graph;
and determining a second transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
5. The method of claim 2, wherein when the network edge device is an edge switch, the determining the number of time slots for transmitting the data packets to be transmitted and the information of the data packets to be transmitted in each time slot according to the coloring algorithm by coloring the first binary map comprises:
determining the number of all colors of edges in the first binary image and the number of the edges in the same color according to a coloring algorithm, dividing the number of all colors by a value obtained by rounding n upwards to determine the number of time slots for transmitting the data package to be transmitted, determining the number of the edges in at most n colors as the number of the data package to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges in at most n colors as the transmission direction of the data package to be transmitted in each time slot; wherein n represents the element number of the fat tree network to which the data scheduling method is applied.
6. The method of claim 5, wherein determining the transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary map comprises:
determining a third bipartite graph according to the information of the data packet to be transmitted in each time slot in the first bipartite graph and the color of the edge in the first bipartite graph;
determining a third transmission path from the edge switch to the convergence switch of the data packet to be transmitted in each time slot according to the mapping relation between the color of the edge and the convergence switch and the color of the edge in the third bipartite graph;
and determining a fourth transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
7. A data scheduling apparatus, comprising:
the first determining module is used for determining a data transmission matrix according to the data transmission request of the network edge equipment acquired in the time window; the data transmission request comprises the number of data packets to be transmitted, the identifier of source network edge equipment and the identifier of destination network edge equipment, and elements in the data transmission matrix represent the number of the data packets to be transmitted, which are transmitted to other network edge equipment by each network edge equipment;
the second determining module is used for determining a first binary image corresponding to the data transmission matrix according to the data transmission matrix; each edge in the first binary image is used for indicating that a data packet to be transmitted exists from a source network edge device corresponding to a source node to a destination network edge device corresponding to a destination node;
the third determining module is used for dyeing the first binary image according to a dyeing algorithm, and determining the number of time slots for transmitting the data packets to be transmitted and the information of the data packets to be transmitted in each time slot; the information of the data packets to be transmitted in each time slot comprises the number of the data packets to be transmitted in each time slot and the transmission direction of the data packets to be transmitted in each time slot;
and the fourth determining module is used for determining the transmission path of the data packet to be transmitted in each time slot according to the information of the data packet to be transmitted in each time slot in the first binary image.
8. The apparatus of claim 7, wherein the second determining module is specifically configured to:
dividing network edge equipment corresponding to each row in the data transmission matrix into source nodes;
dividing network edge equipment corresponding to each column in the data transmission matrix into destination nodes;
and determining the number of edges between the source and the destination node according to the sizes of the elements in the data transmission matrix.
9. The apparatus of claim 8, wherein when the network edge device is a host, the third determining module is specifically configured to:
determining the number of all colors of the edges in the first binary image and the number of the edges in the same color according to a dyeing algorithm, determining the number of all colors as the number of time slots for transmitting the data packets to be transmitted, determining the number of the edges in the same color as the number of the data packets to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges in the same color as the transmission direction of the data packets to be transmitted in each time slot.
10. The apparatus of claim 9, wherein the fourth determining module is specifically configured to:
dividing different hosts under the control of the same edge switch in the first bipartite graph into nodes, and determining a second bipartite graph according to information of a data packet to be transmitted in each time slot in the first bipartite graph and the divided nodes;
dyeing the second bipartite graph by adopting a dyeing algorithm;
determining a first transmission path of a data packet to be transmitted from the edge switch to the aggregation switch in each time slot according to the mapping relation between the color of the edge and the aggregation switch and the color of the edge in the second bipartite graph;
and determining a second transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
11. The apparatus of claim 8, wherein when the network edge device is an edge switch, the third determining module is specifically configured to:
determining the number of all colors of edges in the first binary image and the number of the edges in the same color according to a coloring algorithm, dividing the number of all colors by a value obtained by rounding n upwards to determine the number of time slots for transmitting the data package to be transmitted, determining the number of the edges in at most n colors as the number of the data package to be transmitted in each time slot, and taking the direction from a source node to a destination node of the edges in at most n colors as the transmission direction of the data package to be transmitted in each time slot; wherein n represents the number of elements of the fat tree network in which the data scheduling apparatus is located.
12. The apparatus of claim 11, wherein the fourth determining module is specifically configured to:
determining a third bipartite graph according to the information of the data packet to be transmitted in each time slot in the first bipartite graph and the color of the edge in the first bipartite graph;
determining a third transmission path from the edge switch to the convergence switch of the data packet to be transmitted in each time slot according to the mapping relation between the color of the edge and the convergence switch and the color of the edge in the third bipartite graph;
and determining a fourth transmission path of the data packet to be transmitted in each time slot from the aggregation switch to the central switch according to the mapping relation between the data source in the aggregation switch and the central switch and the data source in the aggregation switch.
13. A readable storage medium containing executable instructions, wherein when the executable instructions are executed by at least one processor of a data scheduling apparatus, the data scheduling apparatus is configured to perform the data scheduling method according to any one of claims 1 to 6.
CN201710193849.9A 2017-03-28 2017-03-28 Data scheduling method and device Active CN108667749B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710193849.9A CN108667749B (en) 2017-03-28 2017-03-28 Data scheduling method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710193849.9A CN108667749B (en) 2017-03-28 2017-03-28 Data scheduling method and device

Publications (2)

Publication Number Publication Date
CN108667749A CN108667749A (en) 2018-10-16
CN108667749B true CN108667749B (en) 2021-08-03

Family

ID=63786698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710193849.9A Active CN108667749B (en) 2017-03-28 2017-03-28 Data scheduling method and device

Country Status (1)

Country Link
CN (1) CN108667749B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450809B (en) * 2018-11-27 2021-10-15 华中科技大学 Data center scheduling system and method
CN114124845B (en) * 2021-11-30 2024-03-19 新华三半导体技术有限公司 BD scheduling method and device
CN116112438B (en) * 2023-03-07 2023-07-07 华腾数云(北京)科技有限公司 End-to-end data transmission method and system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016123510A1 (en) * 2015-01-30 2016-08-04 Altiostar Networks, Inc. Distributed uplink coordinated multipoint transmission via symmetric two-stage equalization

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8619566B2 (en) * 2008-10-14 2013-12-31 Tadeusz H. Szymanski Delay and jitter limited wireless mesh network scheduling

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016123510A1 (en) * 2015-01-30 2016-08-04 Altiostar Networks, Inc. Distributed uplink coordinated multipoint transmission via symmetric two-stage equalization

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Coloring edges;Peeter;《https://research.cyber.ee/~peeter/teaching/graafid08s/loeng10comp.pdf》;20081031;全文 *
Edge coloring of bipartite graphs with constraints;Ioannis Caragiannis 等;《www.elsevier.com/locate/tcs》;20021231;全文 *

Also Published As

Publication number Publication date
CN108667749A (en) 2018-10-16

Similar Documents

Publication Publication Date Title
US9246810B2 (en) Hash-based load balancing with per-hop seeding
US8964752B2 (en) Method and system for flow table lookup parallelization in a software defined networking (SDN) system
EP3949293A1 (en) Slice-based routing
CN108667749B (en) Data scheduling method and device
JP6366291B2 (en) Method, system, compute node, and computer program for all-to-all message exchange in a parallel computing system (all-to-all message exchange in a parallel computing system)
CN111147372B (en) Downlink message sending and forwarding method and device
US20120230194A1 (en) Hash-Based Load Balancing in Large Multi-Hop Networks with Randomized Seed Selection
Cheng et al. Application-aware SDN routing for big data networking
KR20140059160A (en) Next hop computation functions for equal cost multi-path packet switching networks
CN106331018B (en) SDN network detecting host method and system based on load balancing
US9509613B1 (en) Mechanisms for deadlock avoidance support in network fabrics
US20120287946A1 (en) Hash-Based Load Balancing with Flow Identifier Remapping
Roig et al. Modelling a leaf and spine topology for VM migration in Fog computing
US9705740B2 (en) Using unified API to program both servers and fabric for forwarding for fine-grained network optimizations
CN105337860B (en) A kind of the determination method, apparatus and system of data packet transmission path
WO2016095142A1 (en) Data forwarding method, device and system in software-defined networking (sdn)
WO2017084228A1 (en) Method for managing traffic item in software-defined networking
AlShammari et al. BL‐Hybrid: A graph‐theoretic approach to improving software‐defined networking‐based data center network performance
CN113395183B (en) Virtual node scheduling method and system for network simulation platform VLAN interconnection
US10644996B2 (en) Route determining method and apparatus, and communications device
CN114298431A (en) Network path selection method, device, equipment and storage medium
WO2014094524A1 (en) System and method for finding partially disjoint paths for spare capacity allocation in shared backup path protection for dual fiber cuts
Tsai et al. StarCube: An on-demand and cost-effective framework for cloud data center networks with performance guarantee
CN110945844A (en) Method and device for distributing message
CN106712983B (en) OAM message processing method and device for operation, management and maintenance

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant