In-network computing system capable of efficiently utilizing resources

Through the combination of task analyzer and mixed integer programming optimizer, the problem of low resource utilization efficiency of the existing network computing system is solved, minimizing the number of task copies and efficient utilization of resources, improving system performance and reducing overhead. .

CN119316299AActive Publication Date: 2025-01-14ZHEJIANG UNIV
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
CN202411437843.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-15
Publication Date
2025-01-14
Estimated Expiration
2044-10-15

AI Technical Summary

Technical Problem

The existing on-network computing systems have inefficient resource utilization, especially in the management of task copy copies.

Method used

The task analyzer automatically analyzes the attributes of computing tasks in the network, and is combined with the mixed integer planning optimizer to minimize the number of task copies between switches and determine how to place tasks on data plane switches to achieve efficient resource utilization.

Benefits of technology

It realizes automatic analysis and optimization of computing tasks within the network, reduces resource overhead between and within switches, improves system performance and reduces overhead.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119316299A_ABST
    Figure CN119316299A_ABST
Patent Text Reader

Abstract

The invention discloses an in-network computing system capable of efficiently utilizing resources, and the system comprises a task analyzer which is used for automatically summarizing the attributes of each task, including components and a dependency relationship thereof, so as to obtain an analysis result output by the task analyzer; the in-network calculation optimizer is used for receiving the network topology, the in-network calculation intention and the analysis result output by the task analyzer as input thereof, and optimizing the task by using mixed integer programming by taking the minimization of the number of task copies between switches as an optimization target so as to obtain an optimal unloading scheme; and the task placer is used for forcibly executing the optimal unloading scheme and ensuring the execution correctness of each task. According to the method, an intra-network calculation problem is converted into an optimization problem, so that task copy copies generated in existing intra-network calculation can be reduced, and the resource utilization rate of the intra-network calculation is increased; compared with the prior art, the method has the advantages of higher calculation speed and lower overhead; the operation is simple and convenient, and the practicability is high.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of resource deployment and utilization and in-network computing technology, and in particular to an in-network computing system for efficient resource utilization. Background Art

[0002] In-Network Computing (INC) is an emerging paradigm that offloads computing tasks from software to the network data plane, which brings very important advantages to offloaded tasks, including full line-rate throughput, microsecond latency, power efficiency, and data reduction. In-Network Computing focuses on tasks such as key-value storage, measurement, machine learning aggregation, compression, consensus, and coordination. The advantages of in-network computing come from multi-pipeline data plane switches, which enable offloaded tasks to have powerful processing capabilities in their ASIC chip pipelines.

[0003] Mixed Integer Programming (MIP) is a mathematical optimization model. Different from Linear Programming (LP), some variables in MIP must be integers. The goal is to find the optimal value of the variable so that the objective function reaches the maximum or minimum value while satisfying a set of linear inequality or equality constraints.

[0004] Sketch is a fast, low-overhead network measurement technology based on probabilistic algorithms. It uses fixed-size data structures and hash algorithms to compress network traffic information and retain key features, reducing storage and computing overhead while maintaining high measurement accuracy, thereby quickly capturing network traffic features and providing real-time measurement results. Summary of the invention

[0005] The purpose of the present invention is to provide an in-network computing system with efficient resource utilization in view of the deficiencies of the prior art. The present invention minimizes the task copies generated in the in-network computing through MIP, thereby realizing efficient resource utilization of the data plane.

[0006] The object of the present invention is to achieve the following technical solution: an in-network computing system with efficient resource utilization, comprising:

[0007] A task analyzer is used to automatically summarize the properties of each in-network computing task, including components and their dependencies, to obtain an analysis result output by the task analyzer; wherein the components are obtained by decomposing the task into multiple operations, and the components include the multiple operations after the task is decomposed;

[0008] An in-network computing optimizer, which is used to accept the network topology, in-network computing intent, and the analysis results output by the task analyzer as its input, optimize the in-network computing tasks by using mixed integer programming with the optimization goal of minimizing the number of task copies between switches, determine how to place the in-network computing tasks on the data plane switches, and obtain the optimal offloading solution; and

[0009] The task placer is used to enforce the optimal offloading solution output by the in-network computing optimizer and ensure the execution correctness of each in-network computing task.

[0010] Furthermore, the task analyzer is implemented by the following steps:

[0011] S1.1, the task analyzer accepts the in-network computing task as its input, automatically parses and analyzes the highly heterogeneous in-network computing tasks in a unified manner, so as to convert the tasks into a directed acyclic graph; wherein the directed acyclic graph is a directed acyclic graph of multiple operations corresponding to the task;

