Scheduling method, scheduling device, electronic equipment and storage medium

文档序号:156091 发布日期:2021-10-26 浏览:16次 中文

阅读说明:本技术 调度方法、装置、电子设备和存储介质 (Scheduling method, scheduling device, electronic equipment and storage medium ) 是由 闫付龙 谢崇进 于 2021-05-27 设计创作,主要内容包括:本申请实施例提供了调度方法、装置、电子设备和存储介质。所述方法的实施例包括:获取网络集群中的各节点的缓存状态信息;基于缓存状态信息生成调度信息,调度信息用于对各节点向光交换机传输光分组的操作进行调度;将调度信息发送至各节点,以使各节点基于调度信息向光交换机传输光分组;基于调度信息配置光交换机,以使光交换机转发所接收到的光分组。该实施方式通过调度解决了光分组交换冲突的问题,提高了负载较大时网络性能。(The embodiment of the application provides a scheduling method, a scheduling device, electronic equipment and a storage medium. An embodiment of the method comprises: obtaining cache state information of each node in a network cluster; generating scheduling information based on the cache state information, wherein the scheduling information is used for scheduling the operation of transmitting the optical packet to the optical switch by each node; sending the scheduling information to each node so that each node transmits the optical packet to the optical switch based on the scheduling information; the optical switch is configured based on the scheduling information to cause the optical switch to forward the received optical packet. The implementation mode solves the problem of optical packet switching conflict through scheduling, and improves the network performance when the load is larger.)

1. A method of scheduling, the method comprising:

obtaining cache state information of each node in a network cluster;

generating scheduling information based on the cache state information, wherein the scheduling information is used for scheduling the operation of transmitting the optical packet to the optical switch by each node;

sending the scheduling information to each node so that each node transmits an optical packet to the optical switch based on the scheduling information;

configuring the optical switch based on the scheduling information to cause the optical switch to forward the received optical packet.

2. The method of claim 1, wherein generating scheduling information based on the buffer status information comprises:

generating a cache state matrix based on the cache state information;

determining a scheduling period based on the cache state matrix;

and generating scheduling information based on the cache state matrix and the scheduling period.

3. The method according to claim 2, wherein the network cluster includes N nodes, each node has N buffer queues for buffering optical packets to be sent to the N nodes in the network cluster, where N is a positive integer;

generating a cache state matrix based on the cache state information includes:

and generating an N multiplied by N cache state matrix based on the length of each cache queue of each node in the network cluster.

4. The method according to claim 3, wherein the N nodes in the network cluster are divided into p node groups, each node group includes F nodes, each node includes p transmitters, the p transmitters are in one-to-one correspondence with the p node groups, and each transmitter of each node has F buffer queues for buffering optical packets to be sent to the F nodes of the corresponding node group;

the generating a cache state matrix based on the obtained cache state information further includes:

converting the N × N buffer status matrix into p × p F × F buffer status matrices based on the length of the F buffer queues in each transmitter of each node in the network cluster.

5. The method according to claim 4, wherein the optical switch comprises p modules, and the p modules are in one-to-one correspondence with the p node groups, and each module is configured to process an optical packet transmitted by each node in the corresponding node group.

6. The method of claim 2, wherein determining the scheduling period based on the buffer status matrix comprises:

determining the sum of the number of rows and the sum of the number of columns of the cache state matrix;

selecting a target row with the maximum sum of values and a target column with the maximum sum of values;

determining a scheduling period based on the values in the target row and the values in the target column.

7. The method of claim 2, wherein generating scheduling information based on the buffer status matrix and the scheduling period comprises:

decomposing the cache state matrix into at least one weighted expression of permutation matrices;

determining the time slot length corresponding to each permutation matrix based on the weight of each permutation matrix and the scheduling period;

generating scheduling information based on each permutation matrix and the time slot length corresponding to each permutation matrix;

wherein decomposing the cache state matrix into weighted expressions of at least one permutation matrix comprises:

normalizing the cache state matrix to obtain a secondary double random matrix;

converting the secondary double random matrix into a double random matrix;

decomposing the dual random matrix into weighted expressions of at least one permutation matrix.

8. A scheduling apparatus, the apparatus comprising:

an acquisition unit configured to acquire cache state information of each node in a network cluster;

a generating unit configured to generate scheduling information based on the buffer status information, the scheduling information being used for scheduling an operation of each node for transmitting an optical packet to an optical switch;

a transmitting unit configured to transmit the scheduling information to the nodes so that the nodes transmit optical packets to the optical switch based on the scheduling information;

a configuration unit configured to configure the optical switch based on the scheduling information to cause the optical switch to forward the received optical packet.

9. An electronic device, comprising:

a processor; and

memory having stored thereon executable code which, when executed, causes the processor to perform the method of one or more of claims 1-7.

10. One or more machine-readable media having executable code stored thereon that, when executed, causes a processor to perform the method of one or more of claims 1-7.

Technical Field

The embodiment of the application relates to the field of communication, and in particular, to a scheduling method, a scheduling device, an electronic device, and a storage medium.

Background

Optical Packet Switching (OPS) is a technology for performing communication in a Packet Switching manner in Optical communication. Among them, an Optical Packet (Optical Packet) may also be referred to as an Optical Packet, which is composed of an Optical Packet header and an Optical Packet payload. Optical packet switching is generally performed by an Optical Switch (Optical Switch).

