Communication method, apparatus, storage medium, chip and program product
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2025-01-23
- Publication Date
- 2026-07-24
Smart Images

Figure CN122458094A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a communication method, device, storage medium, chip, and program product. Background Technology
[0002] When a terminal unloads a task onto a device (such as a compute node) managed by a remote device, it typically needs to determine the device capable of executing the task by combining the terminal's hardware resource information, the hardware resource information of the device managed by the remote device, and the resource requirements of the task to be unloaded, and then unload the task onto that device. However, during the unloading process, both the terminal and the remote device need to obtain the hardware resource information of the other end. Since the amount of data related to the hardware resource information of the terminal and the device managed by the remote device is usually large, a significant amount of data needs to be transferred between the terminal and the remote device during task unloading. Therefore, reducing the amount of data transferred between the terminal and the remote device during task unloading has become a pressing technical problem that needs to be solved. Summary of the Invention
[0003] This application provides a communication method, apparatus, storage medium, chip, and program product that can reduce the amount of data transmitted between the terminal and the remote device when unloading tasks.
[0004] Firstly, a communication method is provided. This method can be executed by a first device, a component of the first device (such as its processor, chip, or chip system), or a logic module or software capable of implementing all or part of the first device. The following description uses the execution of this method by the first device as an example. The communication method includes: the first device instructing a second device to select a first scheduling strategy suitable for executing a first task, where the first task is a task to be unloaded by the first device; the first device receiving the first device indicated by the second device as suitable for executing the first task. Afterward, the first device unloads the first task onto the first device. Thus, when the first device needs to unload a computing task onto another device, it only instructs the second device on the first scheduling strategy corresponding to the task. The second device selects a first device suitable for executing the first task based on the first scheduling strategy, and the first device unloads the computing task onto the first device. In this way, neither the first nor the second device needs to acquire the hardware resources of the other. Since the data volume of the first scheduling strategy is usually much smaller than the data volume describing the operating state of the hardware resources, the communication method provided in this application can significantly reduce the amount of data transmitted between the first and second devices when unloading a task.
[0005] In one possible implementation, the first device determines whether a first condition for unloading a computing task to a remote end is met, and if the first condition is met, unloads the first task to the first device.
[0006] In one possible implementation, if the first device's available resources are insufficient to meet the resource requirements of the first task, it offloads the first task to the first device, allowing the first task to be executed normally. Alternatively, if the first task is a first type of task, the first device offloads the first task to the first device, allowing specific types of services to be executed remotely on the first device.
[0007] In one possible implementation, during the process of the first device unloading the first task to the first device, the first device sends a third instruction message to the second device, instructing the first device to unload the first task to the first device, thereby enabling the second device to notify the first device to prepare the relevant resources for executing the first task, thus completing the unloading of the first task.
[0008] In one possible implementation, the resource requirements of the first task include: the computing resources required for the execution of the first task, and the service strategy of the first task. The service strategy of the first task includes at least one of the following: a low-latency service strategy, a low-power service strategy, and a low-cost service strategy. The low-latency service strategy includes: the completion latency of the first task is lower than a latency threshold; the low-power service strategy includes: the power consumption of the first device during the completion of the first task is lower than a power consumption threshold; and the low-cost service strategy includes: the cost of the device resources required to complete the first task is lower than a cost threshold. Based on this, the first device can determine whether it meets the requirements for executing the first computing task based on the resource requirements of the first task. If it does, the first device can continue to execute the first task without unloading it from the first device; if it does not meet the requirements, the first device unloads the first task from the first device to avoid the first task failing to be executed correctly. Furthermore, based on the service strategy of the first task, the first device can select an execution device that meets its service strategy for the first task, thereby better meeting the requirements for executing the first task.
[0009] In one possible implementation, the process of the first device determining the first scheduling strategy is as follows: the first device obtains a first service strategy and a task type for the first task, and then determines a second service strategy corresponding to the task type of the first task. Afterward, the first device determines a first scheduling strategy that satisfies both the first and second service strategies based on the first and second service strategies. This ensures that the device selected based on the first scheduling strategy can satisfy both the first and second service strategies of the first task.
[0010] In one possible implementation, if the first service strategy and the second service strategy are the same, the first device can select a device that satisfies the second service strategy to perform the first task.
[0011] In one possible implementation, if the first service strategy and the second service strategy are different, the first device can select a device that satisfies the first service strategy and / or the second service strategy to perform the first task.
[0012] In one possible implementation, the process of the first device determining the first scheduling strategy is as follows: the first device obtains the first service strategy of the first task and the task type of the first task. If the first device determines that there is no corresponding second service strategy for the task type of the first task, the first device can select a device that satisfies the first service strategy to execute the first task, or select a preset scheduling strategy.
[0013] In one possible implementation, the first device instructs the second device on a scheduling strategy for multiple tasks, so that the second device selects corresponding devices for each of the multiple tasks, and unloads the corresponding tasks onto the multiple devices respectively.
[0014] In one possible implementation, after the first device instructs the second device on the scheduling strategies for multiple tasks, the second device can select the corresponding device for each task based on the scheduling strategy for each task, thereby achieving batch unloading of tasks.
[0015] In one possible implementation, after the first device obtains the device assigned to each task by the second device, the corresponding task can be unloaded onto each second device.
[0016] In one possible implementation, during the process of the first device unloading the corresponding task to each second device, tasks whose available computing resources in the first device do not meet the resource requirements of the task can be unloaded first, or tasks of the first type can be unloaded first, thereby ensuring the normal execution of these tasks.
[0017] Secondly, a communication method is provided. This method can be executed by a second device, or by a component of the second device, such as a processor, chip, or chip system of the second device, or by a logic module or software capable of implementing all or part of the second device. The following description uses the execution of this method by a second device as an example. The communication method includes: the second device receiving a first scheduling strategy indicated by a first device for selecting a device suitable for performing a first task; the second device selecting a first device suitable for performing the first task based on the first scheduling strategy; and instructing the first device to the first device.
[0018] In one possible implementation, the second device may select a first device that meets the resource requirements of the first task based on the available computing resources of at least one device and a first scheduling strategy.
[0019] In one possible implementation, after the second device selects the first device, it can instruct the first device to reserve computing resources for performing the first task.
[0020] In one possible implementation, after receiving the instruction information to unload the first instruction task from the first device, the second device sends the instruction information to the first device so that the first device is ready to execute the relevant process of unloading the first task.
[0021] Thirdly, a communication device is provided for implementing the various methods described above. This communication device can be the first device described in the first aspect, or a device including the first device, or a device included in the first device, such as a chip. Alternatively, the communication device can be the second device described in the second aspect, or a device including the second device, or a device included in the second device, such as a chip. The communication device includes modules, units, or means corresponding to the methods described above, which can be implemented in hardware, software, or by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the functions described above.
[0022] In some possible designs, the communication device may include a processing module and a transceiver module. The transceiver module, also referred to as a transceiver unit, is used to implement the transmission and / or reception functions in any of the above aspects and their possible implementations. The transceiver module may consist of transceiver circuits, transceivers, transceivers, or communication interfaces. The processing module can be used to implement the processing functions in any of the above aspects and their possible implementations.
[0023] In some possible designs, the transceiver module includes a sending module and a receiving module, which are used to implement the sending and receiving functions in any of the above aspects and any possible implementation methods.
[0024] Fourthly, a communication device is provided, comprising: at least one processor; the processor being configured to execute a computer program or instructions stored in a memory to cause the communication device to perform the methods of any of the above aspects. The memory may be coupled to the processor, or may be independent of the processor. The communication device may be the first device of the first aspect, or a device comprising the first device, or a device included in the first device, such as a chip. Alternatively, the communication device may be the second device of the second aspect, or a device comprising the second device, or a device included in the second device, such as a chip. In some possible designs, the communication device includes a memory for storing necessary program instructions and data.
[0025] In one possible implementation, the processor includes logic circuitry and input and / or output interfaces. The output interfaces are used to perform the sending action in the corresponding method, and the input interfaces are used to perform the receiving action in the corresponding method.
[0026] In one possible implementation, the communication device further includes a communication interface and a communication bus, with the processor, memory, and communication interface connected via the communication bus. The communication interface is used to perform the sending and receiving actions in the corresponding method. The communication interface can also be called a transceiver. Optionally, the communication interface includes a transmitter and a receiver; in this case, the transmitter is used to perform the sending action in the corresponding method, and the receiver is used to perform the receiving action in the corresponding method.
[0027] In some possible designs, the communication device can be a chip or a chip system. When the communication device is a chip system, it can be composed of chips or may include chips and other discrete components. When the communication device is a chip, the aforementioned transmitting action / function can be understood as an output, and the aforementioned receiving action / function can be understood as an input.
[0028] Fifthly, a chip is provided, which includes a processor for implementing the functions involved in any of the above aspects or any implementation thereof.
[0029] In some possible designs, the chip includes a memory for storing necessary program instructions and data.
[0030] In a sixth aspect, a computer-readable storage medium is provided, which stores a computer program or instructions that, when executed on a communication device, enable the communication device to perform the methods of any of the above aspects or any implementation thereof.
[0031] In a seventh aspect, a computer program product containing instructions is provided, which, when run on a communication device, enables the communication device to execute any of the above aspects or any implementation thereof.
[0032] Eighthly, a communication system is provided, which includes the first means of the first aspect described above, and the second means of the second aspect.
[0033] The technical effects of any of the implementation methods in aspects two through eight can be found in the technical effects of the corresponding implementation methods in aspect one, and will not be repeated here.
[0034] It should be noted that any of the possible implementations of any of the above aspects can be combined, provided that the solutions do not contradict each other. Attached Figure Description
[0035] Figure 1 This diagram illustrates how to obtain the hardware resources of the terminal and the hardware resources of the devices managed by the remote device when the resource scheduling decision unit is deployed on the terminal.
[0036] Figure 2 This diagram illustrates how to obtain the hardware resources of the terminal and the hardware resources of the devices managed by the remote device when the resource scheduling decision unit is deployed on a remote device.
[0037] Figure 3 This is a schematic diagram of a communication system;
[0038] Figure 4 This is a schematic diagram of the hardware structure of the communication device;
[0039] Figure 5 This is a flowchart illustrating a communication method.
[0040] Figure 6 This is another flowchart illustrating a communication method;
[0041] Figure 7 This is another flowchart illustrating a communication method;
[0042] Figure 8 This is another flowchart illustrating a communication method;
[0043] Figure 9 This is another flowchart illustrating a communication method;
[0044] Figure 10 This is another flowchart illustrating a communication method;
[0045] Figure 11 This is another flowchart illustrating a communication method;
[0046] Figure 12 A schematic diagram of the system architecture for computing resources on the network side that offload computing tasks to the terminal;
[0047] Figure 13 This is another structural diagram of a communication device. Detailed Implementation
[0048] To facilitate understanding of the technical solutions provided in the embodiments of this application, a brief introduction to the relevant technologies of this application is given first. The brief introduction is as follows:
[0049] 1. Computational resource scheduling
[0050] Computational resource scheduling refers to a technology for managing and allocating computing resources to ensure that multiple computing tasks or processes can run efficiently and orderly, improve the service quality of computing tasks, increase resource utilization, and reduce hardware and software costs. These computing resources include, but are not limited to, at least one of the following: central processing unit (CPU) resources, graphics processing unit (GPU) resources, neural network processing unit (NPU) resources, memory resources, storage resources, and bandwidth resources.
[0051] When offloading computing tasks using computing resource scheduling technology, resource scheduling can be performed based on remote resources such as cloud resources, edge network resources, and carrier network resources, as well as terminal resources, to select suitable nodes for the computing tasks to be offloaded. When offloading computing tasks, the computing nodes need to be selected based on the offloading objectives of the tasks (such as quality of service, resource utilization, and computing cost).
[0052] 2. Unloading computing tasks
[0053] Computational task offloading refers to the technique of offloading computational tasks executed locally (such as on a terminal) to remote computing nodes, where the remote nodes then execute the tasks. Currently, a single-point decision-making approach is typically used to determine the node to offload computational tasks. As an example, a resource scheduling decision unit is deployed in the terminal or remote device. When a computational task needs to be offloaded, the resource scheduling decision unit obtains the terminal's hardware resources, the hardware resources of the devices managed by the remote device, the resource requirements of the task to be offloaded, and the corresponding scheduling policy for that computational task to determine the device to execute the task. After this, the terminal initiates the computational task offloading process, offloading the computational task to the device that will execute it.
[0054] The scheduling strategy includes, but is not limited to, at least one of the following: resource utilization priority, service quality priority, or task fairness priority. The terminal's hardware resources include, but are not limited to, at least one of the following: device power, device temperature, number of current computing tasks, type of current computing tasks, progress of current computing tasks, priority of current computing tasks, terminal computing power utilization, or memory utilization.
[0055] The hardware resources of the device managed by the remote device include, but are not limited to, at least one of the following: the number of current computing tasks, the type of current computing task, the progress of current computing tasks, the priority of current computing tasks, storage space, remaining bandwidth and bandwidth utilization, memory / video memory utilization, and CPU / GPU / NPU computing power utilization.
[0056] As an example, such as Figure 1 The diagram illustrates how a resource scheduling decision unit, deployed on a terminal, acquires the hardware resources of the terminal and the devices managed by the remote device. The resource scheduling decision unit has multiple pre-set scheduling policies. It acquires task status indicators (such as resource requirements and current execution status) for each computing task, as well as the terminal's hardware resource information. It also acquires the computing task queue and hardware resource information of the remote device. Finally, by combining the acquired information from both the terminal and the remote device, the resource scheduling decision unit determines which devices can execute the tasks to be unloaded from the terminal.
[0057] like Figure 2 The diagram illustrates the process of acquiring the hardware resources of the terminal and the devices managed by the remote device when the resource scheduling decision unit is deployed on a remote device. The resource scheduling decision unit has multiple pre-set scheduling policies. It acquires the computing task queue and hardware resource information of the remote device. The resource scheduling decision unit also acquires task status indicators (such as resource requirements and current execution status) for each computing task in the terminal, as well as the terminal's hardware resource information. Finally, by combining the acquired information from both the terminal and the remote device, the resource scheduling decision unit determines which devices can execute the tasks to be unloaded from the terminal.
[0058] Currently, deploying the resource scheduling decision unit on one side, and having the resource scheduling decision unit obtain the hardware resources of the terminal, the hardware resources of the devices managed by the remote device, the resource requirements of the tasks to be unloaded, and the corresponding scheduling strategy of the computing tasks to determine the device to execute the computing tasks, presents the following problems: 1. In practical applications, obtaining computing resources on the other side is difficult, which may lead to unloading tasks based solely on the hardware resources of one side, resulting in low accuracy of task unloading; 2. When there are many tasks to be unloaded, the amount of data transmitted when transmitting messages describing the operating status of hardware resources between the two devices is large; 3. When a large number of computing tasks need to be unloaded, the resource scheduling decision unit may be overloaded, resulting in the inability to unload computing tasks normally and affecting the business performance of computing tasks.
[0059] To address the aforementioned technical problems, embodiments of this application provide a communication method, comprising: a first device instructing a second device to select a first scheduling strategy suitable for a device executing a first task, wherein the first task is a task to be unloaded by the first device; the first device receiving a first device suitable for executing the first task from the second device. Subsequently, the first device unloads the first task onto the first device. Thus, when the first device needs to unload a computing task onto another device, it only instructs the second device on the first scheduling strategy corresponding to the task, and the second device selects a first device suitable for executing the first task based on the first scheduling strategy, and the first device unloads the computing task onto the first device. In this way, neither the first nor the second device needs to acquire the hardware resources of the other end. Since the data volume of the first scheduling strategy is typically much smaller than the data volume describing the operating state of the hardware resources, the communication method provided by this application can significantly reduce the amount of data transmitted between the first and second devices when unloading a task.
[0060] Furthermore, in this application, the first device only sends the scheduling strategy to the second device. There is no need for the first and second devices to transmit hardware resource information. This avoids the problem in existing technologies where obtaining computing resources from the other side is difficult in practical applications, potentially leading to low accuracy in task unloading due to relying solely on hardware resources from one side. This embodiment instructs the second device in the form of a scheduling strategy, eliminating the need for the resource scheduling decision unit to make numerous decisions. This avoids the problem of the resource scheduling decision unit being overloaded, preventing the normal unloading of computing tasks and impacting the business performance of the computing tasks.
[0061] The following is a detailed description of the solutions provided in the embodiments of this application. Before introducing the embodiments of this application, the following points should be noted.
[0062] In the description of this application, unless otherwise stated, " / " indicates that the objects before and after are in an "or" relationship. For example, A / B can mean A or B. "And / or" in this application describes only one kind of relationship between the objects, indicating that there can be three relationships. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. A and B can be singular or plural.
[0063] In the description of this application, A sending a message to B can be understood as A sending a message to B through one or more network elements.
[0064] In the description of this application, unless otherwise stated, "multiple" means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b and / or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.
[0065] Furthermore, to facilitate a clear description of the technical solutions in the embodiments of this application, the terms "first" and "second" are used in the embodiments of this application to distinguish identical or similar items with substantially the same function and effect. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or execution order, and the terms "first" and "second" are not necessarily different.
[0066] In the embodiments of this application, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design that is described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design. Specifically, the use of terms such as "exemplary" or "for example" is intended to present the relevant concepts in a specific manner to facilitate understanding.
[0067] It is understood that the term "embodiment" used throughout the specification means that a specific feature, structure, or characteristic related to an embodiment is included in at least one embodiment of this application. Therefore, various embodiments throughout the specification do not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It is understood that in the various embodiments of this application, the sequence number of each process does not imply the order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0068] It is understood that in this application, "...when" and "if" both refer to the corresponding processing that will be carried out under certain objective circumstances, and are not limited to a specific time, nor do they require a judgment action to be performed during implementation, nor do they imply any other limitations.
[0069] It is understood that some optional features in the embodiments of this application can be implemented independently in certain scenarios without relying on other features, such as the current solution on which they are based, to solve the corresponding technical problems and achieve the corresponding effects. Alternatively, they can be combined with other features as needed in certain scenarios. Correspondingly, the apparatus given in the embodiments of this application can also implement these features or functions, which will not be elaborated here.
[0070] In this application, unless otherwise specified, the same or similar parts between the various embodiments can be referred to each other. In the various embodiments of this application, and in the various implementation methods / methods / implementations within each embodiment, unless otherwise specified or logically conflicting, the terminology and / or descriptions between different embodiments and between the various implementation methods / methods / implementations within each embodiment are consistent and can be mutually referenced. The technical features in different embodiments and the various implementation methods / methods / implementations within each embodiment can be combined according to their inherent logical relationships to form new embodiments, implementation methods, methods, or implementation approaches. The embodiments described below do not constitute a limitation on the scope of protection of this application.
[0071] The communication method provided in this application embodiment can be applied to scenarios where a first device and a second device communicate. For example, as Figure 3 The diagram shown is an architectural schematic of a communication system provided in an embodiment of this application. The communication system includes a first device 301 and a second device 302. The second device 302 manages at least one device for performing computing tasks. The first device 301 can offload computing tasks to the device managed by the second device 302.
[0072] Optionally, the first device 301 instructs the second device 302 to select a first scheduling strategy suitable for the device performing the first task, where the first task is a task to be unloaded by the first device 301; the second device 302 determines a first device suitable for performing the first task based on the first scheduling strategy. The second device 302 instructs the first device 301 to use the first device. The first device 301 receives the first device instructed by the second device 302. After this, the first device 301 unloads the first task onto the first device.
[0073] In some embodiments, such as Figure 3 As shown, the first device is equipped with a first resource scheduling decision unit 3011, and the second device is equipped with a second resource scheduling decision unit 3021.
[0074] The first resource scheduling decision unit 3011 is used to acquire hardware resource information of the first device 301, calculate task indicators, and generate a first scheduling strategy based on the hardware resource information of the first device 301, and then feed the first scheduling strategy back to the first device 301. The first device 301 sends the first scheduling strategy to the second device 302. The second device 302 sends the first scheduling strategy to the second resource scheduling decision unit 3021. The second resource scheduling decision unit 3021 acquires hardware resource information of at least one device managed by the second device, as well as the task indicators of the tasks currently running on each device. Based on the first scheduling strategy, the hardware resource information of at least one device, and the relevant indicators of the tasks currently running on each device, the second resource scheduling decision unit 3021 selects a device from the at least one device managed by the second device 302 to execute the first computing task. The second device 302 instructs the first device 301 to use the first device, and the first device 301 unloads the first task onto the first device.
[0075] Optionally, the relevant metrics for computation tasks include, but are not limited to, at least one of the following: number of computation tasks, type of computation task, progress of computation task, and priority of computation task.
[0076] In this way, when the first device 301 needs to offload computing tasks to other devices, it only instructs the second device 302 to select a first scheduling strategy suitable for executing the first task. The second device 302 then selects a first device suitable for executing the first task based on the first scheduling strategy. The first device 301 then offloads the computing task to the first device. Thus, neither the first device 301 nor the second device 302 needs to acquire the hardware resources of the other end. Since the data volume of the first scheduling strategy is typically much smaller than the data volume describing the operating state of hardware resources, the communication method provided in this application can significantly reduce the amount of data transmitted between the first device 301 and the second device 302 when offloading tasks.
[0077] Optionally, in the embodiments of this application, the first device can be a terminal, and the second device can be a remote device. The remote device can be a terminal, a server, a network device, a computing node, etc., and this application does not limit it.
[0078] The technical solutions provided in this application can be applied to various communication systems, such as: 5th generation (5G) or new radio (NR) systems, long term evolution (LTE) systems, LTE frequency division duplex (FDD) systems, LTE time division duplex (TDD) systems, wireless local area network (WLAN) systems, satellite communication systems, future communication systems, or integrated systems of multiple systems. The technical solutions provided in this application can also be applied to device-to-device (D2D) communication, vehicle-to-everything (V2X) communication, machine-to-machine (M2M) communication, machine-type communication (MTC), and Internet of Things (IoT) communication systems or other communication systems.
[0079] Optionally, the remote equipment involved in this application can be a base station, a wireless fidelity (WiFi) access point (AP), a worldwide interoperability for microwave access (WiMAX) site, etc. The base station can include various forms of base stations, such as macro base stations, micro base stations (also known as small stations), relay stations, access points, etc. Specifically, it can be: an access point (AP) in a wireless local area network (WLAN), a base station (BTS) in a global system for mobile communications (GSM) or code division multiple access (CDMA), a base station (NodeB, NB) in a wideband code division multiple access (WCDMA), an evolved base station (eNB or eNodeB) in LTE, a relay station or access point, or a vehicle-mounted device, wearable device, or a next-generation node B (gNB) in a future 5G system, or a base station in a future evolved public land mobile network (PLMN), etc.
[0080] Optionally, the terminal involved in this application can be user equipment (UE), access terminal, terminal unit, user station, terminal station, mobile station, mobile station, remote station, remote terminal, user terminal equipment (TE) in a network (such as a 5G network or a public land mobile network (PLMN) evolved after 5G), mobile device, wireless communication device, terminal agent, tablet computer, handheld device with wireless communication function, computing device or other processing device connected to a wireless modem, vehicle-mounted device, vehicle-mounted transceiver unit, wearable device, or terminal device. The access terminal can be a cellular phone, cordless phone, session initiation protocol (SIP) phone, wireless local loop (WLL) station, personal digital assistant (PDA), handheld device with wireless communication function, computing device or other processing device connected to a wireless modem, vehicle-mounted device, drone, robot, point of sale (POS) machine, customer-premises equipment (CPE), or wearable device, virtual reality (VR) device. Wireless terminals can be categorized into various types, including VR (Augmented Reality) terminal devices, AR terminal devices, wireless terminals in industrial control, self-driving, remote medical, smart grid, transportation safety, smart city, and smart home terminals. Alternatively, terminals can be communication-enabled devices within the Internet of Things (IoT), such as V2X terminals (e.g., vehicle-to-everything devices), D2D communication terminals, or M2M communication terminals. Terminals can be mobile or fixed.
[0081] The embodiments of this application do not limit the form of the terminal. The device used to implement the functions of the terminal can be the terminal itself; it can also be a device that supports the terminal in implementing the functions, such as a chip system. This device can be installed in the terminal or used in conjunction with the terminal. In the embodiments of this application, the chip system can be composed of chips, or it can include chips and other discrete components.
[0082] In one possible implementation, the first and second devices in the embodiments of this application may also be referred to as communication devices, which may be a general-purpose device or a special-purpose device. The embodiments of this application do not specifically limit this.
[0083] In one possible implementation, the related functions of the first and second devices in the embodiments of this application can be implemented by one device, multiple devices, or one or more functional modules within a single device. The embodiments of this application do not specifically limit this. It is understood that the aforementioned functions can be network elements in hardware devices, software functions running on dedicated hardware, a combination of hardware and software, or virtualization functions instantiated on a platform (e.g., a cloud platform).
[0084] In practical implementation, Figure 3 Both the first and second devices shown can be adopted Figure 4 The shown composition structure, or including Figure 4 The components shown. Figure 4 This is a schematic diagram of the hardware structure of a communication device 400 provided in an embodiment of this application. The communication device 400 includes a processor 401, a communication line 402, a memory 403, and at least one communication interface. Figure 4 (The example described herein includes communication interface 404).
[0085] The processor 401 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits used to control the execution of the program of the present application.
[0086] Communication line 402 may include a path for transmitting information between the aforementioned components.
[0087] Communication interface 404 uses any transceiver-like device for communicating with other devices or communication networks, such as Ethernet, RAN, wireless local area networks (WLAN), etc.
[0088] The memory 403 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital versatile optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. The memory may exist independently and be connected to the processor via communication line 402. The memory may also be integrated with the processor.
[0089] The memory 403 stores computer execution instructions for implementing the scheme of this application, and the processor 401 controls the execution. The processor 401 executes the computer execution instructions stored in the memory 403, thereby implementing the communication method provided in the following embodiments of this application.
[0090] Optionally, the computer execution instructions in the embodiments of this application may also be referred to as application code, and the embodiments of this application do not specifically limit this.
[0091] In a specific implementation, as one example, processor 401 may include one or more CPUs, for example... Figure 4 CPU0 and CPU1 in the CPU.
[0092] In a specific implementation, as one example, the communication device 400 may include multiple processors, such as... Figure 4 Processors 401 and 407 are described herein. Each of these processors may be a single-core (single-CPU) processor or a multi-core (multi-CPU) processor. A processor here may refer to one or more devices, circuits, and / or processing cores used to process data (e.g., computer program instructions).
[0093] In a specific implementation, as one embodiment, the communication device 400 may further include an output device 405 and an input device 406. The output device 405 communicates with the processor 401 and can display information in various ways. For example, the output device 405 may be a liquid crystal display (LCD), a light-emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector, etc. The input device 406 communicates with the processor 401 and can receive user input in various ways. For example, the input device 406 may be a mouse, keyboard, touchscreen device, or sensing device, etc.
[0094] The aforementioned communication device 400 can be a general-purpose device or a dedicated device. In specific implementations, the communication device 400 can be a desktop computer, laptop computer, network server, PDA (personal digital assistant), mobile phone, tablet computer, wireless terminal, embedded device, or other similar device. Figure 4 Devices with similar structures. This application does not limit the type of communication device 400 to any particular embodiment.
[0095] also, Figure 4 The structural composition shown does not constitute a limitation on the communication device, except... Figure 4 In addition to the components shown, the communication device may include more or fewer components than illustrated, or combine certain components, or have different component arrangements.
[0096] In this embodiment of the application, the chip system may be composed of chips or may include chips and other discrete devices.
[0097] Furthermore, the actions, terms, etc., involved in the various embodiments of this application can be referenced interchangeably without limitation. The message names or parameter names in the messages used for interaction between devices in the embodiments of this application are merely examples, and other names may be used in specific implementations without limitation.
[0098] The following is combined Figures 1 to 4 This application describes the communication method provided in the embodiments, as well as the functions and actions performed by each device in the communication system.
[0099] It should be noted that in the following embodiments of this application, the message names, parameter names, or information names between network elements are just examples. Other names may also be used in other embodiments. The communication method provided in this application does not specifically limit these names.
[0100] It is understood that in the embodiments of this application, each network element may execute some or all of the steps in the embodiments of this application. These steps or operations are illustrative and can also perform other operations or variations thereof. Furthermore, the steps may be executed in different orders as presented in the embodiments of this application, and it is not necessary to execute all the operations in the embodiments of this application.
[0101] This application uses a second device and a first device as examples to illustrate the execution of the interaction, but this application does not limit the execution subject of the interaction. For example, the method executed by the second device in this application can also be executed by a module applied to the second device (e.g., a chip, chip system, or processor), or by a logic node, logic module, or software that can implement all or part of the functions of the second device; similarly, the method executed by the first device in this application can also be executed by a module applied to the first device (e.g., a chip, chip system, or processor), or by a logic node, logic module, or software that can implement all or part of the functions of the first device. This application does not specifically limit these aspects.
[0102] The functions and actions performed by each device in the communication system provided in the embodiments of this application are described below, such as... Figure 5 As shown, the communication method includes the following steps:
[0103] Step 501: The first device sends a first instruction message to the second device. Correspondingly, the second device receives the first instruction message from the first device.
[0104] The first indication information is used to indicate the first scheduling strategy, which is a strategy for selecting the device suitable for performing the first task, and the first task is the task to be unloaded by the first device.
[0105] In some embodiments, when the first device needs to unload the first task, it determines a first scheduling strategy for the first task and sends the first scheduling strategy to the second device, so that the second device selects a first device to execute the first task according to the first scheduling strategy.
[0106] Optionally, the first device may select a first scheduling strategy for the first task based on the correspondence between the task and the scheduling strategy; or, the first device may determine a first scheduling strategy for the first task based on the task type or task requirements of the first task; this application does not limit this.
[0107] As an example, the scheduling strategy in this application embodiment includes at least one of the following: high priority scheduling strategy, fair round-robin queuing strategy, low computing power cost strategy, service quality guarantee strategy, and high resource utilization strategy; the scheduling strategy can be a single strategy among the above strategies or a combination of multiple strategies, and this application does not limit it in this regard.
[0108] Optionally, the high-priority scheduling strategy refers to tasks with higher priority that need to be processed first; the fair round-robin queuing strategy refers to tasks with equal status to other tasks, and these multiple tasks are fairly round-robined and wait for processing; the low computing cost strategy refers to scheduling low-cost computing resources to execute the task; the quality of service guarantee strategy refers to scheduling resources that can guarantee the quality of service for the task when scheduling resources for the task; and the high resource utilization strategy refers to ensuring that the utilization rate of the resources used to execute the task is higher than a preset condition when scheduling resources for the task.
[0109] Optionally, the task in this embodiment can be a computing task, and correspondingly, the device can be a computing node.
[0110] Step 502: The second device sends second instruction information to the first device. Correspondingly, the first device receives the second instruction information from the second device.
[0111] The second instruction information is used to instruct the first device suitable for performing the first task.
[0112] In some embodiments, the second device receives first indication information and determines a first scheduling strategy based on the first indication information. The second device selects a first device from at least one device under its management that satisfies the first scheduling strategy and can be used to perform the first task, based on the first scheduling strategy. The second device sends second indication information to the first device to instruct the first device to use the second indication information.
[0113] Optionally, after the second device determines the location of the first device, the second device may send a first resource reservation message to the first device to instruct the first device to reserve computing resources for executing the first task. Accordingly, the first device receives the first resource reservation message from the second resource scheduling unit and reserves computing resources for executing the first task based on the first resource reservation message.
[0114] As an example, when the first scheduling policy is a high-priority scheduling policy, if the second device currently needs to allocate execution devices for multiple tasks with non-high-priority scheduling policies, the second device preferentially selects computing resources from at least one device that meet the high-priority requirements of the first task, and designates the device to which that computing resource belongs as the first device. After this, the second device allocates execution devices for other tasks.
[0115] As another example, when the first scheduling strategy is a fair round-robin queuing strategy, if the second device needs to allocate execution devices for multiple tasks under the fair round-robin queuing strategy, the second device performs fair round-robin queuing for the multiple tasks and allocates execution devices for the multiple tasks in turn.
[0116] As another example, when the first scheduling strategy is a low computing cost strategy, the second device selects the device with the lowest computing power cost from at least one device to meet the resource requirements of the first task.
[0117] As another example, when the first scheduling strategy is a quality of service guarantee strategy, the second device selects from at least one device a device whose computing power resources meet the resource requirements of the first task and can guarantee the quality of service of the first task as the first device.
[0118] As another example, when the first scheduling strategy is a high resource utilization strategy, the second device selects from at least one device the device whose computing power resources meet the resource requirements of the first task and whose resource utilization rate for executing the first task is the highest as the first device.
[0119] The above explanation only uses a single scheduling strategy as an example. When the scheduling strategy is a combination of multiple strategies, its implementation can be obtained by combining the above examples of a single strategy, which will not be elaborated upon in this application.
[0120] Step 503: The first device unloads the first task to the first equipment.
[0121] In some embodiments, after receiving the second instruction information, the first device determines a first device suitable for performing the first task based on the second instruction information. The first device notifies the second device to prepare to unload the first task, and the second device instructs the first device to prepare to unload the first task. After this, the first device sends the first task to the second device, and the second device forwards the first task to the first device, causing the first device to perform the first task. Optionally, the first device may also directly send the first task to the first device; this application does not limit this approach.
[0122] In one implementation, before unloading the first task from the first device to the first equipment, the first device determines whether the first task will be executed by the first device itself or by the first equipment. If the first task will be executed by the first equipment, the first device unloads the first task onto the first equipment. If the first task will be executed by the first device, the first device instructs the second device to notify the first equipment to release the resources reserved for executing the first task.
[0123] In some embodiments, the first device offloads the first task to the first device when a first condition is met. Optionally, the first condition includes at least one of the following: the available resources of the first device do not meet the resource requirements of the first task, or the first task is a first type of task. In other words, when the available resources of the first device do not meet the resource requirements of the first task, the first device offloads the first task to the first device, so that the first task can be executed normally. Alternatively, when the first task is a first type of task, the first device offloads the first task to the first device, so that a specific type of service is executed on the remote first device.
[0124] As an example, the resource requirements of the first task include: the computing resources required to execute the first task, and the service strategy of the first task. The service strategy of the first task includes at least one of the following: a low-latency service strategy, a low-power service strategy, and a low-cost service strategy. The low-latency service strategy includes: the completion latency of the first task is lower than a latency threshold; the low-power service strategy includes: the power consumption of the first device during the completion of the first task is lower than a power consumption threshold; and the low-cost service strategy includes: the cost of the device resources required to complete the first task is lower than a cost threshold. Optionally, the computing resources required to execute the first task include at least one of the following: the desired computing power type (e.g., whether the computing power resources to be used are CPU, GPU, or NPU), i.e., the quantity of computing resources, such as how many (trillions of operations per second, TOPS) or how many cores are needed, the required amount of memory, the amount of video memory, the desired network bandwidth, and the desired computing latency.
[0125] In one implementation, the first device determines whether its available computing resources meet the computing resources required for executing the first task, and determines whether the execution of the first task by the first device can satisfy the service strategy of the first task (e.g., whether the execution of the first task by the first device can satisfy the low-latency service strategy, low-power service strategy, or low-cost service strategy of the first task). If the available computing resources of the first device meet the computing resources required for executing the first task, and the execution of the first task by the first device can satisfy the service strategy of the first task, then the first device determines that the first task will be executed by the first device; otherwise, the first device will execute the first task.
[0126] The first device instructs the second device to select a first scheduling strategy suitable for a device to perform a first task, where the first task is a task to be unloaded by the first device. The first device receives the first device suitable for performing the first task from the second device. Afterward, the first device unloads the first task onto the first device. Thus, when the first device needs to unload a computing task onto another device, it only instructs the second device on the first scheduling strategy corresponding to the task. The second device selects a first device suitable for performing the first task based on the first scheduling strategy, and the first device unloads the computing task onto the first device. In this way, neither the first nor the second device needs to acquire the hardware resources of the other. Since the data volume of the first scheduling strategy is typically much smaller than the data volume describing the operating state of the hardware resources, the communication method provided in this application can significantly reduce the amount of data transmitted between the first and second devices when unloading a task.
[0127] In some embodiments, combined with Figure 5 ,like Figure 6 As shown, the process of the first device unloading the first task to the first equipment in step 503 above will be described in detail:
[0128] Step 601: The first device sends a third instruction message to the second device. Correspondingly, the second device receives the third instruction message from the first device.
[0129] The third instruction information is used to instruct the first task to be unloaded from the first device.
[0130] In some embodiments, during the process of unloading the first task from the first device, the first device sends a third instruction message to the second device to instruct it to unload the first task from the first device. Optionally, after receiving the third instruction message, the second device prepares to unload the first task.
[0131] Step 602: The second device sends a third instruction message to the first device. Correspondingly, the first device receives the third instruction message from the second device.
[0132] In some embodiments, after receiving the first instruction information, the second device forwards the third instruction information to the first device, so that the first device prepares to unload the first task. Afterward, the first device sends the first task to the first device through the second device to complete the unloading of the first task.
[0133] It should be noted that, in some embodiments, in combination with Figure 6 If the first device determines that it will perform the first task without unloading the first task from the first device, then the first device can be notified to release the resources reserved by the first device for performing the first task through steps 603 to 605, which will be described in detail below:
[0134] Step 603: The first device sends a resource release message to the second device. Correspondingly, the second device receives the resource release message from the first device.
[0135] The resource release message is used to indicate the release of resources reserved for the execution of the first task.
[0136] In some embodiments, if the first device determines that the first task will be performed by the first device, and there is no need to unload the first task from the first device, the first device sends a resource release message to the second device to notify the second device and the first device to release the resources reserved for performing the first task.
[0137] Step 604: The second device sends a resource release message to the first device. Correspondingly, the first device receives the resource release message from the second device.
[0138] Step 605: The first device releases the resources reserved for executing the first task.
[0139] In some embodiments, the first device may predetermine a first scheduling strategy before step 501 described above. (Combined with...) Figure 5 ,like Figure 7 As shown, the process by which the first device determines the first scheduling strategy includes:
[0140] Step 701: The first device receives the fourth instruction information.
[0141] The fourth instruction information is used to indicate the first service strategy of the first task and the task type of the first task.
[0142] In some embodiments, the first device includes a resource scheduling decision unit and a computing task unit. The computing task unit in the first device sends fourth instruction information to the resource scheduling decision unit, indicating a first service policy and a task type for the first task. The computing task unit is used to execute the first task before it is unloaded.
[0143] Optionally, the computing resource unit of the first device may also register the hardware resource information of the first device with the resource scheduling decision unit, so that the resource scheduling decision unit can generate a task scheduling strategy based on the hardware resource information of the first device.
[0144] As an example, the service strategies in this application embodiment include, but are not limited to, at least one of the following: lowest latency, lowest power consumption of the first device, and lowest total cost.
[0145] Step 702: The first device determines a second service strategy that has a mapping relationship with the task type of the first task based on the task type of the first task and the first mapping relationship.
[0146] The first mapping relationship is used to characterize the mapping relationship between task type and service strategy.
[0147] As an example, task types include at least one of the following: cloud gaming, augmented reality, virtual reality, live video streaming, video or image processing, artificial intelligence generated content (AIGC) text generation, AIGC image generation, and AIGC video generation.
[0148] The service strategy includes at least one of the following: lowest latency, lowest power consumption of the first device, lowest total cost, and best user experience.
[0149] In some embodiments, a first mapping relationship is pre-configured in the first device. The first device determines a second service strategy based on the task type of the first task and the first mapping relationship.
[0150] As an example, the mapping relationship between task type and service strategy is as follows: When the service type is at least one of cloud gaming, augmented reality, virtual reality, and live video streaming, the service strategy is to minimize latency, thus ensuring the service experience of the aforementioned real-time services. Alternatively, when the service type is video processing or image processing, the service strategy is to minimize the power consumption of the first device, thus reducing the power consumption of the first device for the aforementioned high-power services. Or, when the service type is AIGC text generation, AIGC image generation, or AIGC video generation, the service strategy is to minimize total cost, thus reducing the service cost of high-cost services.
[0151] Step 703: The first device determines the first scheduling strategy based on the first service strategy and the second service strategy.
[0152] The first scheduling strategy is used to select devices that meet the first service strategy and / or the second service strategy.
[0153] In some embodiments, the first device may select a first scheduling strategy based on the correspondence between service strategies and scheduling strategies, as well as the first service strategy and / or the second service strategy.
[0154] For example, the correspondence between service strategy and scheduling strategy is as follows: when the service strategy is the lowest latency, the scheduling strategy is high-priority scheduling; or, when the service strategy is the lowest power consumption of the first device, the scheduling strategy is fair round-robin; or, when the service strategy is the lowest total cost, the scheduling strategy is low computing power cost; or, when the service strategy is any other strategy besides the above, the scheduling strategy is a strategy to ensure service quality and / or high resource utilization.
[0155] As an example, the correspondence between task type, service policy, and scheduling policy is shown in Table 1 below:
[0156] Table 1. Correspondence between task types, service strategies, and scheduling strategies
[0157]
[0158] In this embodiment of the application, the first device may pre-configure the aforementioned Table 1, and the first device determines the service policy of the first task based on Table 1 and the task type of the first task, and determines the first scheduling policy of the first task based on Table 1 and the service policy of the first task.
[0159] In some embodiments, when the first service policy and the second service policy are the same, the first device determines the first scheduling policy as the scheduling policy for selecting devices that satisfy the second service policy. For example, if the first task is a cloud gaming service and the first service policy indicated by the fourth indication information is a high-priority scheduling policy, the first device determines that the second service policy is also a high-priority scheduling policy; in this case, the first device determines the first scheduling policy as a high-priority scheduling policy.
[0160] When the first service strategy and the second service strategy differ, the first device determines the first scheduling strategy as the scheduling strategy for selecting devices that satisfy the first service strategy and / or the second service strategy. For example, if the first task is cloud gaming, but the fourth indication information indicates that the first service strategy is the lowest total cost, the first device determines the second service strategy as a high-priority scheduling strategy; in this case, the first device determines the first scheduling strategy as a high-priority scheduling strategy and / or a low computing cost strategy.
[0161] In some possible implementations, the task type of the first task may not have a corresponding service policy. In this case, the first device determines the first scheduling policy by: selecting a first scheduling policy that satisfies the first service policy, and / or pre-setting a first scheduling policy. In other words, if there is no second service policy that maps to the task type of the first task, the first device determines the first scheduling policy by: selecting a first scheduling policy that satisfies the first service policy, and / or pre-setting a first scheduling policy.
[0162] The above describes the process of unloading the first task from the first device.
[0163] In some embodiments, the first device can unload multiple tasks in batches, as described below. Figure 8 The process of batch unloading multiple tasks by the first device is explained.
[0164] When the first device unloads multiple tasks in batches, the aforementioned first indication information is also used to indicate a second scheduling strategy. The second scheduling strategy is a strategy for selecting a device suitable for executing at least one second task, where at least one second task is a task to be unloaded by the first device. Accordingly, the second indication information is also used to indicate a second device suitable for each second task, where one second task corresponds to one or more second devices.
[0165] In other words, when the first device unloads multiple tasks in batches, it instructs the second device on the scheduling strategy for each task. The second device then selects the appropriate device for each task to execute it according to the scheduling strategy. The second device then instructs the first device on the device corresponding to each task. The first device then unloads the corresponding task onto each device.
[0166] In some embodiments, combined with Figure 5 ,like Figure 8 As shown, when the first device instructs the second device on a scheduling strategy for multiple second tasks, and the second device instructs the first device on the second device corresponding to each second task, the process of the first device unloading the task includes:
[0167] Step 801: The first device unloads the corresponding second task to each second device.
[0168] The implementation method of step 801 can refer to step 503 above, and will not be repeated here.
[0169] It should be noted that when the first device unloads the corresponding second task to each second device, it can determine the priority of each second task based on the task type of each second task. Based on the priority of each second task, the first device unloads the corresponding tasks to the corresponding second devices in sequence. Alternatively, the first device can also unload the corresponding second tasks to multiple second devices in parallel, and this application does not limit this.
[0170] In some embodiments, combined with Figure 8 ,like Figure 9 As shown, step 801 above can be specifically implemented through the following steps 901 and 902:
[0171] Step 901: The first device determines a third task from the first task and at least one second task.
[0172] The third task includes the first task and / or one or more second tasks; the third task satisfies at least one of the following conditions: the available computing resources in the first device do not meet the resource requirements of the third task, or the third task is a first type of task.
[0173] Step 902: The first device sends a fifth instruction message to the second device. Correspondingly, the second device receives the fifth instruction message from the first device.
[0174] The fifth instruction indicates that the third task should be unloaded from the device corresponding to the third task.
[0175] In one implementation, the first device selects a task (referred to as the third task) from the first task and the second task whose available computing resources do not meet its resource requirements, and unloads the third task onto the device corresponding to the third task.
[0176] As another implementation, the first device selects a task of the first type (denoted as the third task) from the first task and the second task, and unloads the third task onto the device corresponding to the third task.
[0177] For the first task and at least one of the second tasks other than the third task (denoted as the fourth task), the first device determines that it will perform the fourth task. The first device sends a resource release message to the second device, indicating that the resources reserved for performing the fourth task are released; the second device sends a resource release message to the device corresponding to the fourth task, indicating that the resources reserved for performing the fourth task are released.
[0178] Taking an example where the first device includes a computing task unit, a first resource scheduling decision unit, and a first computing resource unit; and the second device includes a second resource scheduling decision unit and a second computing unit, the process of unloading task 1 will be illustrated. Figure 10 As shown, the communication method provided in this application embodiment includes:
[0179] Step 1000: The first computing resource unit registers the computing resources of the first device with the first resource scheduling decision unit, and the second computing resource unit registers the computing resources of the second device with the second resource scheduling decision unit.
[0180] In some embodiments, the computing resources of the first device include, but are not limited to, at least one of the following: the memory resources of the first device, the computing power resources of the first device, or the power of the first device.
[0181] The computing resources of the second device include, but are not limited to, at least one of the following: the number of CPU cores, memory, GPU model and quantity, NPU model and quantity, network bandwidth, and rated power consumption of the various devices managed by the second device.
[0182] Step 1001: The computing task unit sends the fourth instruction information to the first resource scheduling decision unit. Correspondingly, the first resource scheduling decision unit receives the fourth instruction information from the computing task unit.
[0183] In some embodiments, the process of the computing task unit sending the fourth instruction information to the first resource scheduling decision unit can refer to step 701 above, and will not be repeated here.
[0184] The fourth instruction information is used to indicate the first service strategy of Task 1 and the task type of Task 1.
[0185] Optionally, the fourth instruction information may also be used to indicate at least one of the following: the identifier of Task 1, and the resource requirements of Task 1. The fourth instruction information is used to request computing resources for Task 1.
[0186] As an example, task types include, but are not limited to, at least one of the following: cloud gaming, augmented reality, virtual reality, live video streaming, video / image processing, AIGC text generation, AIGC image generation, and AIGC video generation.
[0187] The service strategy includes, but is not limited to, at least one of the following: lowest latency, lowest power consumption of the first device, lowest total cost, and best user experience. The service strategy may also be a combination of multiple strategies, such as ensuring user experience while reducing total cost, or ensuring latency while reducing power consumption of the first device.
[0188] Step 1002: The first resource scheduling decision unit determines the first scheduling strategy based on the computing resources of the first device and the fourth instruction information.
[0189] The implementation of step 1002 can be referred to steps 702 and 703 above, and will not be repeated here.
[0190] Step 1003: The first resource scheduling decision unit sends a first instruction message to the second resource scheduling decision unit. Correspondingly, the second resource scheduling decision unit receives the first instruction message from the first resource scheduling decision unit.
[0191] The implementation method of step 1003 can refer to step 501 above, and will not be repeated here.
[0192] Step 1004: The second resource scheduling decision unit obtains the current available resources of each device.
[0193] Step 1005: The second resource scheduling decision unit determines device 1 based on the current available resources of each device and the first scheduling strategy.
[0194] Step 1006: The second resource scheduling decision unit sends a resource pre-allocation message to device 1. Correspondingly, device 1 receives the resource pre-allocation message from the second resource scheduling unit.
[0195] The resource reservation message is used to instruct device 1 to reserve computing resources for executing task 1.
[0196] Step 1007: The second device sends a second instruction message to the first device. Correspondingly, the first device receives a first instruction message from the second device.
[0197] The implementation of steps 1004 to 1007 can be referred to step 502 above, and will not be repeated here.
[0198] Step 1008: The first resource scheduling decision unit obtains the currently available resources of the first device.
[0199] In some implementations, the currently available resources of the first device are determined based on the tasks currently being executed by the first device, resource occupancy, and other factors.
[0200] Step 1009: The first resource scheduling decision unit determines whether to unload task 1 to device 1 based on the currently available resources of the first device and the resource requirements and task type of task 1.
[0201] In some embodiments, if the first resource scheduling decision unit determines that the available resources of the first device can meet the requirements of task 1, then it determines that task 1 will be executed on the first device and task 1 will not be unloaded from device 1. If the first resource scheduling decision unit determines that the available resources of the first device cannot meet the requirements of task 1, then it determines that task 1 will be executed on device 1 and task 1 will be unloaded from device 1.
[0202] Step 1010: The first resource scheduling decision unit sends a decision message to the computing task unit. Correspondingly, the computing task unit receives the decision message from the first resource scheduling decision unit.
[0203] The decision message is used to indicate whether to unload task 1 from device 1.
[0204] Step 1011: If it is determined that task 1 will not be unloaded from device 1, the first resource scheduling decision unit sends a resource release message to the second resource scheduling decision unit.
[0205] Step 1012: The second resource scheduling decision unit sends a resource release message to device 1.
[0206] Step 1013: The computing task unit, the first resource scheduling decision unit, and / or the first computing resource unit interact to execute task 1.
[0207] Step 1014: If it is determined that task 1 will not be unloaded from device 1, the first resource scheduling decision unit sends a third instruction to the second resource scheduling decision unit.
[0208] The implementation of step 1014 can be referred to step 601 above, and will not be repeated here.
[0209] Step 1015: The second resource scheduling decision unit sends the third instruction information to device 1.
[0210] The implementation of step 1014 can be referred to step 602 above, and will not be repeated here.
[0211] Step 1016: The computing task unit, the first resource scheduling decision unit, the first computing resource unit, the second resource scheduling decision unit, the second computing resource unit, and / or device 1 interact to execute task 1.
[0212] Taking an example where the first device includes a first computing task unit, a task 2 computing unit, a first resource scheduling decision unit, and a first computing resource unit; and the second device includes a second resource scheduling decision unit and a second computing unit, the process of unloading task 1 and task 2 is illustrated below. The first computing task unit is the computing task unit that executes task 1 before unloading task 1, and the second computing task unit is the computing task unit that executes task 2 before unloading task 2. Figure 11 As shown, the communication method provided in this application embodiment includes:
[0213] Step 1100: The first computing resource unit registers the computing resources of the first device with the first resource scheduling decision unit, and the second computing resource unit registers the computing resources of the second device with the second resource scheduling decision unit.
[0214] The implementation method of step 1100 can refer to step 1000 above, and will not be repeated here.
[0215] Step 1101a: The first computing task unit sends a fourth instruction message to the first resource scheduling decision unit. Correspondingly, the first resource scheduling decision unit receives the fourth instruction message from the first computing task unit.
[0216] Step 1101b: The second computing task unit sends a seventh instruction message to the first resource scheduling decision unit. Correspondingly, the first resource scheduling decision unit receives the seventh instruction message from the second computing task unit.
[0217] The seventh instruction information is used to indicate the first service strategy of Task 2 and the task type of Task 2.
[0218] The implementation methods of steps 1101a and 1101b can refer to step 1001 above, and will not be repeated here.
[0219] Step 1102: The first resource scheduling decision unit determines the scheduling strategy for task 1 based on the computing resources of the first device and the fourth instruction information. The first resource scheduling decision unit determines the scheduling strategy for task 2 based on the computing resources of the first device and the seventh instruction information.
[0220] The implementation method of step 1102 above can refer to step 1002 above, and will not be repeated here.
[0221] Step 1103: The first resource scheduling decision unit sends a first instruction message to the second resource scheduling decision unit. Correspondingly, the second resource scheduling decision unit receives the first instruction message from the first resource scheduling decision unit.
[0222] The first indication information is used not only to indicate the first scheduling strategy of task 1, but also to indicate the scheduling strategy of task 2.
[0223] The implementation method of step 1103 above can refer to step 1003 above, and will not be repeated here.
[0224] Step 1104: The second resource scheduling decision unit obtains the current available resources of each device.
[0225] Step 1105: The second resource scheduling decision unit determines device 1 based on the current available resources of each device and the scheduling strategy of task 1, and determines device 2 based on the current available resources of each device and the scheduling strategy of task 2.
[0226] Device 2 is the device used to perform Task 2.
[0227] Step 1106a: The second resource scheduling decision unit sends a first resource pre-allocation message to device 1. Correspondingly, device 1 receives the first resource pre-allocation message from the second resource scheduling unit.
[0228] The first resource reservation message is used to instruct device 1 to reserve computing resources for executing task 1.
[0229] Step 1106b: The second resource scheduling decision unit sends a second resource pre-allocation message to device 2. Correspondingly, device 2 receives the second resource pre-allocation message from the second resource scheduling unit.
[0230] The second resource reservation message is used to instruct device 2 to reserve computing resources for executing task 2.
[0231] Step 1107: The second device sends a second instruction message to the first device. Correspondingly, the first device receives a first instruction message from the second device.
[0232] The second instruction information is used not only to instruct device 1 to perform task 1, but also to instruct device 2 to perform task 2.
[0233] The implementation methods of steps 1104 to 1107 above can refer to steps 1004 to 1007 above, and will not be repeated here.
[0234] Step 1108: The first resource scheduling decision unit obtains the currently available resources of the first device.
[0235] Step 1109: The first resource scheduling decision unit determines whether to unload task 1 to device 1 based on the currently available resources of the first device and the resource requirements and task type of task 1.
[0236] Step 1110: The first resource scheduling decision unit sends a first decision message to the computing task unit. Correspondingly, the computing task unit receives the first decision message from the first resource scheduling decision unit.
[0237] The first decision message is used to indicate whether to unload task 1 from device 1.
[0238] Step 1111: If it is determined that task 1 will not be unloaded from device 1, the first resource scheduling decision unit sends a first resource release message to the second resource scheduling decision unit.
[0239] Step 1112: The second resource scheduling decision unit sends a first resource release message to device 1.
[0240] Step 1113: The first computing task unit, the first resource scheduling decision unit, and / or the first computing resource unit interact to execute task 1.
[0241] Step 1114: If it is determined that task 1 will not be unloaded from device 1, the first resource scheduling decision unit sends a calculation preparation message to the second resource scheduling decision unit.
[0242] The calculation preparation message is used to indicate that task 1 is ready to be executed.
[0243] Step 1115: The second resource scheduling decision unit sends a calculation preparation message to device 1.
[0244] Step 1116: The first computing task unit, the first resource scheduling decision unit, the first computing resource unit, the second resource scheduling decision unit, the second computing resource unit, and / or device 1 interact to execute task 1.
[0245] The implementation methods of steps 1108 to 1116 above can refer to steps 1008 to 1016 above, and will not be repeated here.
[0246] Step 1117: The first resource scheduling decision unit determines whether to unload task 2 to device 2 based on the currently available resources of the first device and the resource requirements and task type of task 2.
[0247] Step 1118: The first resource scheduling decision unit sends a second decision message to the computing task unit. Correspondingly, the computing task unit receives the second decision message from the first resource scheduling decision unit.
[0248] The second decision message is used to indicate whether to unload task 2 from device 2.
[0249] Step 1119: If it is determined that task 2 will not be unloaded from device 2, the first resource scheduling decision unit sends a second resource release message to the second resource scheduling decision unit.
[0250] Step 1120: The second resource scheduling decision unit sends a second resource release message to device 2.
[0251] Step 1121: The second computing task unit, the first resource scheduling decision unit, and / or the first computing resource unit interact to execute task 2.
[0252] Step 1122: If it is determined that task 2 will not be unloaded from device 2, the first resource scheduling decision unit sends a computation preparation message to the second resource scheduling decision unit.
[0253] The calculation preparation message is used to indicate that task 2 is ready to be executed.
[0254] Step 1123: The second resource scheduling decision unit sends a calculation preparation message to device 2.
[0255] Step 1124: The second computing task unit, the first resource scheduling decision unit, the first computing resource unit, the second resource scheduling decision unit, the second computing resource unit, and / or device 2 interact to execute task 2.
[0256] The implementation of steps 1117 to 1124 above can be referred to steps 1108 to 1116 above, and will not be repeated here.
[0257] The above combination Figure 10 and Figure 11 The process of unloading computing tasks to the remote end through interaction between the terminal and the remote end is explained in detail.
[0258] In some embodiments, the terminal can also interact with the network to offload computing tasks to relevant network resources. For example, in a computing-network convergence scenario, when the terminal and network work together to offload computing tasks, the computing tasks are offloaded to network-side resources. A system architecture diagram of the network-side computing resources used by the terminal to offload computing tasks is shown below. Figure 12As shown in the diagram. The resource scheduling decision unit can be integrated into the terminal's operating system (OS). Specifically, the terminal resource scheduling decision unit may include a terminal computing resource decision module, a terminal computing resource scheduling module, a remote scheduling policy generation module, and a terminal computing resource management module. The terminal computing resource decision module is used to decide on information related to the terminal's computing resources; the computing resource scheduling module is used to schedule the terminal's computing resources; the terminal computing resource management module is used to manage the terminal's computing resources; and the remote scheduling policy generation module is used to generate remote scheduling policies, such as the first scheduling policy and the second scheduling policy in the above embodiment. When the terminal provides computing power offloading capabilities to the network side, it can provide computing power offloading capabilities to various applications at the UE level (e.g., terminal 1); alternatively, the network can provide a software development kit (SDK) or application programming interface (API), integrating various applications into one application, and providing computing power offloading capabilities to specific applications at the application level (e.g., terminal 2).
[0259] The network resource scheduling decision-making unit on the network side includes: a network computing resource decision-making module, a network computing resource scheduling module, and a network computing resource network module. The network computing resource decision-making module is used to make decisions regarding information related to network-side computing resources; the network computing resource scheduling module is used to schedule network-side computing resources; and the network computing resource management module is used to manage network-side computing resources, such as managing intra-network and extra-network computing resources. For example, the network computing resource management module can manage computing resources such as edge nodes (multi-access edge computing), edge clouds, carrier-owned clouds, joint venture clouds, and public clouds.
[0260] The above mainly describes the solutions provided by the embodiments of this application from the perspective of interaction between network elements. Correspondingly, the embodiments of this application also provide a communication device for implementing the various methods described above. This communication device can be the first device in the above method embodiments, or a device including the first device, or a component usable in the first device; or, the communication device can be the second device in the above method embodiments, or a device including the second device, or a component usable in the second device. It is understood that, in order to achieve the above functions, the communication device includes hardware structures and / or software modules corresponding to the execution of each function. Those skilled in the art should readily recognize that, in conjunction with the units and algorithm steps of the various examples described in the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed by hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0261] This application embodiment can divide the communication device into functional modules according to the above method embodiment. For example, each function can be divided into a separate functional module, or two or more functions can be integrated into one processing module. The integrated module can be implemented in hardware or as a software functional module. It should be understood that the module division in this application embodiment is illustrative and is only a logical functional division. In actual implementation, there may be other division methods.
[0262] for example, Figure 13 This is a schematic diagram of a communication device 1300 provided in an embodiment of this application. The communication device 1300 includes a transceiver module 1310. Optionally, it includes a processing module 1320. The transceiver module 1310, also known as a transceiver unit, is used to implement transceiver functions, and may be, for example, a transceiver circuit, transceiver, transceiver device, or communication interface.
[0263] Taking the communication device 1300 as the first device in the above method embodiment, or a device containing the above first device, or a component that can be used in the first device as an example, then: the transceiver module 1310 is used to send first indication information, the first indication information is used to indicate a first scheduling strategy, the first scheduling strategy is a strategy for selecting a device suitable for performing a first task, and the first task is a task to be unloaded from the first device.
[0264] The transceiver module 1310 is also used to receive second instruction information, which is used to instruct a first device suitable for performing the first task.
[0265] Processing module 1320 is used to unload the first task to the first device.
[0266] In one possible implementation, the processing module 1320 is specifically used to offload the first task to the first device when a first condition is met.
[0267] In one possible implementation, the first condition includes at least one of the following: the available resources of the first device do not meet the resource requirements of the first task, or the first task is a first type of task.
[0268] In one possible implementation, the processing module 1320 is specifically used to instruct the transceiver module 1310 to send third instruction information, which is used to instruct the first task to be unloaded from the first device.
[0269] In one possible implementation, the resource requirements of the first task include: the computing resources required for the execution of the first task, and the service strategy of the first task; the service strategy of the first task includes at least one of the following: a low-latency service strategy, a low-power service strategy, and a low-cost service strategy; the low-latency service strategy includes: the completion latency of the first task is lower than a latency threshold, the low-power service strategy includes: the power consumption of the first device during the completion of the first task is lower than a power consumption threshold, and the low-cost service strategy includes: the cost of the equipment resources required to complete the first task is lower than a cost threshold.
[0270] In one possible implementation, the transceiver module 1310 is further configured to receive fourth indication information, which indicates a first service policy of the first task and a task type of the first task; the processing module 1320 is further configured to determine a second service policy that has a mapping relationship with the task type of the first task based on the task type of the first task and a first mapping relationship, wherein the first mapping relationship is used to characterize the mapping relationship between the task type and the service policy; the processing module 1320 is further configured to determine a first scheduling policy based on the first service policy and the second service policy; the first scheduling policy is used to select a device that satisfies the first service policy and / or the second service policy.
[0271] In one possible implementation, the processing module 1320 is further configured to determine, when the first service policy and the second service policy are the same, the first scheduling policy is the scheduling policy for selecting devices that satisfy the second service policy.
[0272] In one possible implementation, the processing module 1320 is further configured to determine, when the first service policy and the second service policy are different, the first scheduling policy as the scheduling policy for selecting devices that satisfy the first service policy and / or the second service policy.
[0273] In one possible implementation, the transceiver module 1310 is further configured to receive fourth indication information, which indicates the first service policy of the first task and the task type of the first task; the processing module 1320 is further configured to determine the first scheduling policy when there is no second service policy that has a mapping relationship with the task type of the first task, including: selecting the first scheduling policy of the device that satisfies the first service policy, and / or preset the first scheduling policy.
[0274] In one possible implementation, the first indication information is further used to indicate a second scheduling strategy, which is a strategy for selecting a device suitable for performing at least one second task, wherein the at least one second task is a task to be unloaded from the first device.
[0275] In one possible implementation, the second instruction information is also used to indicate a second device applicable to each second task, with one second task corresponding to one or more second devices.
[0276] In one possible implementation, the processing module 1320 is further configured to unload the corresponding second task to each second device respectively.
[0277] In one possible implementation, the processing module 1320 is further configured to determine a third task from the first task and at least one second task, wherein the third task includes the first task and / or one or more second tasks; the third task satisfies at least one of the following conditions: the available computing resources in the first device do not meet the resource requirements of the third task, or the third task is a first type of task; the transceiver module 1310 is further configured to send a fifth indication information, the fifth indication information indicating that the third task is unloaded to the device corresponding to the third task.
[0278] Taking the communication device 1300 as the second device in the above method embodiment, or a device containing the above second device, or a component that can be used in the second device as an example, then: the transceiver module 1310 is used to receive first indication information, the first indication information is used to indicate a first scheduling strategy, the first scheduling strategy is a strategy for selecting a device suitable for performing a first task, and the first task is a task to be unloaded by the first device.
[0279] The transceiver module 1310 is also used to send second instruction information, which is used to instruct the first device suitable for performing the first task.
[0280] In one possible implementation, the transceiver module 1310 is further configured to acquire the available computing resources of at least one device; the processing module 1320 is further configured to select a first device from the devices whose available computing resources meet the resource requirements of the first task based on a first scheduling strategy.
[0281] In one possible implementation, the transceiver module 1310 is further configured to send a sixth instruction message to the first device, the sixth instruction message being used to instruct the first device to reserve computing resources for executing the first task.
[0282] In one possible implementation, the transceiver module 1310 is further configured to receive third instruction information, which is used to instruct the first device to unload the first task; and to send the third instruction information to the first device.
[0283] In one possible implementation, the resource requirements of the first task include: the computing resources required for the execution of the first task, and the service strategy of the first task; the service strategy of the first task includes at least one of the following: a low-latency service strategy, a low-power service strategy, and a low-cost service strategy; the low-latency service strategy includes: the completion latency of the first task is lower than a latency threshold, the low-power service strategy includes: the power consumption of the first device during the completion of the first task is lower than a power consumption threshold, and the low-cost service strategy includes: the cost of the equipment resources required to complete the first task is lower than a cost threshold.
[0284] In one possible implementation, the transceiver module 1310 is also used to receive a fifth instruction message, which instructs the device corresponding to the third task to unload the third task.
[0285] All relevant content of each step involved in the above method embodiments can be referred to in the functional description of the corresponding functional module, and will not be repeated here. Optionally, the communication device 1300 may further include a storage module 1330, which can be used to store instructions and / or data, and the processing module 1320 can read the instructions and / or data in the storage module 1330.
[0286] In this embodiment, the communication device 1300 is presented in an integrated manner, divided into various functional modules. Here, "module" can refer to an application-specific integrated circuit (ASIC), a circuit, a processor and memory executing one or more software or firmware programs, integrated logic circuits, and / or other devices that can provide the aforementioned functions. In a simplified embodiment, those skilled in the art will understand that the communication device can employ... Figure 4 The communication device 400 shown is in the form of [example device].
[0287] Specifically, Figure 13 The functions / implementation process of the transceiver module 1310 and the processing module 1320 can be obtained through... Figure 4 The processor 401 in the communication device 400 shown calls computer execution instructions stored in the memory 403 to implement the function. Alternatively, Figure 13The function / implementation process of the processing module 1320 can be achieved through... Figure 4 The processor 401 in the communication device 400 shown calls computer execution instructions stored in the memory 403 to implement the communication. Figure 13 The function / implementation process of the transceiver module 1310 can be obtained through Figure 4 This is achieved through the communication interface 404 in the communication device 400 shown.
[0288] Since the communication device provided in this application embodiment can execute the above communication method, the technical effects it can obtain can be referred to the above method embodiment, and will not be repeated here.
[0289] It should be understood that one or more of the above modules or units can be implemented by software, hardware, or a combination of both. When any of the above modules or units are implemented by software, the software exists as computer program instructions and is stored in memory. The processor can be used to execute the program instructions and implement the above method flow. The processor can be built into a SoC (System-on-a-Chip) or ASIC, or it can be a separate semiconductor chip. In addition to the core that executes software instructions for computation or processing, the processor may further include necessary hardware accelerators, such as field-programmable gate arrays (FPGAs), programmable logic devices (PLDs), or logic circuits that implement dedicated logic operations.
[0290] When the above modules or units are implemented in hardware, the hardware can be any one or any combination of a central processing unit (CPU), microprocessor, digital signal processing (DSP) chip, microcontroller unit (MCU), artificial intelligence processor, ASIC, SoC, FPGA, PLD, application-specific digital circuit, hardware accelerator, or non-integrated discrete device, which can run the necessary software or perform the above method flow independently of software.
[0291] Optionally, embodiments of this application also provide a communication device (e.g., the communication device may be a chip or a chip system), which includes a processor for implementing the methods in any of the above method embodiments. In one possible design, the communication device further includes a memory. The memory is used to store necessary program instructions and data, and the processor can call the program code stored in the memory to instruct the communication device to execute the methods in any of the above method embodiments. Of course, the memory may not be included in the communication device. When the communication device is a chip system, it may be composed of chips or may include chips and other discrete devices; embodiments of this application do not specifically limit this.
[0292] Optionally, embodiments of this application also provide a computer-readable storage medium storing a computer program or instructions that, when run on a communication device, enable the communication device to execute the methods described in any of the above method embodiments or any implementation thereof.
[0293] Optionally, embodiments of this application also provide a communication system, which includes the first device described in the above method embodiments and the second device described in the above method embodiments.
[0294] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented using software programs, implementation can be, in whole or in part, in the form of a computer program product. This computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the flow or function according to the embodiments of this application is generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, computer instructions can be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium accessible to a computer or a data storage device containing one or more servers, data centers, etc., that can be integrated with the medium. The available media can be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., DVDs), or semiconductor media (e.g., solid-state disks, SSDs).
[0295] Although this application has been described herein in conjunction with various embodiments, those skilled in the art, by reviewing the accompanying drawings, the disclosure, and the appended claims, will understand and implement other variations of the disclosed embodiments in carrying out the claimed application. In the claims, the word "comprising" does not exclude other components or steps, and "a" or "an" does not exclude multiple instances. A single processor or other unit can implement several functions listed in the claims. While different dependent claims may recite certain measures, this does not mean that these measures cannot be combined to produce good results.
[0296] Although this application has been described in conjunction with specific features and embodiments, it is obvious that various modifications and combinations can be made thereto without departing from the scope of this application. Accordingly, this specification and drawings are merely illustrative examples of the application as defined by the appended claims and are considered to cover any and all modifications, variations, combinations, or equivalents within the scope of this application. Clearly, those skilled in the art can make various alterations and modifications to this application without departing from its scope. Thus, if such modifications and modifications fall within the scope of the claims and their equivalents, this application is also intended to include such modifications and modifications.
Claims
1. A communication method, characterized in that, Applied to the first device, comprising: Send a first indication message, the first indication message being used to indicate a first scheduling strategy, the first scheduling strategy being a strategy for selecting a device suitable for performing a first task, the first task being a task to be unloaded by the first device; Receive a second instruction message, the second instruction message being used to instruct a first device suitable for performing the first task; Unload the first task to the first device.
2. The method according to claim 1, characterized in that, The step of unloading the first task to the first device includes: If the first condition is met, the first task is unloaded onto the first device.
3. The method according to claim 2, characterized in that, The first condition includes at least one of the following: the available resources of the first device do not meet the resource requirements of the first task, or the first task is a first type of task.
4. The method according to any one of claims 1-3, characterized in that, The step of unloading the first task to the first device includes: Send a third instruction message, which is used to instruct the first task to be unloaded from the first device.
5. The method according to any one of claims 1-4, characterized in that, The resource requirements of the first task include: the computing resources required to execute the first task and the service strategy of the first task; the service strategy of the first task includes at least one of the following: low latency service strategy, low power consumption service strategy, and low cost service strategy; the low latency service strategy includes: the completion latency of the first task is lower than a latency threshold; the low power consumption service strategy includes: the power consumption of the first device is lower than a power consumption threshold during the completion of the first task; the low cost service strategy includes: the cost of the device resources required to complete the first task is lower than a cost threshold.
6. The method according to claim 5, characterized in that, Before sending the first indication information, the method further includes: Receive fourth indication information, the fourth indication information being used to indicate the first service strategy of the first task and the task type of the first task; Based on the task type of the first task and the first mapping relationship, a second service strategy that has a mapping relationship with the task type of the first task is determined, wherein the first mapping relationship is used to characterize the mapping relationship between the task type and the service strategy; Based on the first service policy and the second service policy, the first scheduling policy is determined; the first scheduling policy is used to select devices that satisfy the first service policy and / or the second service policy.
7. The method according to claim 6, characterized in that, The step of determining the first scheduling strategy based on the first service strategy and the second service strategy includes: If the first service policy and the second service policy are the same, the first scheduling policy is determined to be the scheduling policy for selecting devices that satisfy the second service policy.
8. The method according to claim 5, characterized in that, The step of determining the first scheduling strategy based on the first service strategy and the second service strategy includes: If the first service policy and the second service policy are different, the first scheduling policy is determined to be the scheduling policy for selecting devices that satisfy the first service policy and / or the second service policy.
9. The method according to claim 5, characterized in that, Before sending the first indication information, the method further includes: Receive fourth indication information, the fourth indication information being used to indicate the first service strategy of the first task and the task type of the first task; In the absence of a second service policy that maps to the task type of the first task, determining the first scheduling policy includes: selecting a first scheduling policy for devices that satisfy the first service policy, and / or setting a preset first scheduling policy.
10. The method according to any one of claims 1-9, characterized in that, The first indication information is also used to indicate a second scheduling strategy, which is a strategy for selecting a device suitable for performing at least one second task, wherein the at least one second task is a task to be unloaded from the first device.
11. The method according to claim 10, characterized in that, The second instruction information is also used to indicate a second device applicable to each of the second tasks, with one second task corresponding to one or more second devices.
12. The method according to claim 11, characterized in that, The method further includes: Unload the corresponding second task onto each second device.
13. The method according to claim 12, characterized in that, The step of unloading the first task to the first device and unloading the corresponding second task to each second device includes: A third task is determined from the first task and the at least one second task, wherein the third task includes the first task and / or one or more second tasks; the third task satisfies at least one of the following conditions: the available computing resources in the first device do not meet the resource requirements of the third task, or the third task is a first type of task; Send a fifth instruction message, which instructs the device corresponding to the third task to unload the third task.
14. A communication method, characterized in that, Applied to a second device, comprising: Receive first indication information, the first indication information is used to indicate a first scheduling strategy, the first scheduling strategy is a strategy to select a device suitable for performing the first task, and the first task is a task to be unloaded by the first device; Send a second instruction message, which is used to instruct a first device suitable for performing the first task.
15. The method according to claim 14, characterized in that, Before sending the second indication information, the method further includes: Obtain the available computing resources of the at least one device; Based on the first scheduling strategy, the first device is selected from the devices whose available computing resources meet the resource requirements of the first task.
16. The method according to claim 14 or 15, characterized in that, The method further includes: A sixth instruction message is sent to the first device, the sixth instruction message being used to instruct the first device to reserve computing resources for executing the first task.
17. The method according to any one of claims 14-16, characterized in that, The method further includes: Receive a third instruction message, the third instruction message being used to instruct the first task to be unloaded from the first device; Send the third instruction information to the first device.
18. A communication device, characterized in that, include: A functional unit for performing the method as described in any one of claims 1-17; wherein the action performed by the functional unit is implemented by hardware or by hardware executing corresponding software.
19. A communication device, characterized in that, include: processor; The processor is connected to a memory for storing computer execution instructions, and the processor executes the computer execution instructions stored in the memory to enable the communication device to implement the method as described in any one of claims 1-17.
20. A computer-readable storage medium, characterized in that, Includes instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1-17.
21. A chip, characterized in that, The chip includes a processor; the processor is connected to a memory for storing computer execution instructions, and the processor executes the computer execution instructions stored in the memory to enable the communication device to implement the method as described in any one of claims 1-17.
22. A computer program product containing instructions, characterized in that, When it is operated on a communication device, it causes the communication device to perform the method as described in any one of claims 1-17.