[0012] S1.2. Based on the directed acyclic graph, the task analyzer analyzes the execution dependency and resource consumption of each task to obtain the intermediate representation analysis result of the directed acyclic graph as the analysis result output by the task analyzer.

[0013] Furthermore, the in-network computing optimizer is implemented by the following steps:

[0014] S2.1, the in-network computing optimizer receives the network topology and the in-network computing intent as well as the analysis results output by the task analyzer as its input;

[0015] S2.2, set the optimization goal of the in-network computing optimizer to maximize resource efficiency by minimizing the number of task copies between switches;

[0016] S2.3, setting constraints for the optimization target of the in-network computing optimizer;

[0017] S2.4. Set priorities for the optimization goals of the in-network computing optimizer, and use Gurobi to solve under its constraints to generate Pareto optimal points to determine how to place in-network computing tasks on the data plane switch and obtain the optimal offloading solution.

[0018] Furthermore, the network topology is represented by an undirected graph G=(V,E), where V represents a set of switches, E represents a set of physical links, and the switch set V includes switch ports and N v switch pipelines, each switch port corresponds to a specific switch pipeline, Indicates the switch pipeline to which switch port p belongs. Each switch pipeline It has k matching action stages, including PHV, TCAM, SRAM, ALUs, VLIWs, and hash bits throughout the k stages;

[0019] The in-network computing intent is specifically a set of user interest flows {f} that each in-network computing task is intended to process. Each flow f passes through a set of switches according to its routing rules to transform f into a routing path containing all the switch pipelines it traverses, expressed as

[0020] The analysis results output by the task analyzer are stored in a collection of computing tasks in the network {T i}, contains the intermediate representation analysis results of the directed acyclic graph; among them, T i ={M j} represents the i-th in-network computing task, M j is the in-network computing task T i The j-th matching action table in M j = {P(M j ),A(M j ),R(M j )},M j The resource consumption is recorded in and middle, Indicates M j PHV resource consumption, Indicates M j TCAM resource consumption, Indicates M j SRAM resource consumption, Indicates M j ALUs resource consumption, Indicates M j VLIWs resource consumption, Indicates M j The hash resource consumption of the directed acyclic graph is recorded in the Boolean variable D(M i ,M j )middle.

[0021] Furthermore, the optimization objectives of the in-network computing optimizer specifically include:

[0022]

[0023] Among them, x(M,v) indicates whether the matching action table M is placed on switch v; Indicates whether the matching action table M is placed on the switch pipeline P; ISC phv (M i ,M j) represents the matching action table M corresponding to PHV i and M j The number of inter-switch task copies, ISC act (M i ,M j ) represents the matching action table M corresponding to ALUs, VLIWs and hashes i and M j The number of inter-switch task copies, ISC reg (M i ,M j ) represents the matching action table M corresponding to TCAM and SRAM i and M j The number of task replicas between switches is obtained by the following formula:

[0024]

[0025] Among them, P(M i ) indicates M i The set of packet header fields and metadata fields used; x(M i ,v) indicates M i Is it placed on switch v? If M i Placed on switch v, then x(M i ,v)=1;x(M i ,v)·x(M j ,v)=0 is to ensure that M i and M j Not on the same switch v.

[0026] Furthermore, the constraints specifically include:

[0027] S2.3.1. In-network computing optimizer To ensure that the in-network computing task T can be successfully offloaded to the switch, node deployment is first performed. Specifically, the matching action table of each in-network computing task T is deployed on at least one switch and one switch pipeline, which is expressed as:

[0028]

[0029] Then edge deployment is performed, specifically: each edge is recorded in D(M i ,M j ), if M i and M j Placed on the same switch, D(M i ,M j )=1, and M i In M j For each in-network computing task, M iThe last pipeline stage should be executed before M j In front of the first stage, it is expressed as:

[0030]

[0031] Among them, ρ end (M i ) indicates M i The number of the last pipeline stage, ρ begin (M j ) indicates M j The number of the first pipeline stage, D(M i ,M j ) indicates M j and M i Execution dependencies between

[0032] Second, set resource limits, specifically: for each switch pipeline Offload to the switch pipeline The total resource consumption of all matching action tables on the switch should be less than or equal to the total capacity of the switch pipeline, expressed as:

[0033]

[0034] in, represents the resource consumption of M, Indicates the total resource capacity of the switch pipeline;

[0035] Finally, add a limit on the number of stages in each switch pipeline, that is, the maximum number of stages appearing in a matching action table should be less than or equal to the limit k, expressed as:

[0036]

[0037] Among them, ρ end (M) represents the number of the last pipeline stage of the matching action table M, and k represents the number of matching action stages of each switch pipeline;