In the prior art, an optical switch usually switches optical packets directly without scheduling, which easily causes optical packet switching collision. Although the retransmission mechanism can be used for retransmission of the optical packet when the optical packet switching collision occurs, the retransmission mechanism can only obtain better network performance when the load is lower, and when the load is further increased, the network performance will be rapidly deteriorated.

Disclosure of Invention

The embodiment of the application provides a scheduling method, a scheduling device, electronic equipment and a computer readable medium, so that the problem of optical packet switching conflict is solved through scheduling, and the network performance is improved when the load is large.

In a first aspect, an embodiment of the present application provides a scheduling method, including: obtaining cache state information of each node in a network cluster; generating scheduling information based on the cache state information, wherein the scheduling information is used for scheduling the operation of transmitting the optical packet to the optical switch by each node; sending the scheduling information to each node so that each node transmits an optical packet to the optical switch based on the scheduling information; configuring the optical switch based on the scheduling information to cause the optical switch to forward the received optical packet.

In a second aspect, an embodiment of the present application provides a scheduling method, including: an acquisition unit configured to acquire cache state information of each node in a network cluster; a generating unit configured to generate scheduling information based on the buffer status information, the scheduling information being used for scheduling an operation of each node for transmitting an optical packet to an optical switch; a transmitting unit configured to transmit the scheduling information to the nodes so that the nodes transmit optical packets to the optical switch based on the scheduling information; a configuration unit configured to configure the optical switch based on the scheduling information to cause the optical switch to forward the received optical packet.

In a third aspect, an embodiment of the present application further provides an electronic device, including: a processor; and a memory having executable code stored thereon, which when executed, causes the processor to perform a scheduling method as described in one or more of the embodiments of the present application.

In a fourth aspect, this application further provides one or more machine-readable media having executable code stored thereon, which when executed, causes a processor to perform a scheduling method as described in one or more of the embodiments of the application.

In the embodiment of the present application, the cache state information of each node in the network cluster is obtained, then, scheduling information for scheduling an operation of transmitting an optical packet to an optical switch by each node is generated based on the cache state information, finally, the scheduling information is sent to each node in the network cluster so that each node transmits the optical packet to the optical switch based on the scheduling information, and the optical switch is configured based on the scheduling scheme so that the optical switch forwards the received optical packet. Therefore, the transmission of the optical packet can be scheduled based on the buffer state of each node in the network cluster, and the problem of optical packet switching conflict is solved; meanwhile, compared with a retransmission mechanism, the dynamic change of the network state can be fully considered, and the network performance when the load is large is improved.

Drawings

Other features, objects and advantages of the present application will become more apparent upon reading of the following detailed description of non-limiting embodiments thereof, made with reference to the accompanying drawings in which:

FIG. 1 is an exemplary system architecture diagram in which one embodiment of the present application may be applied;

FIG. 2 is a flow chart of one embodiment of a scheduling method of the present application;

FIG. 3 is an exemplary system architecture diagram of a node in a network cluster in an embodiment of the present application;

fig. 4 is an exploded flowchart of a scheduling information generating step in the scheduling method of the present application;

fig. 5 is a schematic diagram illustrating a correspondence relationship between modules and node groups of an optical switch in an embodiment of the present application;

fig. 6 is an exemplary system architecture diagram of an optical switch in an embodiment of the present application;

fig. 7 is a schematic structural diagram of an embodiment of a scheduling apparatus of the present application.

Fig. 8 is a schematic structural diagram of an apparatus according to an embodiment of the present application.

Detailed Description

The present application will be described in further detail with reference to the following drawings and examples. It is to be understood that the specific embodiments described herein are merely illustrative of the relevant invention and not restrictive of the invention. It should be noted that, for convenience of description, only the portions related to the related invention are shown in the drawings.

It should be noted that the embodiments and features of the embodiments in the present application may be combined with each other without conflict. The present application will be described in detail below with reference to the embodiments with reference to the attached drawings.

The embodiment of the application can be applied to optical communication scenes. In this scenario, Optical communication may be implemented using Optical Packet Switching (OPS) technology. An Optical Packet (Optical Packet) may also be referred to as an Optical Packet, which consists of an Optical Packet header and an Optical Packet payload. The optical packet header contains information such as source address, destination address, lifetime, and lifetime. Optical packet switching is generally performed by an Optical Switch (Optical Switch), which is a device that performs data switching directly on Optical signal switching without undergoing electro-Optical-to-Optical conversion, and may include, but is not limited to, a Fast Optical Switch (Fast Optical Switch). The optical packet switching can improve the utilization rate of network bandwidth resources and enable the network to have good flexibility due to the dynamic sharing and statistics of the multiplexing bandwidth resources.

