Task allocation method and apparatus
By dividing NPC into domains with designated NPCRs for state collection and allocation, the method addresses high complexity and latency issues, improving task allocation efficiency and accuracy.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-05
- Publication Date
- 2026-03-12
Smart Images

Figure RU2024000271_12032026_PF_FP_ABST
Abstract
Description
TASK ALLOCATION METHOD AND APPARATUSTECHNICAL FIELD
[0001] This disclosure relates generally to the field of communication technology, and in particular, to a task allocation method and apparatus.BACKGROUND
[0002] Network powered by computing (NPC) is a computational infrastructure that allocates and schedules computing resources, storage resources, and network resources among cloud, network, and edge according to application requirements. Driven by the power of computing, NPC aims to achieve the predictability of task execution time and data transmission characteristics, to improve the availability of virtual network function (VNF) and other traffic engineering (TE) methods, and to improve the overall optimal allocation and utilization efficiency of network and computing resources.
[0003] When providing services for access services, NPC nodes need to make allocation and routing decisions under the whole network resources based on the service requirements, the state information of their own nodes, and the state information of nodes of the whole NPC. However, the current task allocation methods in NPC may have high computing complexity and high latency. How to allocate tasks efficiently in the NPC is an important problem that needs to be resolved.SUMMARY
[0004] This present disclosure provides a task allocation method and apparatus used to efficiently allocate tasks in an NPC.
[0005] According to a first aspect, a task allocation method is described. The method may be performed at a network powered by computing router (NPCR), for example, an NPCR or a module in an NPCR, a circuit or a chip that is responsible for the task allocation method in an NPCR.
[0006] In this method, there is a designated NPCR in a first domain of an NPC. For ease of understanding, the designated NPCR may later be referred to as a first NPCR, and a non-designated NPCR in the first domain may later be referred to as a second NPCR. The first domain includes the first NPCR and one or more second NPCRs, and the method includes: obtaining, by the first NPCR, an application request used for requesting processing of a target task; obtaining, by the first NPCR, first state information and one or more second state information, where the first state information includes state information of the one or more second NPCRs, the one or more second state information includes state information of one or more second domains in the NPC, and thestate information indicates at least one of a network state or a resource state; and allocating, the first NPCR, the target task based on the application request, the first state information and the second state information.
[0007] In this method, the NPC is divided into a plurality of domains, so that there may not be a control center collecting state information from all NPCRs as in a centralized method, and so that this method may reduce complex calculation and additional delay in the centralized method. In addition, by selecting a designated NPCR of each domain, non-designated NPCRs may only transmit state information to the designated NPCR, which may also reduce additional communication overhead caused by all NPCRs broadcasting to each other in a decentralized method.
[0008] In some embodiments, obtaining, by the first NPCR, the application request includes receiving, by the first NPCR, the application request from any one of the one or more second NPCRs.
[0009] In the foregoing embodiments, the application request within the first domain is collected by the first NPCR, so that communication overhead may be reduced since the one or more second NPCRs do not need to broadcast the application request to each other.
[0010] In some embodiments, obtaining, by the first NPCR, the one or more second state information includes receiving, by the first NPCR, second state information from a third NPCR in a second domain of the one or more second domains, where the third NPCR is a designated NPCR in the second domain.
[0011] In the foregoing embodiments, the first NPCR receives the second state information from a third NPCR in the second domain, instead of from a plurality of non-designated NPCRs in the second domain, so that the communication overhead between the first NPCR and a plurality of non-designated NPCRs may be reduced.
[0012] In some embodiments, obtaining, by the first NPCR, the one or more second state information includes: receiving, by the first NPCR, third state information from a fourth NPCR, where the third state information includes the one or more second state information, and the fourth NPCR is a designated NPCR in the one or more second domains.
[0013] In the foregoing embodiments, the first NPCR receives the second state information from a fourth NPCR instead of from a plurality of third NPCRs, so that the communication overhead between the first NPCR and a plurality of third NPCRs may be reduced.
[0014] In some embodiments, the one or more second domains include one or more designated NPCRs, and the method further includes: transmitting the application request to the one or more designated NPCRs.
[0015] In the foregoing embodiments, the first NPCR transmits the application request to the oneor more designated NPCRs, so that the application request is shared in the NPC, and the target task may be allocated to another domain for processing.
[0016] In some embodiments, the application request carries service level agreement (SLA) constraints of the target task; and allocating, by the first NPCR, the target task based on the application request, the first state information and the second state information includes: selecting, from the NPC, a target data center (DC) that satisfies the SLA constraints, based on the first state information and the second state information; and transmitting the target task to a NPCR corresponding to the target DC, so that the target task is allocated to the target DC through the NPCR for processing.
[0017] In the foregoing embodiments, the target task is allocated to the target DC that is selected in the whole NPC based on both the first state information and the second state information, so that the target task may be allocated more accurately.
[0018] In some embodiments, the method further includes receiving, by the first NPCR, fourth state information from a third NPCR of each of the one or more second domains, where the third NPCR is a designated NPCR in the second domain, the fourth state information indicates a state of one or more first candidate DCs in the one or more second domains, and the one or more first candidate DCs satisfy the SLA constraints. Then, selecting, from the NPC, the target DC that satisfies the SLA constraints includes: selecting, from the NPC, the target DC based on the first state information, the second state information, and the fourth state information.
[0019] In the foregoing embodiments, by selecting candidate DCs individually in each domain, the processing burden of the first NPCR may be reduced.
[0020] In some embodiments, the method further includes selecting, by the first NPCR from the first domain, one or more DCs that satisfy the SLA constraints as one or more second candidate DCs based on the first state information and through convolution of multidimensional resources. Then, selecting, from the NPC, the target DC includes: selecting the target DC, based on the second state information, the state of the one or more first candidate DCs, and state of the one or more second candidate DCs, from the one or more first candidate DCs and the one or more second candidate DCs through greedy strategy.
[0021] In the foregoing embodiments, the first NPCR selects the target DC by using the method of convolution of multidimensional resources and greedy strategy, so that the accuracy of task allocation may be improved.
[0022] In some embodiments, the SLA constraints include at least one of: requirements for computing resources of the target task; requirements for storage resources of the target task; or a maximum response time of the target task.
[0023] According to a second aspect, a task allocation apparatus is described. The task allocationapparatus has a function of implementing the first aspect.
[0024] According to a third aspect, a task allocation apparatus is described. The apparatus has a function of implementing the first aspect. For example, the apparatus may include one or more processors and a memory storing instructions which, when executed by the one or more processors, cause the apparatus to implement the first aspect.
[0025] According to a fourth aspect, a task allocation system is described, including a plurality of domains, where the plurality of domains includes a first domain and one or more second domains, the first domain includes a first NPCR and one or more second NPCRs, and the first NPCR is the designated NPCR of the first domain. The first NPCR is configured to perform the method in any one of the embodiments of the first aspect.
[0026] According to a fifth aspect, a computer-readable storage medium is described. The computer-readable storage medium stores computer-readable instructions, and when a computer reads and executes the computer-readable instructions, the computer is enabled to perform the method in any one of the embodiments of the first aspect.
[0027] According to a sixth aspect, a computer program product is described. When a computer reads and executes the computer program product, the computer is enabled to perform the method in any one of the embodiments of the first aspect.
[0028] This disclosure encompasses various embodiments, including not only method embodiments, but also other embodiments such as apparatus embodiments and embodiments related to non-transitory computer readable storage media. Embodiments may incorporate, individually or in combinations, features disclosed herein.BRIEF DESCRIPTION OF THE DRAWINGS
[0029] Numerous details are described herein to provide a thorough understanding of the example embodiments illustrated in the accompanying drawings. However, some embodiments may be practiced without many of the specific details, and the scope of the claims is only limited by those features and aspects specifically recited in the claims. Furthermore, well-known processes, components, and materials have not necessarily been described in exhaustive detail so as to avoid obscuring pertinent aspects of the embodiments described herein.
[0030] FIG. 1 is a schematic diagram of an NPC architecture in accordance with some embodiments of the present disclosure;
[0031] FIG. 2 is a schematic diagram of a domain division of an NPC in accordance with some embodiments of the present disclosure;
[0032] FIG. 3 is a schematic flowchart of a task allocation method in accordance with someembodiments of the present disclosure;
[0033] FIG. 4 is a schematic diagram of a process of receiving and transmitting an application request by a designated NPCR in accordance with some embodiments of the present disclosure;
[0034] FIG. 5 is a schematic diagram of a process of receiving one or more second state information by a designated NPCR in accordance with some embodiments of the present disclosure;
[0035] FIG. 6 is another schematic diagram of a process of receiving one or more second state information by a designated NPCR in accordance with some embodiments of the present disclosure;
[0036] FIG. 7 is a block diagram of a task allocation apparatus in accordance with some embodiments of the present disclosure; and
[0037] FIG. 8 is a block diagram of a task allocation apparatus in accordance with some embodiments of the present disclosure.DETAILED DESCRIPTION
[0038] Embodiments of the present disclosure will be described below with reference to the accompanying drawings.
[0039] Network powered by computing (NPC) is a software-driven computational infrastructure, which has the characteristics of manageability, programmability, and virtualization. NPC is a tight software-driven integration of various computer installations with a high-speed data transmission network (DTN). Through advanced technologies such as cloud computing, big data, artificial intelligence (Al), etc., NPC abstracts and integrates computing, storage, and network resources to achieve the sharing and unified management of resources. Application scenarios of NPC are extremely wide, including but not limited to scientific computing, data processing, image processing, virtual reality (VR), intelligent manufacturing, and smart city. NPC provides powerful, efficient, and reliable computing power support for these applications.
[0040] As a computational infrastructure, NPC may satisfy the following requirements of computational infrastructure for various applications:
[0041] 1. Predictability of time of execution of application components and their interaction time (data transfer) according to application operation specification (AOS);
[0042] 2. Predictability of characteristics of data transfer between application components along overlay channels;
[0043] 3. Availability of a variety of virtual network functions (VNFs) and other traffic engineering (TE) methods on DTN channels based on machine learning algorithms fordistribution, balancing, shaping, and filtering to control and manage quality of service (QoS) of an overlay channel (further channel); and
[0044] 4. Reliable isolation of control plane and data plane in DTN from errors in network equipment, and as well as isolation of different data flows and malicious influences in these planes.
[0045] In the NPC, computational resources, as core elements, are the cornerstone of supporting various complex applications and services. Therefore, the intelligent allocation of computational resources is an important mechanism for the NPC to achieve efficiency, flexibility, and scalability. The computational resources allocation mechanism should perceive and understand the specific demand for computational resources of different tasks in real time, which may vary according to the nature, size, priority, and real-time requirements of tasks. Then, the computational resource allocation mechanism automatically formulates and executes an optimal computational resource allocation scheme based on the analysis results. This process may involve the allocation of computational resources across regions, data centers, and even cloud platforms, aiming to achieve global optimization and efficient utilization of computational resources.
[0046] In the NPC, how to reasonably allocate computational resources among computation / application service flows is a concern for computing service requests. This kind of problem is often referred to as the task allocation problem of the NPC. Assuming that there is a set of agent nodes responsible for task allocation in the NPC, the task allocation can be regarded as a communication and decision-making between the agent nodes. There are following three methods to deal with the communication and decision-making between the agent nodes.
[0047] Method 1: Centralized method. Suppose there is an entity named control center in the network, all agent nodes send state information of their own nodes to the control center, and the control center makes decisions for each agent node based on the received state information of the agent node.
[0048] However, the centralized method may result in large size of input data, high computing complexity, and extra latency due to a process of the control center collecting the state information from all agent nodes. Therefore, it may be difficult for the centralized method to satisfy scale and rate requirements of task allocation in the NPC.
[0049] Method 2: Decentralized method with communication. Suppose every agent node can broadcast its state information to all neighboring agent nodes (i.e., agent nodes that are adjacent to the agent node in location). Then, each agent node autonomously makes decisions according to its state information and state information of the neighboring agent nodes.
[0050] However, in the method 2, the communication between agent nodes may cause communication overhead, which may make it difficult for the decentralized method with communication to satisfy the scale and rate requirements of task allocation in the NPC.
[0051] Method 3: Fully decentralized method. Suppose there is no communication between agent nodes, and each agent collects its behavior history, i.e., what actions the agent node has performed and the effect of those actions. Therefore, decisions of each agent node are based on only the behavior history of that agent node itself.
[0052] However, in the method 3, each agent node cannot collect information of other agent nodes, and if an agent node cannot run a task, the agent node cannot assign the task to other agent nodes because of a lack of information about other agent nodes, so the task may be set to an unscheduled state to wait for subsequent scheduling. Therefore, the method 3 may lead to low efficiency and accuracy of task allocation.
[0053] In view of this, a task allocation method in an NPC is provided, in which the NPC is divided into multiple domains and a designated agent node is allocated in each domain, and the designated agent node performs an information collection and a decision-making of task allocation. In this way, compared with the centralized method, the task allocation method may reduce the computational complexity and the latency caused by the information collection process. Compared with the decentralized method with communication, the task allocation method may reduce communication overhead caused by broadcast among agent nodes, so as to satisfy the requirements of scale and rate of task allocation requests in the NPC as much as possible. Compared with the fully decentralized method, the task allocation method may allocate tasks in the entire NPC, so that efficiency and accuracy of task allocation are improved.
[0054] To better understand the embodiments of the present disclosure, an NPC architecture applicable to the embodiments of the present disclosure is first introduced in combination with FIG. 1.
[0055] FIG. 1 is a schematic diagram of an NPC architecture in accordance with some embodiments. As shown in FIG. 1, the NPC architecture includes an applications, application services, and network functions (ASNF) layer, an NPC infrastructure control (NPCIC) layer, a resource layer, an application operations management (AOM) layer, domain data transmission networks (DTNs), DTN control layers, DCs, and NPCRs. Each part will be described separately below.
[0056] 1. ASNF layer
[0057] The ASNF layer is located in a first layer of the NPC architecture from top to bottom (i.e., the top layer of the NPC architecture), which is responsible for presentation development of applications, including code for the applications, data, application operation specifications (AOSs), application services (ASs), virtual network functions (VNFs) required by application operations, and data transfer network specification between application components.
[0058] 2. NPCIC layer
[0059] The NPCIC layer is located in a second layer of the NPC architecture from top to bottom. The NPCIC layer is responsible for providing scheduling and allocation of application components to NPC resources in accordance with AOS and predicted time for computing, for data transfer, determination, collection, and aggregation of resources as necessary to comply with QoS resource requirements in accordance with the SLA of the application based on the current state of the resources, creating an overlay network according to AOS (topology, QoS channels, and security management). On the NPCIC layer, it is determined which VNFs will be required and their locations in the data transmission network.
[0060] 3. Resource layer
[0061] The resource layer is located in a third layer of the NPC architecture from top to bottom. This resource layer is responsible for monitoring a current state of the NPC, collecting network data, and achieving a unified representation of the NPC.
[0062] 4. AOM layer
[0063] The AOM layer is located at a leftmost part of the NPC architecture. The AOM layer may orchestrate an interaction of application components according to AOS, collect resource consumption data of each application component, and is responsible for security and management of the entire NPC.
[0064] 5. Domain DTN
[0065] There may be more than one domain DTN. As shown in FIG. 1, under the ASNF layer, NPCIC layer, and resource layer, multiple domain DTNs are provided. Each domain DTN may include software-defined network (SDN) data planes, an overlay network, and may be connected to a domain DTN control layer. The domain DTN control layer may interact with the ASNF layer, the NPCIC layer and the resource layer. In addition, each domain DTN may be connected to one or more NPCRs, and the one or more NPCRs may be connected to one or more data centers (DCs) / computing edges.
[0066] Each domain DTN may be connected to the one or more NPCRs. The NPCR may be used to implement functionality of at least one of the following devices: a task manager, a traffic and task router, a virtual private network (VPN) gateway, or a client device (e.g., customer premises equipment (CPE)). In the task allocation problem, the NPCR decides whether it is to execute a certain application function (AF) / virtual network function (VNF) on a DC connected to the NPCR, and whether to forward APF / VNF not accepted by the current facility for some reason to other facilities (e.g., other NPCRs) whose computing resources are more promising from overall application execution efficiency point of view.
[0067] The DC / computing edge is a computational infrastructure that may integrate computing, storage, and network resources to provide data processing, task processing, storage, transmission,and computing services.
[0068] The overlay network is a computer network that is layered on top of another network (i.e., a logical network rather than a physical network). Nodes in an overlay network can be considered as being connected by virtual or logical links, each of which corresponds to a path in the underlying network, possibly through many physical links.
[0069] Software-defined networking (SDN) is a network management approach that enables dynamic and programmatically efficient network configuration to improve network performance and monitoring in a way that is more similar to cloud computing than traditional network management. SDN aims to improve the static architecture of traditional networks and centralize network intelligence in one network component by separating the forwarding process (data plane) of network packets from the routing process (control plane).
[0070] The domain DTN control layer has functions of managing network applications of the domain DTN, controlling channel quality of the domain DTN, ensuring network security of the domain DTN, or managing distributed ledger of the domain DTN.
[0071] As shown in FIG. 1, the ASNF layer and the NPCIC layer, as well as the NPCIC layer and the resource layer may interact with each other. The AOM layer may interact with the ASNF layer, the NPCIC layer, the resource layer, or the multiple domain DTNs.
[0072] FIG. 2 is a schematic diagram of a domain division of an NPC architecture in accordance with some embodiments of the present disclosure.
[0073] The NPC 200 may include multiple domains, for example, four domains as shown in FIG.2, which are domain 1, domain 2, domain 3, and domain 4. The domain may include one or more NPCRs.
[0074] In some examples, a domain includes multiple NPCRs. For example, as shown in FIG. 2, each domain may include multiple NPCRs, one of which may be a designated NPCR, as shown by the circle filled with diagonal lines in FIG. 2, and the other NPCRs may be non-designated NPCRs, as shown by the white circle in FIG. 2.
[0075] In some other examples, there may be one or more domains, each including one NPCR, while other domains may include multiple NPCRs. In a domain that includes one NPCR, the NPCR may be the designated NPCR and send state information of the domain to the other domains.
[0076] The domain may further include one or more DCs, one of which is connected to an NPCR in the domain, and the connected NPCR may monitor a resource state of this DC.
[0077] For example, an NPCR in a domain may monitor network state information of its links and resource state information of its connected DC(s), and send such network state information and resource state information to a designated NPCR in the domain. In an example of domain 1 , NPCR 1 (i.e., a designated NPCR in domain 1) may receive network state information and resource stateinformation sent by the other three NPCRs 2 (i.e., non-designated NPCRs in domain 1), and use the network state information and resource state information to make task allocation decisions.
[0078] In addition, if NPCR 1 decides to run a task in domain 1, the DC 1 in domain 1 is responsible for execution of the task. If NPCR 1 decides not to run the task in domain 1, it may be executed in other domains in the NPC, namely domain 2, domain 3, or domain 4.
[0079] It is understood that the number of DCs in different domains can be the same or different. For example, in FIG. 2, there is one DC connected to an NPCR in domain 1 ; whereas in domain 3, there are two DCs connected to different NPCRs, respectively.
[0080] It is understood that the NPC shown in FIG. 2 is divided into four domains, and there is one designated NPCR in each domain. In this way, the designated NPCR only receives state information from non-designated NPCRs in its domain instead of receiving state information from non-designated NPCRs in other domains, which may avoid complex calculation and additional delay caused by the centralized method in which the control center collects the state information from all agent nodes. By selecting the designated NPCR of each domain, non-designated NPCRs in the domain may only transmit state information to the designated NPCR, which may also reduce additional communication overhead caused by all agent nodes broadcasting to each other in the decentralized method.
[0081] As an example, the division of the NPC 200 may be achieved through machine learning clustering algorithms.
[0082] In the multiple domains included in an NPC, there may be an equal number of NPCRs in all domains, an equal number of NPCRs in some domains and different numbers of NPCRs in other domains, or different numbers of NPCRs in all domains.
[0083] It can also be understood that the domains of the embodiments of the present disclosure are illustrated in FIG. 2 with four domains as an example. In other possible implementations, the NPC may include other numbers of domains, e.g., 2, 3, 5, etc., and the domain may include other numbers of NPCRs and / or DCs.
[0084] FIG. 3 illustrates a task allocation method in accordance with some embodiments of the present disclosure. Method 300 can be applied to the NPC architecture shown in FIG. 2, and can also be applied to other NPC architectures. The method 300 may be performed at a first NPCR, which is a designated NPCR in a first domain of the NPC. The first domain includes the first NPCR and at least one second NPCR, which may be understood as a non-designated NPCR in the first domain. The method 300 may include the following steps.
[0085] In step 310, the first NPCR obtains an application request for requesting processing of a target task. For example, the target task may be a computing task, or the target task may be a data storage task.
[0086] In some embodiments, the application request may carry SLA constraints of the target task. In this way, the first NPCR may make an allocation decision of the target task according to the SLA constraints of the target task.
[0087] The SLA constraints may, for example, include at least one of: requirements for computational resources of the target task, requirements for storage resources of the target task, or a maximum response time of the target task.
[0088] In step 320, the first NPCR obtains first state information and one or more second state information, the first state information includes state information of the one or more second NPCRs, and the one or more second state information includes state information of one or more second domains in the NPC, and the state information indicates a network state and / or resource state.
[0089] The state information refers to the state information of the one or more second NPCRs and the state information of the one or more second domains in the NPC.
[0090] The network state may include bandwidth, latency, loss, etc. The resource state may include a model, frequency, utilization, amount of available memory, etc., of central processing unit (CPU), etc.
[0091] For example, the state information may also include task allocation information, which indicates an execution order of tasks. For example, the task allocation information can be a task list that includes identification information of multiple tasks and an execution priority of the multiple tasks.
[0092] The state information of the one or more second NPCRs can be understood as network state information of connected links of each of the one or more second NPCRs. Furthermore, the state information of the one or more second NPCRs may also include resource state information of DC(s) that are connected to the one or more second NPCR.
[0093] State information of a second domain can be understood as state information of one or more NPCRs collected by a designated NPCR in the second domain, and the description of the state information may be referred to the state information of the one or more second NPCRs described above for simplicity.
[0094] The one or more second state information including state information of the one or more second domains in the NPC can be understood as that: one second state information corresponds to a second domain in the NPC, and the number of second state information and the number of second domains are equal.
[0095] In step 330, the first NPCR allocates the target task based on the application request, the first state information, and the second state information.
[0096] In the embodiments of the present disclosure, the first NPCR can determine, based on thecollected first and second state information, whether to execute the target task in the first domain or forward the application request to other domains to execute the target task, so as to complete the allocation of the target task.
[0097] For example, suppose that the first NPCR is a designated NPCR in domain 1 of FIG. 2 (i.e., NPCR 1), then the one or more second NPCRs are three non-designated NPCRs in domain 1 of FIG. 2 (i.e., NPCRs 2), and the one or more second domains are domain 2, domain 3, and domain 4 of FIG. 2. NPCR 1 can collect state information of the three NPCRs 2 in domain 1 (i.e., first state information). NPCR 1 can also collect state information of domain 2, domain 3, and domain 4 (i.e., one or more second state information). In this case, if NPCR 1 obtains an application request, NPCR 1 can determine, based on the collected first and second state information, whether to execute the target task in domain 1 or forward the application request to other domains to execute the target task, so as to complete the allocation of the target task.
[0098] In one possible implementation, there are multiple application requests each for requesting processing of a respective target task. If the multiple application requests do not arrive at the same time, the first NPCR can allocate multiple target tasks sequentially in a manner in which the multiple application requests arrive, so as to achieve the multi-task allocation. If the multiple application requests arrive at the first NPCR at the same time, the first NPCR can allocate the multiple target tasks in any order or a preset order. If some of the multiple application requests arrive at the first NPCR at the same time and some of the application requests do not arrive at the first NPCR at the same time, the first NPCR can sort the application requests that do not arrive at the first NPCR at the same time according to the arrival order of the multiple application requests. Then, the application requests that arrive at the first NPCR at the same time are sorted according to any order or some preset order. Then, the processing order of the multiple application requests is obtained by integrating them, and the multiple target tasks are allocated according to the processing order.
[0099] According to the task allocation method provided by the embodiments of the present disclosure, the NPC is divided into multiple domains and there is a designated NPCR in each domain. The designated NPCR may be responsible for state information collection and task allocation decision of its own domain. When the first NPCR in the first domain obtains the application request, the first NPCR may allocate the target task according to the collected first state information and second state information. Compared with the centralized method, the method provided by the embodiments of the present disclosure may assign multiple designated NPCRs to share the communication and decision-making tasks of the control center, instead of having one control center responsible for information collection and decision-making for the entire NPC, so as to reduce the computational complexity of the control center and reduce the time delay ofinformation collection. In addition, compared with the decentralized method with communication, the method provided in the embodiments of the present disclosure may assign the first NPCR to receive the first state information in its domain and the second state information in the one or more second domains, instead of having each NPCR broadcast state information to one another, thereby reducing the additional communication overhead in the task allocation process. Compared with the fully decentralized method, the method provided in the embodiments of the present disclosure may allocate tasks in the entire NPC, so that the efficiency and accuracy of task allocation is improved. Therefore, the method provided by the embodiments of the present disclosure may balance the delay and communication overhead, which may improve the efficient and accurate allocation of tasks in the NPC.
[0100] In some embodiments, the method may further include: receiving, by any one of the one or more second NPCRs in the first domain, the application request from a terminal device, and forwarding, by the second NPCR, the application request to the first NPCR. Accordingly, step 310 includes: receiving, by the first NPCR, the application request from the second NPCR.
[0101] In these embodiments, the application request is sent by the terminal device to a second NPCR in the domain, and the second NPCR can, after receiving the application request, send the application request to the first NPCR within the domain. The first NPCR then performs task allocation.
[0102] In some other embodiments, the application request may be sent directly from the terminal device to the first NPCR without going through the second NPCR, depending on the specific implementations .
[0103] In some embodiments, the method may further include: transmitting, by the first NPCR, the application request to one or more designated NPCRs in the NPC.
[0104] It is understood that the designated NPCRs in other domains may send the second state information to the first NPCR after receiving the application request, or may send the second state information to the first NPCR periodically or based on other trigger conditions. Correspondingly, the first NPCR may receive the second state information from the designated NPCRs in other domains.
[0105] FIG. 4 is a schematic diagram of a process of receiving and transmitting an application request by a designated NPCR in accordance with some embodiments of the present disclosure.
[0106] For example, as shown in FIG. 4, when an application request is sent from a terminal device to NPCR 2 in domain 1 , NPCR 2 forwards the application request to NPCR 1. After NPCR 1 receives the forwarded application request, NPCR 1 sends copies of the application request to NPCR 3 in domain 2, NPCR 4 in domain 3, and NPCR 5 in domain 4.
[0107] In the foregoing embodiments, the application request within the first domain is collectedby the first NPCR, so that communication overhead may be reduced since the one or more second NPCRs do not need to broadcast the application request to each other.
[0108] In addition, in the foregoing embodiments, the first NPCR transmits the application request to the one or more designated NPCRs, so that the application request is shared in the NPC, and the target task may be allocated to another domain in the following process.
[0109] In FIG. 4, based on the application request, NPCR 3 can collect second state information of domain 2 and send it to NPCR 1. Similarly, based on the application request, NPCR 4 can collect second state information of domain 3 and send it to NPCR 1, and NPCR 5 can collect second state information of domain 4 and send it to NPCR 1.
[0110] In terms of how to obtain by the first NPCR one or more second state information, a variety of implementations are provided and described below.
[0111] In a possible implementation, the first NPCR obtains one or more second state information, including: receiving, by the first NPCR, one of the one or more second state information from a third NPCR of a respective second domain in one or more second domains, where the third NPCR is a designated NPCR in the second domain.
[0112] It is understood that a designated NPCR of each second domain can send second state information of the second domain to the first NPCR, so that the first NPCR can summarize the received second state information to obtain the one or more second state information, so that the communication overhead between the first NPCR and a plurality of third NPCRs may be reduced.
[0113] In another possible implementation, the second state information can be forwarded between the designated NPCRs in the domains of the NPC, and finally forwarded to the first NPCR. In this manner, the first NPCR obtains one or more second state information, including: receiving, the first NPCR, third state information from a fourth NPCR, where the third state information includes the one or more second state information, and the fourth NPCR is a designated NPCR in the one or more second domains.
[0114] In the foregoing embodiments, the first NPCR receives the second state information from a single fourth NPCR instead of from a plurality of third NPCRs, so that the communication overhead between the first NPCR and a plurality of third NPCRs may be reduced.
[0115] FIG. 5 is a schematic diagram of a process of receiving one or more second state information by a designed NPCR in accordance with some embodiments of the present disclosure.
[0116] For example, as shown in FIG. 5, NPCR 3 of domain 2 forwards second state information of domain 2 to NPCR 4 of domain 3, and NPCR 4 packs the second state information of domain 2 and second state information of domain 3 and forwards them to NPCR 5 of domain 4 together. NPCR 5 packages the second state information of domain 2, the second state information of domain 3, and second state information of domain 4, and forwards them to NPCR 1 of domain 1.In this way, the second state information is transmitted in a one-by-one form.
[0117] FIG. 6 is another schematic diagram of a process of receiving one or more second state information by a designed NPCR in accordance with some embodiments of the present disclosure.
[0118] For another example, as shown in FIG. 6, NPCR 3 of domain 2 forwards second state information of domain 2 to NPCR 5 of domain 4, and NPCR 5 packs the second state information of domain 2 and second state information of domain 4 and forwards them to NPCR 4 of domain 3 together. NPCR 4 packages the second state information of domain 4, the second state information of domain 4, and second state information of domain 3, and forwards them to NPCR 1 of domain 1. In this way, the second state information is also transmitted in a one-by-one form.
[0119] It is understood that, the second state information can be forwarded between the designated NPCRs in the domains of the NPC in other transmission paths, as long as the one or more second state information can be finally forwarded to the first NPCR.
[0120] The following provides a detailed description of how the first NPCR performs the task allocation process.
[0121] In some embodiments, the application requests may carry SLA constraints of the target task, and step 330 may include: selecting, by the first NPCR, a target DC satisfying the SLA constraints from the NPC based on the first state information and the second state information; forwarding, by the first NPCR, the target task to the NPCR corresponding to the target DC. Through the NPCR, the target task is allocated to the target DC for processing.
[0122] In the foregoing embodiments, the target task is allocated to the target DC that is selected in the whole NPC, and based on both the first state information and the second state information, so that the target task may be allocated more accurately.
[0123] As described above, the SLA constraints include at least one of requirements for computational resources of the target task, requirements for storage resources of the target task, or a maximum response time of the target task, and the first state information and the second state information may reflect the network state and resource state in each domain. Combining this information, the first NPCR may determine whether there is a DC in each domain that may satisfy the SLA constraints, and then make the allocation decision of the target task.
[0124] For example, if there are multiple DCs that satisfy the SLA constraints of the target task, the first NPCR may randomly select a DC from the multiple DCs as the target DC, or the first NPCR may use some algorithms to select a DC from the multiple DCs as the target DC. Of course, other selection methods may be used. For example, the first NPCR may select a DC from the multiple DCs as the target DC based on load of the multiple DCs. The first NPCR may select a DC with the minimum load among the multiple DCs as the target DC.
[0125] In one possible implementation, the first NPCR may select the target DC from the firstdomain first. If there is no target DC in the first domain that can satisfy the SLA constraints, the first NPCR may select the target DC from other domains.
[0126] In another possible implementation, the first NPCR may directly select the target DC from the entire NPC.
[0127] After selecting the target DC, the first NPCR may determine a transmission path from the first NPCR to the target DC, and then allocate bandwidth for the transmission path. After the target task is transferred from the first NPCR to the target DC, the allocated bandwidth is released. After the target DC obtains the target task, it can use its own resources to execute the target task.
[0128] It is understood that if the first NPCR fails to find a target DC by the method described above, the target task can be set to an unscheduled state to wait for subsequent scheduling.
[0129] In some embodiments, the method may further include: receiving, by a first NPCR, fourth state information from a third NPCR in each second domain of the one or more second domains, where the third NPCR is a designed NPCR in the second domain, the fourth state information indicates a state of one or more first candidate DCs in the one or more second domains, and the one or more first candidate DCs satisfy the SLA constraints. In this case, selecting the target DC satisfying the SLA constraints from the NPC includes: selecting the target DC from the NPC based on the first state information, the second state information and the fourth state information.
[0130] It is understood that the third NPCR is the designated NPCR in other domains besides the first domain in the NPC. Since the first NCPR sends the application request to one or more third NPCRs in the second domains, each third NPCR may obtain the SLA constraints of the target task and select the candidate DC in its own domain according to the state information of its own domain. Each third NPCR may carry this decision in the fourth state information and send it to the first NPCR. Correspondingly, the first NPCR may receive the fourth state information sent by the third NPCR of each second domain. In this way, the first NPCR may combine the first state information, the second state information, and the fourth state information to select the target DC.
[0131] By selecting candidate DCs individually in each domain, the processing burden of the first NPCR may be reduced.
[0132] In some embodiments, the first NPCR may adopt, based on the first state information, a convolution of multidimensional resources to select one or more DCs that satisfy the SLA constraints from the first domain as one or more second candidate DCs. In addition, based on the second state information, the state of one or more first candidate DCs, and the state of one or more second candidate DCs, the first NPCR may select the target DC from the one or more first candidate DCs and the one or more second candidate DCs through a greedy strategy
[0133] Selecting the one or more DCs as one or more second candidate DCs using convolution of multidimensional resources may include: using convolution of multidimensional resources toextract features from the first state information, and based on the extracted features, selecting, from the first domain, one or more DCs that meet SLA constraints as the one or more second candidate DCs. In this way, convolution operation may attract more accurate features, so that accuracy of candidate DC selection may be improved.
[0134] Selecting the target DC using the greedy strategy may include: randomly selecting a DC from the one or more first candidate DCs and the one or more second candidate DCs, and obtaining current load of the DC. If the current load of the DC is less than or equal to the preset threshold, the DC is selected as the target DC. If the current load of the DC is greater than the preset threshold, another DC is randomly selected from the remaining DCs, current load of the another DC is obtained, and whether the current load of the another DC is less than or equal to the preset threshold is determined, until the target DC is selected. In this way, by using the greedy strategy, the target DC can be efficiently selected.
[0135] In the foregoing embodiments, the first NPCR uses the methods of convolution of multidimensional resources and greedy strategy in selecting the target DC, so that the accuracy and efficiency of task allocation may be improved.
[0136] The convolution of multidimensional resources and greedy strategy are only examples, and other methods can be used in the embodiments of the present disclosure to select the target DC.
[0137] The task allocation method according to the embodiments of the present disclosure is described above in combination with FIGS. 1 to 6. The task allocation apparatus of the embodiments of the present disclosure will be described below in combination with FIGS. 7 and 8.
[0138] FIG. 7 is a block diagram of a structure of a task allocation apparatus in accordance with some embodiments of the present disclosure. The task allocation apparatus may be configured to perform functions of the first NPCR in the foregoing method embodiments, and therefore can also achieve beneficial effects of the foregoing method embodiments. In the embodiments of the present disclosure, the task allocation apparatus may be a first NPCR or a module of the first NPCR (for example, a chip or a circuit).
[0139] As shown in FIG. 7, the task allocation apparatus 700 includes an obtaining unit 710 and a processing unit 720. The task allocation apparatus 700 is used to implement functions of the first NPCR in the foregoing method embodiments as shown in FIG. 3.
[0140] The obtaining unit 710 may be configured to obtain an application request used for requesting processing of a target task, and obtain first state information and one or more second state information. The first state information includes state information of the one or more second NPCRs, the one or more second state information includes state information of one or more second domains in the NPC, and the state information indicates at least one of network state or resourcestate. The processing unit 720 may be configured to allocate the target task based on the application request, the first state information and the second state information.
[0141] In some embodiments, the obtaining unit 710 may be configured to receive the application request from any one of the one or more second NPCRs.
[0142] In some embodiments, the obtaining unit 710 may be configured to receive second state information from a third NPCR in a second domain of the one or more second domains, where the third NPCR is a designated NPCR in the second domain.
[0143] In some embodiments, the obtaining unit 710 may be configured to receive third state information from a fourth NPCR, where the third state information includes the one or more second state information, and the fourth NPCR is a designated NPCR in the one or more second domains.
[0144] In some embodiments, the one or more second domains may include one or more designated NPCRs, and the task allocation apparatus 700 may further include a transmitting unit 730. The transmitting unit 730 may be configured to send the application request to one or more of the designated NPCRs.
[0145] In some embodiments, the application request carries service level agreement (SLA) constraints of the target task. The processing unit 720 may further be configured to: select, from the NPC, a target data center (DC) that satisfies the SLA constraints, based on the first state information and the second state information; and transmit the target task to a NPCR corresponding to the target DC, so that the target task is allocated to the target DC through the NPCR for processing.
[0146] In some embodiments, the obtaining unit 710 may further be configured to receive fourth state information from a third NPCR of each of the one or more second domains, where the third NPCR is a designated NPCR in the second domain, the fourth state information indicates a state of one or more first candidate DCs in the one or more second domains, and the one or more first candidate DCs satisfy the SLA constraints. The processing unit 720 may be configured to select, from the NPC, the target DC based on the first state information, the second state information, and the fourth state information.
[0147] In some embodiments, the processing unit 720 may further be configured to: receive fourth state information from a third NPCR of each of the one or more second domains, where the fourth state information indicates a state of one or more first candidate DCs in the one or more second domains, and the one or more first candidate DCs satisfy the SLA constraints; and select the target DC, based on the second state information, the state of the one or more first candidate DCs, and a state of the one or more second candidate DCs, from the one or more first candidate DCs and the one or more second candidate DCs.
[0148] In some embodiments, the SLA constraints include at least one of: requirements for computing resources of the target task; requirements for storage resources of the target task; or a maximum response time of the target task.
[0149] A more detailed description of the obtaining unit 710 and processing unit 720 can be referred to the relevant description in the foregoing method embodiment shown in FIG. 3.
[0150] As shown in FIG. 8, a task allocation apparatus 800 includes a processor 810 and an interface circuit 820. The processor 810 and the interface circuit 820 are coupled to each other. It is understood that the interface circuit 820 can be a transceiver or an input / output interface. In some embodiments, the task allocation apparatus 800 may further include a memory 830, and the memory 830 is configured to store instructions that, when executed by the processor 810, cause the task allocation apparatus 800 to perform any of the methods described above. The memory 830 is further configured to store input data required by the processor 810 to when it runs the instructions or the data produced after the processor 810 has run the instructions.
[0151] In some other examples, the task allocation apparatus 800 includes a processor 810, and the interface circuit 820 may also be understood as part of the processor 810.
[0152] When the task allocation apparatus 800 is used to implement the method shown in FIG. 3, it may be interpreted as a first NPCR itself, a module in the first NPCR, a circuit or chip, or a combination thereof. The processor 810 is used to implement the functions of the processing unit 720, and the interface circuit 820 is used to implement the functions of the obtaining unit 710. For example, the task allocation apparatus 800 may further include a memory 830, the processor 810 and the interface circuit 820 are connected to the memory 830 over a circuit or a wire, and the processor 810 is configured to read and execute instructions stored in the memory 830.
[0153] In the present disclosure, the terms “a” or “an” are defined to mean “at least one”, that is, these terms do not exclude a plural number of items, unless stated otherwise.
[0154] In the present disclosure, unless stated otherwise, the terms “connected” and “coupled”, and derivatives and variants thereof, refer herein to any structural or functional connection or coupling, either direct or indirect, between two or more elements. For example, connection or coupling between the elements can be acoustical, mechanical, optical, electrical, thermal, logical, or any combinations thereof.
[0155] In the present disclosure, the expression “based on” is intended to mean “based at least partly on”, that is, this expression can mean “based solely on” or “based partially on”, and so should not be interpreted in a limited manner. More particularly, the expression “based on” could also be understood as meaning “depending on”, “representative of’, “indicative of’, “associated with” or similar expressions.
[0156] In the present disclosure, the terms “system” and “network” may be used interchangeablyin different embodiments of this disclosure. “At least one” means one or more, and “a plurality of’ means two or more. The term “and / or” describes an association relationship of associated objects, and indicates that three relationships may exist. For example, A and / or B may indicate the following three cases: Only A exists, both A and B exist, and only B exists, where A and B may be singular or plural. The character “ / ” indicates an “or” relationship between associated objects. “At least one of the following items (pieces)” or a similar expression thereof indicates any combination of these items, including a single item (piece) or any combination of a plurality of items (pieces). For example, “at least one of A, B, or C” includes: only A; only B; only C; A and B; A and C; B and C; or A, B, and C, and “at least one of A, B, and C” may also be understood as including: only A; only B; only C; A and B; A and C; B and C; or A, B, and C. In addition, unless otherwise specified, ordinal numbers such as “first” and “second” in embodiments of this disclosure are used to distinguish between a plurality of objects, and are not used to limit a sequence, a time sequence, priorities, or importance of the plurality of objects.
[0157] A person skilled in the art should understand that embodiments of this disclosure may be provided as a method, an apparatus (or system), a computer-readable storage medium (e.g., a non- transitory computer-readable storage medium), or a computer program product. Therefore, this disclosure may use a form of a hardware-only embodiment, a software-only embodiment, or an embodiment with a combination of software and hardware. Moreover, this disclosure may use a form of a computer program product that is implemented on one or more computer-usable storage media (including but not limited to a disk memory, an optical memory, and the like) that includes computer-usable program code.
[0158] This disclosure is described with reference to the flowcharts and / or block diagrams of the method, the device (system), and the computer program product according to this disclosure. It should be understood that computer program instructions may be used to implement each process and / or each block in the flowcharts and / or the block diagrams and a combination of a process and / or a block in the flowcharts and / or the block diagrams. The computer program instructions may be provided for a general-purpose computer, a dedicated computer, an embedded processor, or a processor of another programmable data processing device and enable a machine to execute the instructions. When executed by any computer or the processor of a programmable data processing device, the instructions cause the apparatus to implement specific functions as described in one or more procedures in the flowcharts and / or one or more blocks in the block diagrams. The computer program instructions may alternatively be stored in a computer-readable memory that can indicate a computer or another programmable data processing device to work in a specific manner, so that the instructions stored in the computer-readable memory generate an artifact that includes an instruction apparatus. The instruction apparatus implements a specificfunction in one or more procedures in the flowcharts and / or one or more blocks in the block diagrams.
[0159] The computer program instructions may alternatively be loaded onto a computer or another programmable data processing device, so that a series of operations and steps are performed on the computer or the another programmable device, so that computer-implemented processing is generated. Therefore, the instructions executed on the computer or on another programmable device provide steps for implementing specific functions as described in one or more procedures in the flowcharts and / or one or more blocks in the block diagrams.
[0160] It is clear that a person skilled in the art can make various modifications and variations to this disclosure without departing from the scope of this disclosure. This disclosure is intended to cover these modifications and variations of this disclosure provided that they fall within the scope of protection defined by the following claims and their equivalent technologies.
Claims
CLAIMS1. A task allocation method, performed at a first network powered by computing router (NPCR), a first NPCR being a designated NPCR in a first domain of a network powered by computing (NPC), the first domain comprising the first NPCR and one or more second NPCRs, and the method comprising: obtaining an application request used for requesting processing of a target task; obtaining first state information and one or more second state information, wherein the first state information comprises state information of the one or more second NPCRs, the one or more second state information comprises state information of one or more second domains in the NPC, the state information indicates at least one of network state or resource state; and allocating the target task based on the application request, the first state information and the second state information.
2. The method of claim 1, wherein obtaining the application request comprises: receiving the application request from any one of the one or more second NPCRs.
3. The method of claim 1 or 2, wherein obtaining the one or more second state information comprises: receiving one of the one or more second state information from a third NPCR in a respective second domain of the one or more second domains, wherein the third NPCR is a designated NPCR in the second domain.
4. The method of claim 1 or 2, wherein obtaining the one or more second state information comprises: receiving third state information from a fourth NPCR, wherein the third state information comprises the one or more second state information, and the fourth NPCR is a designated NPCR in the one or more second domains.
5. The method of claim 3 or 4, wherein the one or more second domains comprise one or more designated NPCRs, and the method further comprises: transmitting the application request to the one or more designated NPCRs.
6. The method of any one of claims 1 to 4, wherein the application request carries service level agreement (SLA) constraints of the target task; and allocating the target task based on the application request, the first state information and the second state information comprises: selecting, from the NPC, a target data center (DC) that satisfies the SLA constraints, based on the first state information and the second state information; and transmitting the target task to a NPCR corresponding to the target DC, so that the target task is allocated to the target DC through the NPCR for processing.
7. The method of claim 6, further comprising: receiving fourth state information from a third NPCR of each of the one or more second domains, wherein the third NPCR is a designated NPCR in the second domain, the fourth state information indicates a state of one or more first candidate DCs in the one or more second domains, and the one or more first candidate DCs satisfy the SLA constraints; wherein selecting, from the NPC, the target DC that satisfies the SLA constraints comprises: selecting, from the NPC, the target DC based on the first state information, the second state information, and the fourth state information.
8. The method of claim 7, further comprising: selecting, from the first domain, one or more DCs that satisfy the SLA constraints as one or more second candidate DCs based on the first state information and through convolution of multidimensional resources; selecting, from the NPC, the target DC based on the first state information, the second state information, and the fourth state information comprises: selecting the target DC, based on the second state information, the state of the one or more first candidate DCs, and state of the one or more second candidate DCs, from the one or more first candidate DCs and the one or more second candidate DCs through greedy strategy.
9. The method of any one of claims 6 to 8, wherein the SLA constraints comprise at least one of: requirements for computing resources of the target task; requirements for storage resources of the target task; or a maximum response time of the target task.
10. A task allocation apparatus, configured to perform the method according to any one of claims 1 to 9.
11. A task allocation apparatus comprising: one or more processors; and a memory storing instructions which, when executed by the one or more processors, cause the apparatus to perform the method of any one of claims 1 to 9.
12. A task allocation system, comprising a plurality of domains, wherein the plurality of domains comprise a first domain and one or more second domains, the first domain comprises a first NPCR and one or more second NPCRs, the first NPCR is a designated NPCR of the first domain, and the first NPCR is configured to perform the method of any one of claims 1 to 9.
13. A computer-readable storage medium having instructions stored thereon which, when executed by an apparatus, cause the apparatus to perform the method of any one of claims 1 to 9.
14. A computer program product storing instructions which, when executed, cause anapparatus to perform the method of any one of claims 1 to 9.