[0038] S2.3.2. Add the following constraints to maintain the in-network computing intent. Specifically, in each routing path f, the matching action table of task T with flow f as the target should be placed on the switch pipeline of the routing path f, expressed as:

[0039]

[0040] S2.3.3, add the following constraints to avoid task duplication within the switch, specifically: for a matching action table M in an in-network computing task T, if any user interest flow does not pass through a switch pipeline Define the It is independent of M and can be expressed as:

[0041]

[0042] Furthermore, the task placer is implemented by the following steps:

[0043] S3.1. Obtain multiple task segments based on the optimal offloading solution output by the in-network computing optimizer in It indicates that the task segment of the in-network computing task T is offloaded to the switch v, which includes all matching action tables offloaded to the switch v, expressed as

[0044] S3.2. For each directed acyclic graph of the computing task in the network, split it into multiple small graphs, each small graph corresponds to a task segment and a table of all matching actions contained in the task segment, and use a set Φ to record the split edges;

[0045] S3.3. For each edge representation in the set Φ, reconstruct the execution dependency relationship from its upstream matching action table to the downstream matching action table. Specifically, when the upstream matching action table and the downstream matching action table are placed on different switches, given any edge, M j Belongs to include M i The task segment that must be executed after the task segment of M j and M i Is there an execution dependency, and then rebuild M i To M j Execution dependencies;

[0046] S3.4. For each task segment, the task placer calls the switch compiler on the software development environment of the target switch to compile the task segment and the system requirement protocol; after compilation, the matching action table and the system requirement protocol in the task segment are converted into the switch configuration to complete the execution correctness of the optimal offloading solution.

[0047] The beneficial effects of the present invention are that the present invention can automatically analyze various in-network computing task inputs, make optimal performance offloading decisions based on the analysis results, and reduce resource overhead between and within switches by offloading tasks such as Sketch and NF to data plane switches; the present invention has higher performance and lower overhead; the method described in the present invention is simple and convenient, flexible to implement, and has strong practicality. BRIEF DESCRIPTION OF THE DRAWINGS

[0048] Figure 1 is an overview diagram of the resource efficient utilization in-network computing system of the present invention;

[0049] Figure 2 is an example diagram of an in-network computing system for efficient resource utilization of the present invention; DETAILED DESCRIPTION

[0050] Exemplary embodiments will be described in detail herein, examples of which are shown in the accompanying drawings. When the following description refers to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present application. Instead, they are merely examples of devices and methods consistent with some aspects of the present application as detailed in the attached claims. It should be understood that the above general description and the detailed description that follows are merely exemplary and explanatory and cannot limit the present application.

[0051] The terms used in this application are for the purpose of describing specific embodiments only and are not intended to limit this application. The singular forms of "a", "said" and "the" used in this application and the appended claims are also intended to include plural forms unless the context clearly indicates other meanings. It should also be understood that the term "and / or" used herein refers to and includes any or all possible combinations of one or more associated listed items.

[0052] It should be understood that, although the term first, second, third, etc. may be used in the present application to describe various information, these information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of the present application, the first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information. Depending on the context, the word "if" as used herein may be interpreted as "at the time of..." or "when..." or "in response to determination". Moreover, the term "include", "comprise" or any other variant thereof is intended to cover non-exclusive inclusion, so that the process and method including a series of elements include not only those elements, but also include other elements not clearly listed, or also include elements inherent to such process and method. In the absence of more restrictions, the elements limited by the statement "including one..." do not exclude the existence of other identical elements in the process, method, article or equipment including the elements.

[0053] The present invention is described in detail below in conjunction with the accompanying drawings. In the absence of conflict, the features of the following embodiments and implementations can be combined with each other.

[0054] The resource efficient network computing system of the present invention has a framework as follows: Figure 1As shown, it is possible to automatically offload tasks such as Sketch and NF to the in-network computing elements for execution. The in-network computing system includes a task analyzer, an in-network computing optimizer, and a task placer. The mathematical symbols used in the present invention and their meanings are shown in Table 1.

[0055] Table 1: Mathematical symbols used in this invention and their meanings

[0056]

[0057]

[0058] In this embodiment, the task analyzer is used to automatically summarize the properties of each in-network computing task, including components and their dependencies, to obtain the analysis results output by the task analyzer. The components are obtained by decomposing the task into multiple operations, and the components include multiple operations after the task is decomposed.

[0059] It should be understood that a task is decomposed into multiple operations, including: ① filtering, ② decoding, ③ finding the maximum / minimum value, ④ determining whether the data exists, ⑤ merging, ⑥ flow number counting, etc. These multiple operations are the components corresponding to the task.