In an optical communication scenario, an optical switch usually forwards an optical packet directly, which is prone to generate an optical packet switching collision problem. For example, an input port of an optical switch may receive an optical packet sent by a node in a network cluster and transmit the optical packet to an output port. The output port may output the optical packet to a destination node in the network cluster. When a plurality of input ports of an optical switch transmit optical packets to the same output port at the same time, there is a situation that some optical packets cannot reach the output port, which causes optical packet switching collision. Although the retransmission mechanism may be used to retransmit the optical packet when the optical packet switching conflicts (that is, the controller of the optical switch sends flow control information to each node to notify each node whether the optical packet transmission fails or not, so that the node that failed in transmission retransmits the optical packet in the next time slot), the retransmission mechanism can only obtain better network performance when the load is lower, and when the load is further increased, the optical packet that needs to be retransmitted will be sharply increased, resulting in sharp deterioration of network performance.

The embodiment of the application schedules the transmission of the optical packet based on the cache state of each node in the network cluster, and the scheduling information can control each node to transmit the optical packet and instruct the configuration of the forwarding logic of the optical switch in a proper time slot, so that the problem of optical packet transmission conflict can be solved. Meanwhile, the dynamic change of the network state can be fully considered, and the network performance when the load is large is improved.

Fig. 1 shows an exemplary system architecture to which the scheduling method or scheduling apparatus of the present application may be applied. As shown in fig. 1, an exemplary system architecture includes a network cluster and an optical switch.

The Network cluster is a Data Center Network (DCN) cluster including a plurality of nodes (e.g., N nodes shown in fig. 1). The node may be a network device capable of optical communication with the optical Switch and capable of transmitting and receiving optical packets, such as may include, but is not limited to, a Top of Rack Switch (ToR), a server, and the like.

Links between each node in the network cluster and the optical switch can be realized by adopting a Wavelength Division Multiplexing (WDM) technology. Wavelength division multiplexing is a technique for simultaneously transmitting two or more optical signals of different wavelengths over the same physical link (e.g., an optical fiber). Through the wavelength division multiplexing technology, optical carrier signals with various wavelengths can be combined together at a sending end and coupled to the same physical link of an optical line for transmission. The optical carriers with various wavelengths are separated at the receiving end and then further processed, and the original signal can be recovered. Here, the same physical link may contain multiple wavelength channels, each wavelength channel being responsible for communicating with nodes within a node group. Taking fig. 1 as an example, three thick lines illustrate three wavelength channels of uplink communication between the node 1 in the node group 1 and the optical switch, where the three wavelength channels share the same physical link. The solid lines with points in fig. 1 respectively represent wavelength channels of downstream communication of the node 1 in the node group 1 with the remaining nodes. For simplicity of illustration, the wavelength channels of the remaining nodes are not shown in fig. 1.

A controller may be included in the optical switch. The controller may be configured to obtain cache state information of each node in the network cluster, and generate scheduling information based on the cache state information. The cache state information may be used to indicate a cache state of the node, and may include information such as a length of a cache queue in the node. The generated scheduling information may be used to schedule operations of each node in the network cluster to transmit the optical packet to the optical switch, and specifically, may be used to control a time slot and an order of transmitting the optical packet to the optical switch by each node, and content (for example, the optical packet with the node 1 as a destination node, the optical packet with the node 2 as a destination node, and the like) transmitted by each node to the optical switch in each time slot. For example, the scheduling information may control the node 1 to transmit the optical packet with the node 2 as the destination node to the optical switch at a first time slot and transmit the optical packet with the node 3 as the destination node to the optical switch at a second time slot, and the like.

The controller may communicate with each node in the network cluster to send scheduling information to the individual nodes to cause each node to transmit optical packets to the optical switch based on the scheduling information. In addition, the controller may also configure an optical packet forwarding logic of the optical switch according to the scheduling information, so that the optical switch can turn on a required link at each timeslot to forward the optical packet to the destination node.

In some scenarios, the optical switch may have a configuration interface in which the scheduling information generated by the controller may be displayed in real-time for viewing by the relevant personnel. In practice, the configuration interface may display scheduling information, and may also display other information such as cache state information of each node, configuration information of the optical switch, and the like, which is not limited herein.

It should be noted that the scheduling method provided in the embodiments of the present application is generally executed by a controller in an optical switch, and accordingly, the scheduling apparatus is generally disposed in the controller in the optical switch. It is to be understood that the controller in the switch may be external or replaced by an external device having a data processing function, and is not limited in particular herein.

It should be understood that the optical switches, wavelength channels, network clusters, and the number of nodes in a network cluster in fig. 1 are merely illustrative. There may be any number of optical switches, wavelength channels, network clusters, and nodes in a network cluster, as desired for implementation.

With continuing reference to FIG. 2, a flow diagram of one embodiment of a scheduling method of the present application is shown. The flow of the scheduling method comprises the following steps:

step 201, obtaining the cache state information of each node in the network cluster.

In this embodiment, an executing device (e.g., a controller in fig. 1) of the scheduling method may obtain cache state information of each node in the network cluster. The network cluster may be a data center network cluster, and the nodes in the network cluster may be network devices capable of performing optical communication with the optical switch and transmitting and receiving optical packets, such as a set-top switch, a server, and the like. The cache state information may be used to indicate the cache state of the node. For example, the buffer status information of each node may include the length of a buffer queue in the node, the destination node of the optical packet in the buffer queue, and the like. The buffer queue here may be a logical buffer queue.