[0060] Furthermore, the task analyzer is implemented by the following steps:

[0061] S1.1. The task analyzer accepts in-network computing tasks as its input, automatically parses and analyzes highly heterogeneous in-network computing tasks in a unified manner, and converts the tasks into directed acyclic graphs (DAGs), which can essentially eliminate loops and avoid loops that reduce the performance of switches. The directed acyclic graph is a directed acyclic graph of multiple operations corresponding to the task.

[0062] It should be understood that highly heterogeneous in-network computing tasks are diverse, and a unified approach is needed to automatically parse and analyze these in-network computing tasks in order to convert the tasks into a directed acyclic graph. For example, after the task analyzer automatically parses and analyzes a task, the task is decomposed into three operations: filtering, finding the maximum value, and merging. There is a dependency relationship between the filtering operation and the merging operation, there is a dependency relationship between the merging operation and the finding the maximum value operation, and there is no dependency relationship between the filtering operation and the finding the maximum value operation; ultimately, the task can be converted into a directed acyclic graph "filter → merge → find the maximum value", where → indicates that there is an execution dependency between the operations, that is, the filtering operation needs to be completed before the merging operation.

[0063] S1.2. Based on the directed acyclic graph, the task analyzer analyzes the execution dependency and resource consumption of each task to obtain the intermediate representation (IR) analysis result of the directed acyclic graph as the analysis result output by the task analyzer.

[0064] It should be understood that a directed acyclic graph is composed of nodes and edges. An operation after task decomposition is a node. The resource consumption of the corresponding operation can be stored in a node. If there is a dependency relationship between two operations, there is an edge between the two nodes. Therefore, based on the directed acyclic graph, the execution dependency and resource consumption of the task can be obtained. Among them, the resource consumption situation is that the switch resources are limited, and each operation needs to consume the resources of the switch. Among the three operations of the above example task, if a switch resource is sufficient to accommodate three operations, then there is no need to transmit data between multiple switches for this task. However, if a switch can only accommodate two, it is necessary to place another operation on another switch, and a certain amount of data needs to be transmitted between the switches. The system described in the present invention can minimize the amount of data transmission.

[0065] In this embodiment, the in-network computing optimizer is used to accept the network topology and in-network computing intent as well as the analysis results output by the task analyzer as its input, with minimizing the number of task copies between switches as the optimization goal, and using mixed integer programming to optimize the in-network computing tasks, determine how to place the in-network computing tasks on the data plane switches, and obtain the optimal offloading solution.

[0066] Specifically, the in-network computing optimizer optimizes the in-network computing tasks by using mixed integer programming, based on the analysis results of the task analyzer, and can regard its in-network computing as an optimization problem. The in-network computing optimizer takes the analysis results output by the task analyzer as its input, and receives the network topology and in-network computing intention as its input, and determines how to place the in-network computing tasks on the data plane switch. Its optimization goal is to minimize the number of task copies between switches and impose relevant constraints on it. This constraint can ensure that the total resources used by all in-network computing tasks do not exceed the resource upper limit of the in-network elements, and avoid task copies inside the switch as much as possible. Finally, the optimal offloading solution is obtained, which is the output of the in-network computing optimizer.

[0067] Furthermore, the in-network computing optimizer is implemented by the following steps:

[0068] S2.1. The in-network computing optimizer accepts the network topology and in-network computing intent as well as the analysis results output by the task analyzer as its input.

[0069] The network topology is represented by an undirected graph G = (V, E), where V represents the set of switches and E represents the set of physical links. The switch set V includes switch ports and N v switch pipelines, each switch port corresponds to a specific switch pipeline, Indicates the switch pipeline to which switch port p belongs. Each switch pipeline It has k matching action stages, including PHV (physical virtual machine monitoring resources), TCAM (ternary content addressable memory), SRAM (static random access memory), ALUs (arithmetic logic units), VLIWs (very long instruction words) and hash bits throughout the k stages.

[0070] The in-network computing intent is specifically a set of user interest flows {f} that each in-network computing task aims to process. Each flow f passes through a set of switches according to its routing rules. Therefore, f can be transformed into a routing path containing all the switch pipelines it traverses, expressed as

[0071] The analysis results output by the task analyzer are stored in the collection of computing tasks in the network {T i}, contains the intermediate representation analysis results of the directed acyclic graph; among them, T i ={M j} represents the i-th in-network computing task, M j is the in-network computing task T i The j-th match-action table (MAT) in M j = {P(M j ),A(M j ),R(M j )},M j The resource consumption is recorded in and middle, Indicates M j PHV resource consumption, Indicates M j TCAM resource consumption, Indicates M j SRAM resource consumption, Indicates M j ALUs resource consumption, Indicates M j VLIWs resource consumption, Indicates M j The hash resource consumption of the directed acyclic graph is recorded in the Boolean variable D(M i ,M j ), if Mj Depends on M i , then D(M i ,M j )=1, indicating that M j and M i There are execution dependencies between them.

[0072] It should be understood that one MAT corresponds to one operation. The analysis results output by the above task analyzer are stored in the nodes of the directed acyclic graph generated by the task analyzer.

[0073] S2.2. Set the optimization goal of the in-network computing optimizer to maximize resource efficiency by minimizing the number of task copies between switches.

[0074] Specifically, first, for each pair of matching action tables M i and M j , using ISC(M i ,M j ) indicates M i and M j The number of task replicas between switches is obtained by the following formula:

[0075]

[0076] Among them, ISC phv (M i ,M j ) represents the matching action table M corresponding to PHV i and M j The number of inter-switch task copies, ISC act (M i ,M j ) represents the matching action table M corresponding to ALUs, VLIWs and hashes i and M j The number of inter-switch task copies, ISC reg (M i ,M j ) represents the matching action table M corresponding to TCAM and SRAM i and M j The number of task copies between switches; P(M i ) indicates M i The set of packet header fields and metadata fields used; x(M i ,v) indicates M i Is it placed on switch v? If M i Placed on switch v, then x(M i ,v)=1;x(M i ,v)·x(M j,v)=0 is to ensure that M i and M j Not on the same switch v.

[0077] It should be noted that when matching action table M i and M j When they are located on the same switch v, their ISC(M i ,M j )=0;When the matching action table M i and M j When located in different switches, When , the intersection operation in the above formula is performed to obtain the corresponding ISC (M i ,M j ).

[0078] Then, minimizing the number of task replicas between switches is equivalent to minimizing the ISC of all pairwise matching action tables of the in-network computing task {T} input to the in-network computing optimizer. phv 、ISC act 、ISC reg Therefore, to minimize the matching action table M i and M j The number of task replicas between switches is used as the optimization target of the in-network computing optimizer and is expressed as:

[0079]

[0080] At the same time, the switch also aims to minimize the number of occupied switches or switch pipelines to improve resource utilization, which is expressed as:

[0081]

[0082] Wherein, x(M,v) indicates whether the matching action table M is placed on the switch v. If M is placed on the switch v, then x(M,v)=1; Indicates whether the matching action table M is placed in the switch pipeline If M is placed in the switch pipeline On, then

[0083] S2.3. Set constraints for the optimization objectives of the in-network computing optimizer.

[0084] Furthermore, the constraints specifically include:

[0085] S2.3.1. In-network computing optimizer To ensure that the in-network computing task T can be successfully offloaded to the switch, node deployment is first performed. Specifically, the matching action table of each in-network computing task T is deployed on at least one switch and one switch pipeline, which is expressed as:

[0086]

[0087] Then edge deployment is performed, specifically: each edge is recorded in D(M i ,M j ), if M i and M j Placed on the same switch, D(M i ,M j )=1, and M i In M j For each in-network computing task, M i The last pipeline stage should be executed before M j In front of the first stage, it is expressed as:

[0088]

[0089] Among them, ρ end (M i ) indicates M i The number of the last pipeline stage, ρ begin (M j ) indicates M j The number of the first pipeline stage, D(M i ,M j ) indicates M j and M i The execution dependencies between them.

[0090] Second, set resource limits, specifically: for each switch pipeline Offload to the switch pipeline The total resource consumption of all matching action tables on the switch should be less than or equal to the total capacity of the switch pipeline, expressed as:

[0091]

[0092] in, represents the resource consumption of M, Can be and They represent the PHV resource consumption, TCAM resource consumption, SRAM resource consumption, ALUs resource consumption, VLIWs resource consumption, and hash resource consumption of M respectively; represents the total resource capacity of the switch pipeline, Can be and They represent the total PHV resource capacity, TCAM resource capacity, SRAM resource capacity, ALUs resource capacity, VLIWs resource capacity, and hash resource capacity of the switch pipeline, respectively. for When , the corresponding PHV resource restriction constraint is expressed as:

[0093]

[0094] in, represents the PHV resource consumption of M, represents the total capacity of the PHV resources of the switch pipeline. This constraint avoids saturation of the PHV resources.

[0095] Finally, add a limit on the number of stages in each switch pipeline, that is, the maximum number of stages appearing in a matching action table should be less than or equal to the limit k, expressed as:

[0096]

[0097] Among them, ρ end (M) represents the number of the last pipeline stage of the matching action table M, and k represents the number of matching action stages of each switch pipeline.

[0098] S2.3.2. Add the following constraints to maintain the in-network computing intent. Specifically, since each in-network computing task needs to cover a series of its target flows {f}, and each flow f can be viewed as a series of routes: Therefore, in each routing path f, the matching action table of task T with flow f as the target should be placed on the switch pipeline of the routing path f, expressed as:

[0099]

[0100] At the same time, the computation optimizer in this network does not rely on a specific routing algorithm and can accept any routing decision.

[0101] S2.3.3, add the following constraints to avoid task duplication within the switch, specifically: for a matching action table M in an in-network computing task T, if any user interest flow does not pass through a switch pipeline Define the It is independent of M and can be expressed as:

[0102]

[0103] From the current constraints, it can be seen that the purpose of this in-network computing optimizer is to prevent in-network computing tasks from placing matching action tables on irrelevant switch pipelines.

[0104] S2.4. Set priorities for the optimization goals of the in-network computing optimizer, and use Gurobi to solve under its constraints to generate Pareto optimal points to determine how to place in-network computing tasks on the data plane switch and obtain the optimal offloading solution.

[0105] Specifically, the optimization objectives of the in-network computing optimizer are optimized simultaneously through the hierarchical objective method, that is, the user sets priorities for these optimization objectives to guide Gurobi to solve the optimization objectives to produce Pareto optimal points, that is, the in-network computing optimizer uses Gurobi and activates its branch and bound algorithm to accelerate the INC process by pruning the search space without losing optimality. Finally, it is determined how the in-network computing tasks are placed on the data plane switch to obtain the optimal offloading solution.

[0106] In this embodiment, the task placer is used to enforce the optimal offloading solution output by the in-network computing optimizer and ensure the execution correctness of each in-network computing task.

[0107] It should be noted that the task placer first integrates each task segment into the program to compile it into a specific switch. Then the task placer accepts a specific design protocol, such as the RINC protocol, to help the upstream task segment pass information to the downstream task segment to ensure the correctness of the execution of each in-network computing task.

[0108] Furthermore, the task placer is implemented by the following steps:

[0109] S3.1. Obtain multiple task segments based on the optimal offloading solution output by the in-network computing optimizer in It indicates that the task segment of the in-network computing task T is offloaded to the switch v, which includes all matching action tables offloaded to the switch v, expressed as

[0110] It should be understood that the optimal unloading solution output by the in-network computing optimizer is the task deployment strategy output by the in-network computing optimizer, that is, multiple tasks, each task contains multiple operations, and each operation of each task is placed on which switch, corresponding to the optimal unloading solution output by the in-network computing optimizer. Among them, the optimal unloading solution output by the in-network computing optimizer forms a series of task segments. Therefore, the optimal offloading solution based on the output of the in-network computing optimizer can obtain multiple task segments.

[0111] S3.2. For each directed acyclic graph of the computing task in the network, it is divided into multiple small graphs, each small graph corresponds to a task segment and a table of all matching actions contained in the task segment, and the set Φ is used to record the divided edges.

[0112] It should be noted that when the directed acyclic graph of each in-network computing task is segmented, some edges will contain the execution dependencies of MAT. Since the segmentation of the directed acyclic graph destroys it, it is necessary to record these edges separately in a set of Φ and reconstruct them in the following steps.

[0113] S3.3. For each edge representation in the set Φ, reconstruct the execution dependency from its upstream MAT to the downstream MAT. Specifically, when the upstream MAT and the downstream MAT are placed on different switches, given any edge, M j Belongs to include M i The task segment that must be executed after the task segment of M j and M i Is there an execution dependency, and then rebuild M i To M j Execution dependencies.

[0114] Specifically, to rebuild the edge between two switches, the task placer inserts the modules in the system requirement protocol into the task segment. The protocol performs a two-step workflow to maintain the edge between switches. First, in the upstream task segment, that is, the segment on the upstream switch, the protocol modifies the header and metadata on each packet. Second, in the downstream task segment, it reads the modified header and metadata from each packet and inputs them into the MATs. Among them, the system requirement protocol is located between the IP and Layer 4 headers by using a specific 0xFF protocol type. It includes a limited number of 4-byte slots. These slots store the modified header and metadata fields. In particular, adding an additional protocol in each packet will occupy a certain amount of packet header space.

[0115] S3.4. For each task segment, the task placer calls the switch compiler on the software development environment of the target switch to compile the task segment and the system requirement protocol; after compilation, the MAT and system requirement protocol in the task segment are converted into the switch configuration to complete the execution correctness of the optimal offloading solution.