In some optional implementations of this embodiment, the network cluster has N nodes in total, and each of the N nodes may serve as both a source node (i.e., a node that transmits an optical packet) and a destination node. At this time, each node may have N buffer queues. The N caches in each node correspond to the N nodes in the network cluster one to one, and are used for storing optical packets to be sent to the N nodes. Wherein N is a positive integer. At this time, the execution device may obtain the lengths of the N buffer queues of each node in the network cluster. If the length of a certain cache queue is not zero, it indicates that the cache queue has cached optical packets, and at least one optical packet needs to be sent to a node corresponding to the cache queue; if the length of a certain buffer queue is not zero, it indicates that no buffered optical packet exists in the buffer queue, and it is not necessary to transmit any optical packet to the node corresponding to the buffer queue.

In some optional implementations of this embodiment, as shown in fig. 1, N nodes in the network cluster may be divided into p node groups, and each node group may include F nodes, where N ═ p × F and p and F are both positive integers. Each node in the network cluster may contain p Transmitters (TX), which may correspond one-to-one to p node groups. Each transmitter of each node may have F buffer queues for buffering optical packets to be transmitted to F nodes in the node group to which the transmitter corresponds. The F buffer queues of each transmitter of each node may correspond to F nodes in the node group corresponding to the transmitter one to one. At this time, the execution device may obtain the lengths of the F buffer queues in each transmitter of each node in the network cluster.

As an example, fig. 3 shows an exemplary system architecture diagram of a node in a network cluster in an embodiment of the present application. The node illustrated in fig. 3 may be a set-top switch, which may include p transmitters, respectively denoted TX1,TX2,…,TXp. Each transmitter has F logical buffer queues, which correspond to F destination nodes, respectively. E.g. TX1With logical buffer queue LB1,LB2,…,LBF;TX2With logical buffer queue LBF+1,LBF+2,…,LB2F(ii) a By analogy, TXpWith logical buffer queue LBN-F+1,LBN-F+2,…,LBN. Thus, the node shares p × F ═ N logical buffer queues. The network cluster has N nodes, so the network cluster has N × N logic buffer queues. In addition, the node may also include a processor to perform basic data processing.

It will be appreciated that each node in the two examples above may also have only N-1 buffer queues, as each node need not be required to transmit optical packets by itself. Alternatively, there are N-1 variable-length buffer queues and one permanently zero-length buffer queue.

Step 202, generating scheduling information based on the buffer status information, where the scheduling information is used to schedule an operation of each node to transmit an optical packet to the optical switch.

In this embodiment, after obtaining the cache state information of each node, the execution device may generate the scheduling information based on the cache state information. The scheduling information may be used to schedule operations of each node to transmit the optical packet to the optical switch, and specifically may be used to control a time slot and an order of transmission of the optical packet by each node to the optical switch, and content of transmission of each node to the optical switch in each time slot (for example, an optical packet with node 1 as a destination node, an optical packet with node 2 as a destination node, and the like). For example, the scheduling information may control the node 1 to transmit the optical packet with the node 2 as the destination node to the optical switch at a first time slot and transmit the optical packet with the node 3 as the destination node to the optical switch at a second time slot, and the like.

Since the buffer status information may include information such as the length of the buffer queue and the destination node of the optical packet in the buffer queue, the transmission time slot of each optical packet in each buffer queue of each node may be determined on the basis that there is no signal with the same wavelength sent to the same destination node by two or more nodes at the same time, so as to obtain the scheduling information in a summary manner.

In some optional implementations of this embodiment, as shown in fig. 4, the executing device may generate the scheduling information through the following sub-steps S11 to S13:

in sub-step S11, a buffer status matrix is generated based on the buffer status information.

Here, the buffer status information of each node may include information such as the length of the buffer queue in the node and the destination node of the optical packet in the buffer queue, so that the number of optical packets to be sent to other nodes by each node may be known. The execution device may use each node in the network nodes as a sending end and a receiving end respectively to construct a cache state matrix. The value of an element in a row and a column of the buffer status matrix may indicate the number of optical packets to be transmitted from a transmitting end to a receiving end.

As an example, the network cluster includes N nodes, each node has N buffer queues for buffering optical packets to be sent to the N nodes in the network cluster, and an N × N buffer state matrix may be generated based on the length of each buffer queue of each node in the network cluster.

As yet another example, N nodes are included in the network cluster, each node contains p transmitters, each transmitter has F buffer queues, i.e., each node has p × F ═ N buffer queues in total. The N nodes are divided into p node groups, each node group comprises F nodes, and the p transmitters are in one-to-one correspondence with the p node groups. The F buffer queues of each transmitter of each node are used for buffering optical packets to be transmitted to the F nodes of the node group corresponding to the transmitter. At this time, an N × N buffer status matrix may be generated first, and then the N × N buffer status matrix may be converted into p × p F buffer status matrices based on the lengths of the F buffer queues in each transmitter of each node in the network cluster. Alternatively, the p × p F buffer status matrices may be obtained directly based on the length of the F buffer queues in each transmitter of each node in the network cluster.

By converting the N multiplied by N cache state matrix into p multiplied by p F cache state matrices, the complexity of a matrix decomposition algorithm can be simplified through parallel processing, and the generation speed of scheduling information is increased. In addition, when N is expanded, parallel processing can be performed by increasing the number p of transmitters so that the value of F is constant. Compared with the process of directly processing the N multiplied by N cache state matrix, the process can enable the generation speed of the scheduling information to be more advantageous.