[0116] For example, Figure 2 A real INC task is shown, which gathers three NFs, labeled by A, B, and C. Each NF executes a MAT to satisfy the target flow and performs actions based on the matching results. Figure 2 In (a), C depends on B because C needs to read a metadata field written by B, md.drop.

[0117] The existing solution generates planning decisions in Figure 2As shown in (b), it leads to two-pronged task duplication. First, there is inter-switch task duplication because B and C are placed on two switches. Therefore, the metadata field called, md.drop, needs to be copied to all switches. This solution also leads to intra-switch task duplication because the target flow does not pass through pipeline 2 and pipeline 3. The existing solution will copy MATs to all switch pipelines, resulting in a waste of resources.

[0118] Compared with the existing solutions, the solution provided by the present invention aims to Figure 2 (c) Reduce task copies. The analyzer in the solution recognizes that B and C share the same task component of metadata md.drop. Placing B and C on two different switches will increase the number of task copies between switches. Therefore, the optimizer decides to place B and C on the same switch to avoid task copies between switches, using the following formula:

[0119]

[0120] And because the target flow only passes through pipelines 1 and 4, the optimizer only decides to place MATs on pipelines 1 and 4, using the following formula:

[0121]

[0122] The above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit the same. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims

1. A network computing system with efficient resource utilization, characterized in that: include: A task analyzer is used to automatically summarize the properties of each in-network computing task, including components and their dependencies, to obtain an analysis result output by the task analyzer; wherein the components are obtained by decomposing the task into multiple operations, and the components include the multiple operations after the task is decomposed; An in-network computing optimizer, which is used to accept the network topology, in-network computing intent, and the analysis results output by the task analyzer as its input, optimize the in-network computing tasks by using mixed integer programming with the optimization goal of minimizing the number of task copies between switches, determine how to place the in-network computing tasks on the data plane switches, and obtain the optimal offloading solution; and The task placer is used to enforce the optimal offloading solution output by the in-network computing optimizer and ensure the execution correctness of each in-network computing task.

2. The resource efficient in-network computing system according to claim 1, characterized in that: The task analyzer is implemented by the following steps: S1.1, the task analyzer accepts the in-network computing task as its input, automatically parses and analyzes the highly heterogeneous in-network computing tasks in a unified manner, so as to convert the tasks into a directed acyclic graph; wherein the directed acyclic graph is a directed acyclic graph of multiple operations corresponding to the task; S1.

2. Based on the directed acyclic graph, the task analyzer analyzes the execution dependency and resource consumption of each task to obtain the intermediate representation analysis result of the directed acyclic graph as the analysis result output by the task analyzer.

3. The resource efficient in-network computing system according to claim 1, characterized in that: The in-network computing optimizer is implemented by the following steps: S2.1, the in-network computing optimizer receives the network topology and the in-network computing intent as well as the analysis results output by the task analyzer as its input; S2.2, set the optimization goal of the in-network computing optimizer to maximize resource efficiency by minimizing the number of task copies between switches; S2.3, setting constraints for the optimization target of the in-network computing optimizer; S2.

4. Set priorities for the optimization goals of the in-network computing optimizer, and use Gurobi to solve under its constraints to generate Pareto optimal points to determine how to place in-network computing tasks on the data plane switch and obtain the optimal offloading solution.

4. The resource efficient in-network computing system according to claim 3, characterized in that: The network topology is represented by an undirected graph G=(V,E), where V represents a set of switches, E represents a set of physical links, and the switch set V includes switch ports and N v switch pipelines, each switch port corresponds to a specific switch pipeline, Indicates the switch pipeline to which switch port p belongs. Each switch pipeline It has k matching action stages, including PHV, TCAM, SRAM, ALUs, VLIWs, and hash bits throughout the k stages; The in-network computing intent is specifically a set of user interest flows {f} that each in-network computing task is intended to process. Each flow f passes through a set of switches according to its routing rules to transform f into a routing path containing all the switch pipelines it traverses, expressed as The analysis results output by the task analyzer are stored in a collection of computing tasks in the network {T i }, contains the intermediate representation analysis results of the directed acyclic graph; among them, T i ={M j } represents the i-th in-network computing task, M j is the in-network computing task T i The j-th matching action table in M j = {P(M j ),A(M j ),R(M j )},M j The resource consumption is recorded in and middle, Indicates M j PHV resource consumption, Indicates M j TCAM resource consumption, Indicates M j The SRAM resource consumption, Indicates M j ALUs resource consumption, Indicates M j VLIWs resource consumption, Indicates M j The hash resource consumption of the directed acyclic graph is recorded in the Boolean variable D(M i ,M j )middle.

5. The resource efficient in-network computing system according to claim 3, characterized in that: The optimization objectives of the in-network computing optimizer specifically include: Among them, x(M,v) indicates whether the matching action table M is placed on switch v; Indicates whether the matching action table M is placed in the switch pipeline ISC phv (M i ,M j ) represents the matching action table M corresponding to PHV i and M j The number of inter-switch task copies, ISC act (M i ,M j ) represents the matching action table M corresponding to ALUs, VLIWs and hashes i and M j The number of inter-switch task copies, ISC reg (M i ,M j ) represents the matching action table M corresponding to TCAM and SRAM i and M j The number of task copies between switches is obtained by the following formula: Among them, P(M i ) indicates M i The set of packet header fields and metadata fields used; x(M i ,v) indicates M i Is it placed on switch v? If M i Placed on switch v, then x(M i ,v)=1;x(M i ,v)·x(M j ,v)=0 is to ensure that M i and M j Not on the same switch v.

6. The resource efficient in-network computing system according to claim 3, characterized in that: The constraints specifically include: S2.3.

1. In-network computing optimizer To ensure that the in-network computing task T can be successfully offloaded to the switch, node deployment is first performed. Specifically, the matching action table of each in-network computing task T is deployed on at least one switch and one switch pipeline, which is expressed as: Then edge deployment is performed, specifically: each edge is recorded in D(M i ,M j ), if M i and M j Placed on the same switch, D(M i ,M j )=1, and M i In M j For each in-network computing task, M i The last pipeline stage should be executed before M j In front of the first stage, it is expressed as: Among them, ρ end (M i ) indicates M i The number of the last pipeline stage, ρ begin (M j ) indicates M j The number of the first pipeline stage, D(M i ,M j ) indicates M j and M i Execution dependencies between Second, set resource limits, specifically: for each switch pipeline Offload to the switch pipeline The total resource consumption of all matching action tables on the switch should be less than or equal to the total capacity of the switch pipeline, expressed as: in, represents the resource consumption of M, Indicates the total resource capacity of the switch pipeline; Finally, we add a limit on the number of stages in each switch pipeline, that is, the maximum number of stages that appear in a matching action table should be less than or equal to the limit k, expressed as: Among them, ρ end (M) represents the number of the last pipeline stage of the matching action table M, and k represents the number of matching action stages of each switch pipeline; S2.3.

2. Add the following constraints to maintain the in-network computing intent. Specifically, in each routing path f, the matching action table of task T with flow f as the target should be placed on the switch pipeline of the routing path f, expressed as: S2.3.3, add the following constraints to avoid task duplication within the switch, specifically: for a matching action table M in an in-network computing task T, if any user interest flow does not pass through a switch pipeline Define the It is independent of M and can be expressed as:

7. The resource efficient in-network computing system according to claim 1, characterized in that: The task placer is implemented by the following steps: S3.

1. Obtain multiple task segments based on the optimal offloading solution output by the in-network computing optimizer in It indicates that the task segment of the in-network computing task T is offloaded to the switch v, which includes all matching action tables offloaded to the switch v, expressed as S3.

2. For each directed acyclic graph of the computing task in the network, split it into multiple small graphs, each small graph corresponds to a task segment and a table of all matching actions contained in the task segment, and use a set Φ to record the split edges; S3.

3. For each edge representation in the set Φ, reconstruct the execution dependency relationship from its upstream matching action table to the downstream matching action table. Specifically, when the upstream matching action table and the downstream matching action table are placed on different switches, given any edge, (M i ,M j )∈Φ(D(M i ,M j )=1, x(M i ,v)≠x(M j ,v)),M j Belongs to include M i The task segment that must be executed after the task segment of M j and M i Is there an execution dependency, and then rebuild M i To M j Execution dependencies; S3.

4. For each task segment, the task placer calls the switch compiler on the software development environment of the target switch to compile the task segment and the system requirement protocol; after compilation, the matching action table and the system requirement protocol in the task segment are converted into the switch configuration to complete the execution correctness of the optimal offloading solution.

Citation Information

Patent Citations

  • Transcript selector based on programmable network equipment

    CN108900509A

  • Internet of Things edge task unloading method and device

    CN113225377A

  • Edge computing unloading scheduling method based on task dependence

    CN115827088A

  • Energy efficiency unloading method for cooperative mobile edge computing network with delay constraint

    CN115941492A

  • Directed acyclic graph-based minimum time overhead resource allocation method and related device

    CN116347480A