And a sub-step S12 of determining a scheduling period based on the buffer status matrix.

Here, the larger the value in the buffer status matrix is, the more optical packets that the network node needs to transmit are, and the longer the scheduling period is. Thus, the scheduling period may be determined based on the magnitude of the values of the buffer status matrix.

Taking an N × N cache state matrix as an example, the sum of the number of rows and the number of columns of the cache state matrix may be determined first. The sum of the ith row number value can be recorded as Hi (1 is less than or equal to i and less than or equal to N), and the sum of the number values of each j column can be recorded as Cj (1 is less than or equal to i and less than or equal to N). Then, the target row with the maximum sum of values and the target column with the maximum sum of values are selected. Finally, a scheduling period (which may be denoted as T) may be determined based on the values in the target row and the target column, i.e. taking into account the influence of both the target row and the target column.

For example, T may be determined based on the sum of the values of the target row (which may be denoted as max (Hi)) and the sum of the values of the target column (which may be denoted as max (cj)), which may be denoted as f (max (Hi), max (cj)), where f is a function associated with max (Hi) and max (cj). The function may be chosen based on the network size and the optical packet length, such as f ═ ((max (hi) + (max (cj))/2.

And a substep S13 of generating scheduling information based on the buffer status matrix and the scheduling period.

Here, the execution device may obtain a plurality of permutation matrices by decomposing the buffer state matrix, and then determine a node to be scheduled for each time slot based on the permutation matrices and the scheduling cycle, thereby generating scheduling information for scheduling an operation of transmitting an optical packet to the optical switch by each node. Because only one element in the same row of the permutation matrix is 1 and only one element in the same column of the permutation matrix is 1, the node is guided to transmit the optical packet based on the numerical value in the permutation matrix, the condition that a plurality of transmitting terminals simultaneously transmit the optical packet to the same receiving terminal (target node) can be avoided, and therefore the conflict-free scheduling can be realized without a retransmission mechanism to solve the optical packet switching conflict.

Optionally, the scheduling information may be generated specifically according to the following steps:

in a first step, the cache state matrix is decomposed into weighted expressions of at least one permutation matrix.

Here, the buffer state matrix may be denoted as B, and the buffer state matrix B may be denoted as N × N size matrix, for example, B ═ Bi,j]N×N. Wherein, bijAnd the values of the elements in the ith row and the jth column in B are positive integers, wherein i and j are less than or equal to N. The N × N element values in the matrix may be specifically the length of the N × N buffer queues. bijAnd the length of a buffer queue corresponding to the node indicated by the j column in the nodes indicated by the ith row is represented, and the buffer queue is used for buffering the optical packet to be sent to the node indicated by the j column. Decomposing the buffer state matrix B to obtain K (K is a positive integer) permutation matrixes, and recording the K permutation matrixes as sigmakαkkAnd K is more than or equal to 1 and less than or equal to K. Wherein K is a positive integer greater than or equal to 1 and less than or equal to K, nkDenotes the k-th permutation matrix, αkRepresenting the weight of the k-th permutation matrix.

The operation of decomposing the cache state matrix into at least one weighted expression of the permutation matrix may be performed according to the following steps: first, the buffer status matrix B is set to [ B ═ Bi,j]N×NCarrying out normalization processing to obtain a secondary double random matrix (which can be recorded asWherein L is bi,jMaximum value of). Then, the second-time double random matrix is processedConversion to a dual random matrix (which can be written as). Finally, the double random matrix is divided into twoThe weighted expression being decomposed into at least one permutation matrix, i.e.

As an example:

then there isTherefore, it is

Will be provided withAfter decomposing into a weighted expression of at least one permutation matrix, there are:

and secondly, determining the time slot length corresponding to each permutation matrix based on the weight and the scheduling period of each permutation matrix.

Here, the product of the weight of each permutation matrix and the scheduling period may be used as the slot length corresponding to the permutation matrix. For example, if T is 100 seconds, the first slot length is 100/3 seconds, the second slot length is 100/3 seconds, the third slot length is 50/3 seconds, and the fourth slot length is 50/3 seconds.

And thirdly, generating scheduling information based on each permutation matrix and the time slot length corresponding to each permutation matrix.

Here, the node and the destination node of each time slot that need to transmit the optical packet may be determined based on the time slot length corresponding to each permutation matrix. Taking the first permutation matrix in the above example as an example, the rows of the first permutation matrix sequentially indicate node 1, node 2, node 3, and node 4, and the columns sequentially indicate node 1, node 2, node 3, and node 4. Since the value in row 1, column 4 is 1, node 1 may be scheduled to transmit an optical packet to node 4 at the first time slot. Similarly, since the value of row 2 and column 3 is 1, node 2 may be scheduled to send an optical packet to node 3 at the first time slot. And will not be described in detail herein. Note that the expression form of the scheduling information is not specifically limited here. For example, the scheduling information may be information including the length of each time slot and a scheduling instruction corresponding to each time slot, or may be analyzed by a processor in each node by directly using a weighted expression of the permutation matrix as the scheduling information.

Because only one element in the same row of the permutation matrix is 1 and only one element in the same column of the permutation matrix is 1, the node is guided to transmit the optical packet based on the numerical value in the permutation matrix, the condition that the optical packet is transmitted to the same receiving end (target node) from a plurality of transmitting ends at the same time slot can be avoided, and therefore the conflict-free scheduling can be realized, and the optical packet switching conflict is solved without a retransmission mechanism.

It should be noted that the N × N buffer state matrix may be converted into p × p F buffer state matrices, and the p × p F buffer state matrices are processed in parallel in the manner described in the above example, so as to simplify the complexity of the matrix decomposition algorithm and improve the data processing speed.

In some optional implementations of this embodiment, the optical switch may further have a configuration interface. After the scheduling information is generated, the scheduling information can be displayed in the configuration interface in real time for relevant personnel to view.

Step 203, sending the scheduling information to each node, so that each node transmits the optical packet to the optical switch based on the scheduling information.

In this embodiment, the executing apparatus may send the generated scheduling information to each node in the network cluster, so that each node transmits the optical packet to the optical switch based on the scheduling information. As an example, if the scheduling information indicates that node 1 transmits the optical packet to node 4 in the first time slot and indicates that node 2 transmits the optical packet to node 3 in the first time slot. Then in the first time slot node 1 may fetch an optical packet from the buffer queue for storage to be sent to node 4 and send it to the optical switch to forward the optical packet to node 4 through the optical switch. Meanwhile, in the first time slot, the node 2 may take out the optical packet from the buffer queue for storing the optical packet to be sent to the node 3, and send the optical packet to the optical switch, so as to forward the optical packet to the node 3 through the optical switch.

Step 204, configuring the optical switch based on the scheduling information, so that the optical switch forwards the received optical packet.

In this embodiment, the executing device may configure forwarding logic of the optical switch based on the scheduling information, so that the optical switch can forward each received optical packet to a destination node of the optical packet. In practice, because the optical packet includes the optical packet header and the optical packet payload, and the optical packet header includes information such as a source address, a destination address, a lifetime, and a lifetime, the optical switch can forward the received optical packet to a specified destination node based on the information such as the destination address in the optical packet.

In some alternative implementations, as shown in fig. 5, an optical switch may contain p modules. The network cluster has N nodes, the N nodes are divided into p node groups, and each node group comprises N/p ═ F nodes. The p modules correspond to the p node groups one by one, and each module can be used for processing the optical packets transmitted by each node in the corresponding node group. Optical switches can be implemented in a variety of ways.

As an example, the optical switch may be implemented based on a Semiconductor Optical Amplifier (SOA). Fig. 6 is an exemplary system architecture diagram of an optical switch in an embodiment of the present application. As shown in fig. 6, N nodes in the network cluster are tors, and are respectively denoted as tors1,ToR2,…,ToRN. The N nodes are sequentially divided into p node groups according to the sequence, and the p node groups are in one-to-one correspondence with the p modules of the optical switch. Each node group has N/p ═ F nodes. At the input side of the optical switch, one node may correspond to one 1 × p Arrayed Waveguide Grating (AWG) for separating the physical link into p wavelength channels, which are respectively denoted as λ1,λ2,…,λp. The p wavelengths form N links after passing through a 1 x F Switch (Switch). The switch can be controlled by the switch controller, thereby realizing the connection and disconnection of the link. The switch controller may be controlled by the above-described execution device (i.e., the controller of the optical switch) through the schedule information. On the output side of the optical switch, each destination node corresponds to p 1 × F arrayed waveguide gratings, that is, one receiving end link corresponds to one arrayed waveguide grating, and there are N links in total. In order to avoid the collision of the arrayed waveguide gratings on the output side, the correspondence between the wavelength channels of the optical switch and the node groups may be set in advance. Using nodes in the ith node group as example, of optical switchesAn alternative wavelength allocation scheme is specified in the following table:

as can be seen from the above table, the communication relationship between the wavelengths of different tors and the node group is a polling manner. I.e. ToR1 iλ of1Communicating with node group 1, ToR2 iλ of2Communicating with node group 1, ToRF iλ ofFCommunicating with node group 1. The communication relationships between other tors and the node groups are not described in detail.

It should be noted that the communication relationship between the wavelengths of different tors and the node group is not limited to the above list, and other communication relationships may be set on the principle that two or more nodes cannot exist simultaneously in the same node group on the input side and transmit signals of the same wavelength to the same node group on the output side, and the present invention is not limited thereto.

It should be noted that the fast optical switch can also be implemented by using an arrayed waveguide grating and a fast tunable laser, and the electro-optic effect of LiNbO3 (lithiium niobate), and is not limited to the above example.

In the method provided by the above embodiment of the present application, the cache state information of each node in the network cluster is obtained, then the scheduling information for scheduling the operation of transmitting the optical packet to the optical switch by each node is generated based on the cache state information, finally the scheduling information is sent to each node in the network cluster so that each node transmits the optical packet to the optical switch based on the scheduling information, and the optical switch is configured based on the scheduling scheme so that the optical switch forwards the received optical packet. Therefore, the transmission of the optical packet can be scheduled based on the buffer state of each node in the network cluster, and the problem of optical packet switching conflict is solved; meanwhile, compared with a retransmission mechanism, the dynamic change of the network state can be fully considered, and the network performance when the load is large is improved. Furthermore, the scheduling mechanism described above is still applicable when the network scale is expanded with the number of optical switches.

It should be noted that, for simplicity of description, the method embodiments are described as a series of acts or combination of acts, but those skilled in the art will recognize that the embodiments are not limited by the order of acts described, as some steps may occur in other orders or concurrently depending on the embodiments. Further, those skilled in the art will also appreciate that the embodiments described in the specification are presently preferred and that no particular act is required of the embodiments of the application.

With further reference to fig. 7, on the basis of the above embodiment, the present application provides an embodiment of a scheduling apparatus, which may be specifically applied to various electronic devices.

As shown in fig. 7, the scheduling apparatus 700 of the present embodiment includes: an obtaining unit 701 configured to obtain cache state information of each node in the network cluster; a generating unit 702 configured to generate scheduling information based on the buffer status information, where the scheduling information is used to schedule an operation of each node to transmit an optical packet to an optical switch; a transmitting unit 703 configured to transmit the scheduling information to each node so that each node transmits an optical packet to the optical switch based on the scheduling information; a configuring unit 704 configured to configure the optical switch based on the scheduling information, so that the optical switch forwards the received optical packet.

In some optional implementations of this embodiment, the generating unit 702 is further configured to: generating a cache state matrix based on the cache state information; determining a scheduling period based on the cache state matrix; and generating scheduling information based on the cache state matrix and the scheduling period.

In some optional implementation manners of this embodiment, the network cluster includes N nodes, each node has N buffer queues for buffering optical packets to be sent to the N nodes in the network cluster, and N is a positive integer; the generating unit 702 described above, is further configured to: and generating an N multiplied by N cache state matrix based on the length of each cache queue of each node in the network cluster.

In some optional implementation manners of this embodiment, N nodes in the network cluster are divided into p node groups, each node group includes F nodes, each node includes p transmitters, the p transmitters are in one-to-one correspondence with the p node groups, and each transmitter of each node has F buffer queues for buffering optical packets to be sent to the F nodes of the corresponding node group; the generating unit 702 described above, is further configured to: and converting the N multiplied by N buffer state matrix into p multiplied by p F buffer state matrices based on the length of the F buffer queues in each transmitter of each node in the network cluster.

In some optional implementation manners of this embodiment, the optical switch includes p modules, where the p modules correspond to the p node groups one to one, and each module is configured to process an optical packet transmitted by each node in the corresponding node group.

In some optional implementations of this embodiment, the generating unit 702 is further configured to: determining the sum of the number of rows and the sum of the number of columns of the cache state matrix; selecting a target row with the maximum sum of values and a target column with the maximum sum of values; and determining a scheduling period based on the values in the target row and the values in the target column.

In some optional implementations of this embodiment, the generating unit 702 is further configured to: decomposing the cache state matrix into at least one weighted expression of a permutation matrix; determining the time slot length corresponding to each permutation matrix based on the weight of each permutation matrix and the scheduling period; and generating scheduling information based on the permutation matrixes and the time slot lengths corresponding to the permutation matrixes.

In some optional implementations of this embodiment, the generating unit 702 is further configured to: normalizing the cache state matrix to obtain a secondary double random matrix; converting the secondary double random matrix into a double random matrix; and decomposing the double random matrix into at least one weighted expression of the permutation matrix.

The apparatus provided in the foregoing embodiment of the present application obtains the cache state information of each node in the network cluster, then generates scheduling information for scheduling an operation of transmitting an optical packet to an optical switch by each node based on the cache state information, and finally sends the scheduling information to each node in the network cluster, so that each node transmits the optical packet to the optical switch based on the scheduling information, and configures the optical switch based on the scheduling scheme, so that the optical switch forwards the received optical packet. Therefore, the transmission of the optical packet can be scheduled based on the buffer state of each node in the network cluster, and the problem of optical packet switching conflict is solved; meanwhile, compared with a retransmission mechanism, the dynamic change of the network state can be fully considered, and the network performance when the load is large is improved.

The present application further provides a non-transitory, readable storage medium, where one or more modules (programs) are stored, and when the one or more modules are applied to a device, the device may execute instructions (instructions) of method steps in this application.

Embodiments of the present application provide one or more machine-readable media having instructions stored thereon, which when executed by one or more processors, cause an electronic device to perform the methods as described in one or more of the above embodiments. In the embodiment of the present application, the electronic device includes various types of devices such as a terminal device and a server (cluster).

Embodiments of the present disclosure may be implemented as an apparatus, which may include electronic devices such as a terminal device, a server (cluster), etc., using any suitable hardware, firmware, software, or any combination thereof, to perform a desired configuration. Fig. 8 schematically illustrates an example apparatus 800 that may be used to implement various embodiments described herein.

For one embodiment, fig. 8 illustrates an example apparatus 800 having one or more processors 802, a control module (chipset) 804 coupled to at least one of the processor(s) 802, a memory 806 coupled to the control module 804, a non-volatile memory (NVM)/storage 808 coupled to the control module 804, one or more input/output devices 810 coupled to the control module 804, and a network interface 812 coupled to the control module 804.

The processor 802 may include one or more single-core or multi-core processors, and the processor 802 may include any combination of general-purpose or special-purpose processors (e.g., graphics processors, application processors, baseband processors, etc.). In some embodiments, the apparatus 800 can be used as a terminal device, a server (cluster), or the like in the embodiments of the present application.

In some embodiments, the apparatus 800 may include one or more computer-readable media (e.g., the memory 806 or the NVM/storage 808) having instructions 814 and one or more processors 802 that, in conjunction with the one or more computer-readable media, are configured to execute the instructions 814 to implement modules to perform the actions described in this disclosure.

For one embodiment, the control module 804 may include any suitable interface controller to provide any suitable interface to at least one of the processor(s) 802 and/or any suitable device or component in communication with the control module 804.

The control module 804 may include a memory controller module to provide an interface to the memory 806. The memory controller module may be a hardware module, a software module, and/or a firmware module.

The memory 806 may be used, for example, to load and store data and/or instructions 814 for the apparatus 800. For one embodiment, memory 806 may include any suitable volatile memory, such as suitable DRAM. In some embodiments, the memory 806 may comprise a double data rate type four synchronous dynamic random access memory (DDR4 SDRAM).

For one embodiment, the control module 804 may include one or more input/output controllers to provide an interface to the NVM/storage 808 and input/output device(s) 810.

For example, the NVM/storage 808 may be used to store data and/or instructions 814. NVM/storage 808 may include any suitable non-volatile memory (e.g., flash memory) and/or may include any suitable non-volatile storage device(s) (e.g., one or more Hard Disk Drives (HDDs), one or more Compact Disc (CD) drives, and/or one or more Digital Versatile Disc (DVD) drives).

The NVM/storage 808 may include storage resources that are physically part of the device on which the apparatus 800 is installed, or it may be accessible by the device and may not necessarily be part of the device. For example, the NVM/storage 808 may be accessible over a network via the input/output device(s) 810.

Input/output device(s) 810 may provide an interface for apparatus 800 to communicate with any other suitable device, input/output devices 810 may include communication components, audio components, sensor components, and so forth. The network interface 812 may provide an interface for the device 800 to communicate over one or more networks, and the device 800 may wirelessly communicate with one or more components of a wireless network according to any of one or more wireless network standards and/or protocols, such as access to a communication standard-based wireless network, such as WiFi, 2G, 3G, 4G, 5G, etc., or a combination thereof.

For one embodiment, at least one of the processor(s) 802 may be packaged together with logic for one or more controller(s) (e.g., memory controller module) of the control module 804. For one embodiment, at least one of the processor(s) 802 may be packaged together with logic for one or more controller(s) of the control module 804 to form a System In Package (SiP). For one embodiment, at least one of the processor(s) 802 may be integrated on the same die with logic for one or more controller(s) of the control module 804. For one embodiment, at least one of the processor(s) 802 may be integrated on the same die with logic of one or more controllers of the control module 804 to form a system on a chip (SoC).

In various embodiments, the apparatus 800 may be, but is not limited to being: a server, a desktop computing device, or a mobile computing device (e.g., a laptop computing device, a handheld computing device, a tablet, a netbook, etc.), among other terminal devices. In various embodiments, the apparatus 800 may have more or fewer components and/or different architectures. For example, in some embodiments, device 800 includes one or more cameras, a keyboard, a Liquid Crystal Display (LCD) screen (including a touch screen display), a non-volatile memory port, multiple antennas, a graphics chip, an Application Specific Integrated Circuit (ASIC), and speakers.

The device can adopt a main control chip as a processor or a control module, sensor data, position information and the like are stored in a memory or an NVM/storage device, a sensor group can be used as an input/output device, and a communication interface can comprise a network interface.

For the device embodiment, since it is basically similar to the method embodiment, the description is simple, and for the relevant points, refer to the partial description of the method embodiment.

The embodiments in the present specification are described in a progressive manner, each embodiment focuses on differences from other embodiments, and the same and similar parts among the embodiments are referred to each other.

Embodiments of the present application are described with reference to flowchart illustrations and/or block diagrams of methods, terminal devices (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing terminal to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing terminal, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.

These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing terminal to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.

These computer program instructions may also be loaded onto a computer or other programmable data processing terminal to cause a series of operational steps to be performed on the computer or other programmable terminal to produce a computer implemented process such that the instructions which execute on the computer or other programmable terminal provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.

While preferred embodiments of the present application have been described, additional variations and modifications of these embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims be interpreted as including the preferred embodiment and all such alterations and modifications as fall within the true scope of the embodiments of the application.

Finally, it should also be noted that, herein, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or terminal that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or terminal. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or terminal that comprises the element.

The scheduling method, apparatus, electronic device and storage medium provided by the present application are introduced in detail above, and a specific example is applied in the present application to explain the principle and the implementation of the present application, and the description of the above embodiment is only used to help understand the method and the core idea of the present application; meanwhile, for a person skilled in the art, according to the idea of the present application, there may be variations in the specific embodiments and the application scope, and in summary, the content of the present specification should not be construed as a limitation to the present application.

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种网络交换机电路板受潮防短路设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!