Computing resource discovery for request-based offload processing

By discovering and selecting suitable recipient computing entities in the computing resources accessible to the network, the problem of low computing resource utilization efficiency in the prior art is solved, and fast, safe and effective computing task dispatch and execution are achieved.

CN119790643APending Publication Date: 2025-04-08ARM LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380062383.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-09-15
Filing Date
2023-09-06
Publication Date
2025-04-08

AI Technical Summary

Technical Problem

The prior art is difficult to effectively utilize network-accessible computing resources, especially when data processing and task execution exceeding the capabilities of a single device, and it is difficult to quickly and securely evaluate and assign computing tasks.

Method used

By providing a method of operating network reachable initiator computing entities, discovering and selecting network reachable recipient computing entities that can provide distributed processing resources, realizing autonomous, dynamic, fast, intelligent, on-demand computing resource discovery and task dispatch.

Benefits of technology

It realizes the efficient use of surrounding computing resources when needed, improves the efficiency and user experience of computing tasks, reduces the need for additional hardware, and ensures the safe and efficient execution of tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119790643A_ABST
    Figure CN119790643A_ABST
Patent Text Reader

Abstract

A method of operating a network reachable initiator computing entity, the method comprising: determining, at the initiator computing entity, a need to offload data processing; initiating a message to be transmitted over the network to a target, the message being a response from the network-reachable initiator computing entity to the target requesting a network-reachable recipient computing entity along the network indicating an ability to perform the offloaded data processing; and receiving, from the first network-reachable recipient computing entity, a response indicating an ability to perform the offloaded data processing.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] The present technology relates to methods and apparatus for computing resource discovery on a network. More specifically, the technology relates to methods and apparatus for computing resource discovery along a network route.

[0002] Users who have access to a device with the ability to operate as a computer (e.g., a modern smart mobile (cellular) phone) may need data processing capabilities beyond what is available in their device. For example, they may need to utilize large amounts of data that exceed the storage capacity of the device, or they may need to perform long and complex processing tasks that exceed the processing capabilities (or speed) of the device (or perform them faster). In another example, if an application that includes multiple coordinated tasks can access processing capabilities that exceed the limited capabilities of a user's single device, the application may enhance its performance and the user's quality of experience.

[0003] In the current environment, users are often surrounded by a large number of entities with high computing capabilities, which are either fully owned by them (such as in their homes) or a mixture of owned and not owned by them (such as when they are on the move or in the office / airport). These computing entities are not always operating at their maximum capabilities and therefore have idle capacity that is wasted. In addition, today's entities with computing capabilities provide a variety of capabilities, which are usually isolated and therefore not easily exploited by any other reachable system unless the user goes through a lengthy pairing process to create a connection mesh with pre-formed associations to tie the devices and software together. In addition, when an initiator device needs additional help in computing, it may be difficult to assess the capabilities and trust levels of other reachable computing entities via the connection fabric in order to assign computing tasks to them as needed. Therefore, while it is possible to use local networking (e.g., for connecting or other wired or wireless systems) to transfer processed portions to other devices, but there are difficulties in doing so in a way that ensures the effectiveness, efficiency and security of the process.

[0004] In a first approach to addressing the many difficulties encountered in operating computing entities to implement distributed processing of tasks on demand, the present technology provides a method of operating a network-reachable initiator computing entity to discover a network-reachable recipient computing entity capable of providing distributed processing resources, as defined in the appended claims. In a second approach, the present technology provides a method for operating a network-reachable recipient computing entity capable of providing distributed processing resources, as defined in the appended claims. Accordingly, the present technology provides a system and method for discovering a network-reachable recipient computing entity, as defined in the appended claims.

[0005] The method may be computer-implemented, for example in the form of a computer program product which, when loaded into a computer system and executed, causes the computer system to perform the method according to claim 1 . An apparatus comprising a memory and a processor provided with electronic logic circuitry operable to perform the method is also provided.

[0006] Embodiments will now be described with reference to the accompanying drawings, in which:

[0007] Figure 1 A method of operating an initiator computing entity for offloading data processing according to a particular implementation of the presently described technology is illustrated;

[0008] Figure 2 illustrates a simplified representation of one possible arrangement of electronic circuit components for implementing an initiator computing entity capable of operating in accordance with an implementation of the presently described techniques;

[0009] Figure 3 illustrates a method of operating a recipient computing entity for performing offloaded data processing in accordance with a particular implementation of the presently described technology;

[0010] Figure 4 illustrates a simplified representation of one possible arrangement of electronic circuit components for implementing a recipient computing entity capable of operating according to a specific implementation of the presently described techniques; and

[0011] Figure 5 An example system arrangement is illustrated according to a specific implementation of the presently described technology.

[0012] As described above, it is desirable to provide user applications with the opportunity to access additional computing capacity when needed, without the need to permanently acquire additional hardware, and without the need to perform a manual remote device discovery and linking process. In order to ensure that any remote processing is performed effectively and efficiently, it is desirable to confirm that any remote device that is considered a candidate for taking on a task does indeed have the capacity to do so.

[0013] The present technology operates in a world where users are surrounded by many forms of computing capacity, driven by the Internet of Things trend of incorporating computing power into everyday devices. In addition to traditional computing devices, televisions, watches, home control appliances, phones, and many other everyday equipment are equipped to communicate with each other and process information. In many cases, due to the use of standard microprocessors in the case of dedicated software, there may be general computing capacity built into the device that is often underutilized, and this available capacity can be exploited to beneficial effect through the present technology. At the same time, some devices that are required to perform tasks may be "underpowered" and unable to perform those tasks efficiently and quickly, and they may benefit from using some of the unused capacity in the environment that is made available to them through the present technology.

[0014] Therefore, the specific implementation of the present technology provides autonomous, dynamic, fast, intelligent, on-demand, peer-to-peer computing entity discovery to assign computing tasks to these computing entities based on their capabilities. The computing entities can be devices such as hardware platforms, systems of linked devices, virtual machines, or any other technology that can perform computing tasks.

[0015] The present technology gives users additional capacity over a period of time, thereby allowing the most efficient and effective use of all available computing resources and eliminating the need for users to acquire additional permanent computing capacity and then bear the burden of maintaining a large pool of computing capacity that may rarely be utilized to its full capacity. The present technology also allows applications to access ambient computing power and capacity as users move.

[0016] This effect is achieved by a network-reachable recipient computing entity capable of providing distributed processing resources and a distributed processing initiator or a network-reachable initiator computing entity capable of operating to enable discovery of candidate recipient computing entities so as to enable selection from a pool of candidate recipient computing entities for distributed processing based on the capabilities of these candidate recipient computing entities.

[0017] One aspect of the present technology provides a way of operating a network-reachable recipient computing entity capable of providing distributed processing resources to a network-reachable initiator computing entity. The recipient computing entity may be discovered through a discovery process that includes the recipient computing entity determining processing capabilities that may be provided for distributed processing. The recipient computing entity may be discovered and included in a pool of candidates that may be selected by the network-reachable initiator computing entity for receiving offloaded data processing from the network-reachable initiator computing entity.

[0018] A portion of the present technology provides a way to operate a network-reachable initiator computing entity. The network-reachable initiator computing entity first determines a need for offloaded data processing for a processing task. After establishing the need for offloaded data processing, the network-reachable initiator computing entity polls the network to discover candidate computing entities along a network route or path, which candidate computing entities can form a pool of candidate computing entities and can provide processing capabilities to perform offloaded data processing for the processing task. After transmitting a message onto the network to proceed along the network route, requesting an indication of the ability to perform offloaded data processing at a network-reachable recipient computing entity along the network route, the network-reachable initiator computing entity receives a response from a candidate recipient computing entity that can provide at least a portion of the required offloaded data processing.

[0019] In a possible variation, the network-reachable initiator computing entity may receive responses from multiple network-reachable recipient computing entities along the network route, rather than soliciting to discover a first candidate recipient computing entity along the network route that meets the requirements for processing the offloaded data. The network-reachable initiator computing entity may then compare these responses to select the most appropriate recipient computing entity for the data processing to be offloaded, i.e., the optimal resource provisioning computing entity with characteristics that provide, for example, the fastest and / or least costly data processing.

[0020] It will be immediately apparent to one of ordinary skill in the computing arts that a computing entity capable of operating as a distributed processing initiator (i.e., a network-reachable initiator computing entity) may also serve as a resource providing or supplying computing entity (i.e., a network-reachable recipient computing entity). In such a scenario, a computing entity operating as an initiator at one time to solicit help to complete a computing task may, at another time, provide its idle computing resources to help another initiator complete its computing task. In one variation, either the initiator or the resource supply computing entity may be a static device. In all of these cases, the surroundings of the other processing-capable device may be static (at least for a period of time) or may change as the portable device moves from one location to another.

[0021] For a better understanding, the present technology will be presented with reference to the examples shown in the drawings. As will be immediately apparent to those skilled in the art of computing, many variations and additional features may be incorporated into the implementations with the same benefits to users of the present technology.

[0022] The present technology can operate in situations where there is a need to collaboratively distribute tasks among a network of reachable devices, where, for example, a computing entity does not have sufficient resources to complete the task alone, but needs to request other resource owners to help. In another example, if an application that includes multiple tasks can have one or more of these tasks performed by a more computationally powerful device, the quality of the user experience can be enhanced.

[0023] The computing entity that initiates the collaboration is called the initiator, and it can be, for example, a device owned by a user and carried from one place to another, such as a smart phone. The present technology can operate in situations where there are computing entities in the vicinity of the network that may or may not be the owner of the initiator of the computing task, and that will potentially be used to collaborate to complete the task that the initiator does not have sufficient resources to complete. The present technology addresses the assessment of whether another computing entity is available and able to complete the current computing task (e.g., has free storage, battery life, processing cycles, etc.).

[0024] Throughout this disclosure, the term "processing capability" should be understood to cover multiple aspects. For example, a computing entity may have hardware-related performance characteristics, such as available memory, memory organization, processor and queue throughput, processor multitasking capacity, communication and dispatch latency, etc. "Processing capability" may also cover the computing entity's estimate of the bandwidth, latency, and energy cost of transmitting data from the initiator to the resource providing entity and from the resource providing entity back to the initiator. "Processing capability" may also include an estimate of the task size or energy consumption requirements, including how the device is powered (power supply or battery) and (if applicable) the battery level required if the recipient computing entity will be able to perform the task.

[0025] In a specific implementation, the initiator and recipient computing entities may be networked wirelessly, or one or both of them may be networked statically via cables or the like. In one example, the wirelessly networked computing entities may be networked via Accessible, is characterized by being a low energy consumption channel but having a low communication bandwidth. On the other hand, entities can communicate via In cases where the task needs to transfer little data and / or has loose latency requirements, the initiator can choose Attached computing entities can otherwise be used with e.g. Another computing entity connected. Similarly, in the case of a device that relies on energy harvesting or battery power, it is important to assess whether there is enough storage power to complete the task. "Processing capability" may also cover firmware and software support; for example, which tensors are supported, which system libraries exist, and so on. All of this will affect any judgment made by the initiator about the ability of the computing entity to perform a task to meet the initiator's requirements. Many other characteristics that make the computing entity more or less suitable for selection will be immediately apparent to a person of ordinary skill in the art. In a specific implementation of the present technology, each initiator computing entity may include, among other components, an intelligent dispatcher provided with a set of dispatch strategies, a set of cost models covering resource costs for various aspects of task processing, and neural networks for learning and applying these models.

[0026] Figure 1 A simplified view of a method 100 of operating a network-reachable initiator computing entity to implement distributed processing of tasks on demand in accordance with an implementation of the presently described techniques is shown. The method 100 begins at START 102 and at 104 the initiator computing entity determines a need to offload data processing.

[0027] The need to offload data processing may be determined or provided by analyzing a task to be performed at an initiator computing entity and determining that it requires assistance from one or more resource providing recipient computing entities in order to perform the task or to optimize performance of the task.

[0028] In some embodiments, the initiator computing entity may determine the amount of data storage and processing power required to perform the task. In some embodiments, the processing cost or other processing parameters may be determined by the initiator computing entity required to perform the task.

[0029] The initiator computing entity constructs or initiates a message to be transmitted over the network to the ultimate destination at 106. The message provides a request from the network-reachable initiator computing entity to the destination for a response from a network-reachable recipient computing entity along the network route, wherein the requested response is an indication of the ability to perform the offloaded data processing.

[0030] The final destination may be a cloud service that is expected to be able to satisfy the request, wherein a network-reachable recipient computing entity that is prior to the final destination along the network route may be able to satisfy the request at a lower price or with higher efficiency than the cloud service. Thus, if no suitable network-reachable recipient computing entity is found along the network route, or if such a network-reachable recipient computing entity cannot satisfy the request at a lower price or with higher efficiency than the cloud service, the cloud service at the final destination may be an option for satisfying the request.

[0031] The indication of the capability reflects a need for the capability to perform the offloaded data processing at a network-reachable recipient computing entity (e.g., a first network-reachable recipient computing entity). The capability to perform the offloaded data processing may be implemented by the recipient computing entity to which the message is transmitted and to which the message is received. However, in some embodiments, it is possible that the recipient computing entity is aware of potentially nearby peers, i.e., one or more other potential recipient computing entities that may be capable of performing the data processing to be offloaded. These peers may exist outside of the direct network route along which the message traverses to the destination.

[0032] Thus, at 108, the initiator computing entity receives a response from the first network-reachable recipient computing entity indicating the ability to perform offloaded data processing. The method for discovering recipient computing entities then ends at "end" 110. It will be clear to one of ordinary skill in the art that "end" 110 merely represents the end of this iteration of method 100, and that additional iterations may be performed. Furthermore, in addition to discovering recipient computing devices, the initiator computing entity may perform further actions to select an appropriate recipient computing device.

[0033] The indicated capability to perform offloaded data processing may reflect the capability to perform offloaded data processing at a first network-reachable recipient computing entity, or alternatively, the indicated capability to perform offloaded data processing may reflect the capability to perform offloaded data processing at a second network-reachable recipient computing entity.

[0034] In some embodiments, the initiator computing entity may receive a response from each of a plurality of network-reachable recipient computing entities. The plurality of network-reachable recipient computing entities may include a first network-reachable recipient computing entity. Each response from a recipient computing entity indicates a capability to perform the offloaded data processing at a network-reachable recipient computing entity from which the corresponding response was received or from a network-reachable recipient computing entity from which the corresponding response was not received. In the latter scenario, the recipient computing entity may provide information about known, potentially nearby, peers that have the capability to perform the data processing to be offloaded.

[0035] Thus, the ability to perform offloaded data processing may reflect the ability to perform offloaded data processing at one or more network-reachable recipient computing entities among the multiple network-reachable recipient computing entities and / or at one or more network-reachable recipient computing entities among the multiple network-reachable recipient computing entities that are known to but to which messages have not been provided or to which messages may not yet have been provided.

[0036] The message may be an Internet Control Message Protocol (ICMP) message, for example as part of a route tracking function in which packets are forwarded to network elements, such as routers, involved in transmitting data packets. The message may include an extension requesting an indication of the ability of a network-reachable recipient computing entity to perform the offloaded data processing. For example, the message may include details of the required processing capacity. Additionally, the message may include details of one or more of storage capacity and cost required for the data processing.

[0037] In some embodiments, the initiator computing entity may parse the received receiver computing entity capability output to compare the receiver computing entity capability output with the receiver computing entity capability requirements to determine whether the receiver computing entity capability output reaches some minimum value determined by the receiver computing entity capability requirements. If the receiver computing entity capability output does not reach some minimum value determined by the receiver computing entity capability requirements, the receiver computing entity is not identified as an appropriate receiver computing entity for performing the task on behalf of the initiator computing entity. If the receiver computing entity capability output does reach the minimum value determined by the receiver computing entity capability requirements, the initiator computing entity may immediately select a candidate receiver computing entity, or it may perform further comparisons with the receiver computing entity capability outputs exposed by other receiver computing entities to determine which receiver computing entity is best suited for the task. The initiator computing entity may assign the task to the selected candidate. The initiator computing entity waits for the completion of the assigned task, which may include completion, incompleteness, or failure to meet the required criteria.

[0038] In the case where a single application consists of, or can be decomposed into, multiple tasks or workloads, the initiator computing entity will perform the above process for each task of the application. For example, a recipient computing entity may be able to take on two of the three tasks of an application, and the third task may remain running on the initiator computing entity. There may also be reasons why multiple tasks of the same application must run on the same recipient computing entity: one reason may be that two tasks communicate during their execution and they require minimum latency for that communication, or two tasks may need to share data. The present technology is flexible enough to accommodate any such affinity decisions made by the initiator computing entity.

[0039] Figure 2A simplified representation of one possible arrangement of electronic circuit components for implementing an initiator computing entity 200 capable of operating in accordance with a specific implementation of the presently described techniques is shown. The initiator computing entity 200 may comprise a virtual machine at its highest level, but at its lowest level, it comprises electronic logic circuitry 202 capable of being attached to a network 204. The network 204 may comprise any known form of network, such as a wide area network, a local area network, a cloud computing infrastructure, Short-range networks, wireless network, etc. The electronic logic circuitry 202 of the initiator computing entity may be continuously attached to the network 204, or its attachment may be intermittent.

[0040] The electronic logic circuit 202 includes a task repository 206. The specific form of the data storage device used is not important to the operation of the present technology, but it will be clear to those skilled in the art that it can take any form as long as it is suitable for storing task data related to the tasks to be initiated by the initiator computing entity 200. The electronic logic circuit 202 also includes a storage capacity requirement evaluator 208 and a processing power / capacity requirement evaluator 212 responsible for determining the required storage capacity and computing capacity necessary to perform the tasks on behalf of the initiator computing entity 200. The storage capacity requirement evaluator 208 and the processing power / capacity requirement evaluator 212 provide their respective inputs to the recipient computing entity capacity requirement builder 216. In response to receiving the inputs from the storage capacity requirement evaluator 208, the processing power / capacity requirement evaluator 212, the recipient computing entity capacity requirement builder 216 is operable to build the recipient computing entity capacity requirements 218.

[0041] The electronic logic circuit 202 also includes a requester / receiver 220 operable to attach to and electronically communicate with the network 204. The requester / receiver 220 is operable to send queries over the network 204 to discover candidates for performing tasks on behalf of the initiator computing entity 200. The requester / receiver 220 is also operable to receive at least one recipient computing entity capability output 222 over the network 204. The comparator and decision engine 224 then compares the received recipient computing entity capability output 222 to the recipient computing entity capability requirements 218. If the comparison reveals that the recipient computing entity capability output 222 does not meet the minimum value established by the recipient computing entity capability requirements 218, no further action needs to be initiated for that instance of operation of the electronic logic circuit 202. If the recipient computing entity capability output 222 does meet the minimum established by the recipient computing entity capability requirements 218, the comparator and decision engine 224 may then be operable to select the first available candidate that has met the minimum, or may continue to process additional recipient computing entity capability outputs 222 to establish the most suitable candidate recipient computing entity. Regardless of which candidate is selected, the electronic logic circuit 202 also includes a dispatcher 226 that is operable to dispatch tasks to the candidate recipient computing entities for processing.

[0042] Figure 3 A simplified view of a method 300 of operating a network-reachable recipient computing entity to implement distributed processing of tasks on demand in accordance with a specific implementation of the presently described technology is shown. The method begins at START 302, and at 304, a recipient computing entity receives a message requesting an indication of the ability to perform offloaded data processing from the recipient computing entity.

[0043] In some embodiments, the message may be an Internet Control Message Protocol message transmitted by a network-reachable initiator computing entity or from another network-reachable recipient computing entity in a network to which the network-reachable recipient computing entity receiving the message belongs. In such embodiments, at 306, the recipient computing entity determines whether the received message is an Internet Control Message Protocol message.

[0044] When it is determined that the received message is not an Internet Control Message Protocol message, the recipient computing entity may immediately proceed to "End" 316 without taking any action to communicate with the initiator computing entity. As will be apparent to one of ordinary skill in the art, "End" 316 represents the end of this iteration of method 300, and additional iterations may be performed. Thus, in this specific implementation, the recipient computing entity may receive the message and determine at its discretion that its resources are insufficient to perform the requested offloaded data processing on behalf of the initiator computing entity.

[0045] When at 306, the recipient computing entity determines that the received message is an Internet Control Message Protocol message, the offloaded method proceeds to 308, in which the recipient computing entity determines whether the Internet Control Message Protocol message includes an extension requesting an indication of the ability to perform data processing from the recipient computing entity.

[0046] When it is determined that the received message does not include an extension requesting an indication of the capability to perform offloaded data processing, the recipient computing entity may immediately proceed to "end" 316 without taking any action to communicate with the initiator computing entity. Alternatively, when it is determined that the received message does not include an extension requesting an indication of the capability to perform offloaded data processing, the recipient computing entity may provide a response to the initiator to indicate receipt of the message.

[0047] When it is determined that the received message includes an appropriate extension requesting an indication of the ability to perform the offloaded data processing, then the recipient computing entity determines whether the recipient computing entity has the ability to perform the offloaded data processing at 310. Determining the ability to perform the offloaded data processing may require comparing the requirements provided in the message extension to the capabilities of the recipient computing entity.

[0048] When it is determined that the recipient computing entity does not have the capability to perform the required offloaded data processing, the recipient computing entity may immediately go to "end" 316 without taking any action to communicate with the initiator computing entity. Alternatively, when it is determined that the recipient computing entity does not have the capability to perform the required offloaded data processing, the recipient computing entity may provide a response to the initiator computing entity to signal the lack of capability to perform the data processing to be offloaded.

[0049] When it is determined that the recipient computing entity has the capability to perform the required offloaded data processing, then at 312, the recipient computing entity constructs a response to the received message that includes an indication of the capability to perform the offloaded data processing.

[0050] The response is then transmitted to the initiator computing entity at 314 .

[0051] In the above implementation, at 314, the recipient computing entity externalizes the ability to provide data processing for the data to be offloaded by the initiator computing entity by transmitting a message over the network to the initiator computing entity, thereby potentially entering a pool of candidates for selection by the initiator computing entity to perform tasks on behalf of the initiator computing entity. The recipient computing entity completes the current iteration of method 300 at "end" 316. As described above, it will be clear to one of ordinary skill in the art that "end" 316 only represents the end of this iteration of method 300, and additional iterations may be performed.

[0052] In this way, the recipient computing entity can use its analysis of its available computing facilities to construct and externalize its ability to undertake task processing on behalf of the originating computing entity.

[0053] Figure 4 A simplified representation of one possible arrangement of electronic circuit components for implementing a recipient computing entity 400 capable of operating in accordance with a specific implementation of the presently described techniques is shown. The recipient computing entity may include a virtual machine at its highest level, but at its lowest level, it includes electronic logic circuitry 402 capable of being attached to a network 404. The network 404 may include any known form of network, such as a wide area network, a local area network, a cloud computing infrastructure, Short-range networks, Wireless network, Ethernet, etc. The electronic logic circuitry 402 of the resource provisioning computing entity may be continuously attached to the network 404, or its attachment may be intermittent.

[0054] The electronic logic circuit 402 includes a data repository 406 and a processor 410. The specific form of the data storage device and the processor is not important to the operation of the present technology, but it will be clear to those skilled in the art that both can take any form as long as they are suitable for the storage and processing of data, respectively. The electronic logic circuit 402 also includes a storage capacity evaluator 408 and a processing capacity / capacity evaluator 412 responsible for determining the available storage and computing power and capacity of the electronic logic circuit 402. The storage capacity evaluator 408 and the processing capacity / capacity evaluator 412 provide their respective inputs to the recipient computing entity capability builder 416, which in response is operable to build a recipient computing entity capability output 418.

[0055] In some embodiments, receiver 420 is operable to receive a message over network 404 that includes a request for an indication of capability 422 to perform offloaded data processing. The request for an indication of capability 422 may include processing capability requirements of the recipient computing entity, where these processing capability requirements may include, for example, one or more of: processing requirements in terms of millions of instructions per second required at the recipient computing entity, and processor availability time required at the recipient computing entity. Comparator and decision engine 424 may then compare recipient computing entity capability output 418 with the request for an indication of capability 422. In this specific implementation, if the comparison shows that recipient computing entity capability output 418 does not meet some minimum value established by the request for an indication of capability 422, no further action needs to be initiated with respect to this instance of operation of electronic logic circuit 402. If the recipient computing entity capabilities output 418 does meet the minimum established by the request for an indication of capabilities 422, or if this specific implementation of the electronic logic circuit 402 does not include the receiver 420 and the comparator and decision engine 424, the electronic logic circuit 402 is capable of operating to display the recipient computing entity capabilities output 418 via the network 404.

[0056] There can be multiple instances of a relationship of one initiator to many workload recipient candidates, and the reachable recipient computing entities form the neighborhood of the initiator. The home environment is a good example of a neighborhood, and it has the highest density of computing entities (outside of the data center), and the devices around the user have a higher probability of being trusted by the user because the user owns them.

[0057] Any reachable recipient computing entity using the present technology will be able to be part of the pool of recipient computing task candidates. The pool can be expanded to include recipient computing entities outside the user's home, or when the user is on the move or at work. As explained above, a computing entity that plays the role of initiator at one time can play the role of recipient computing entity at another time.

[0058] In an initial scenario, boundaries may be established or provided to limit the distance from an initiator computing entity at which a recipient computing entity may be located. An initiator computing entity may establish scenario boundaries to define a pool of candidate network-reachable recipient computing entities for offloaded data processing.

[0059] If an initiator computing entity does not receive sufficient responses from a first set of potential candidate recipient computing entities within its current scene boundary, the initiator computing entity may expand the scope of its query by expanding the current scene boundary to include more reachable recipient computing entities that are farther away from the initiator computing entity in the network.

[0060] The set of reachable recipient computing entities may form a neighborhood, and the parameters defining the neighborhood may be stored and reused by the computing entity when acting as an initiator. This concept of neighborhood introduces the meaning of a dynamic neighborhood that changes depending on where the user or initiator computing entity is located (such as home, living room, office, car, train, etc.). In this case, by using an external learner neural network, the present technology can develop and learn different scenarios based on the neighborhood of the initiator computing entity, thereby achieving scenario-based operation of the initiator, thus saving time in the decision-making process when determining which computing entities to assign tasks to.

[0061] Similarly, operation of the neural network allows usage of an application where computing tasks are initiated from an initiating device to vary depending on how individual users interact with it, thereby achieving personalization. The neural network learns how an application is used by one person relative to another in a living room neighborhood by observing how a dispatcher of the initiating device dispatches computing tasks to available workload recipients in a pool associated with, for example, a living room neighborhood.

[0062] The region used to select the best recipient computing entity starts from where the user is located (and is typically initiated by the device the user is using), but while the present technology can utilize the neighborhood concept, it can also be implemented in a location-independent manner, and thus the neighborhood can then be expanded to any other reachable computing node based on the priorities of the workload to be executed: latency, privacy, energy consumption, etc.

[0063] Figure 5 A system 500 for computing resource discovery along a network 502 is illustrated. Such a system may include a network-reachable initiator computing entity 200 and one or more network-reachable recipient computing entities 400 configured to perform the methods previously described. For example, in Figure 5 In the embodiment, there are five network-reachable receiver computing entities 400-1, 400-2, 400-3, 400-4, 400-5 configured to perform the previously described method, each network-reachable receiver computing entity representing a hop in the network. In an example, the first receiver computing entity 400-1 may be a gateway, the second receiver computing entity 400-2 may be a 5G multi-access edge computing (MEC) data center, the third receiver computing entity 400-3 may be a telecommunications operator, the fourth receiver computing entity 400-4 may be a local data center, and the fifth receiver computing entity 400-5 may be a regional data center.

[0064] When a network-reachable receiver computing entity 400 among one or more network-reachable receiver computing entities 400 receives a message transmitted from a network-reachable initiator computing entity 200 but does not have the ability to perform data processing to be offloaded or is unable to process the message, the network-reachable receiver computing entity forwards the message to the next network-reachable receiver computing entity 400 in the network without providing any details of the ability to perform the offloaded data processing to the network-reachable initiator computing entity.

[0065] The network-reachable initiator computing entity 200 may receive responses from one or more network-reachable recipient computing entities 400 indicating the capabilities of each respective network-reachable recipient computing entity 400 to perform the data processing intended to be offloaded. The network-reachable initiator computing entity 200 may then select a network-reachable recipient computing entity 400 to perform the offloaded data processing.

[0066] In various implementations, the present technology may fall into context according to the following list of processing steps.

[0067] The list uses the following abbreviations:

[0068] 1. Distributed Processing Initiator (DPI)

[0069] 2. Distributed Processing Initiator Capability Requirements (DPI_R)

[0070] 3. Distributed Processing Receiver (DPR)

[0071] 4. Distributed Processing Receiver Capability Output (DPR_O)

[0072] Scenario 1 is a simpler implementation and may help keep the number of communication interactions low since no DPI capability requirements are sent.

[0073] Scenario 1: DPI capability requirement DPI_R remains at DPI. DPR always transmits its DPR_O.

[0074] 1.DPI->Generation Capacity Requirement (DPI_R)

[0075] 2.DPI->Request receiver capability output DPR_O from DPR

[0076] 3.DPR->Generate Receiver Capability Output (DPR_O)

[0077] 4.DPR->Transmit DPR_O to DPI

[0078] 5.DPI->Analyze DPI_R and DPR_O to determine which DPR to use.

[0079] Scenario 2 is more complex, but advantageously allows reducing the number of candidates that respond to the DPI's query.

[0080] Scenario 2: DPI capability requires DPI_R to be transmitted to DPR. Depending on the overlap between DPR_O and DPI_R, DPR may or may not transmit its DPR_O to DPI.

[0081] 1.DPI->Generation Capacity Requirement (DPI_R)

[0082] 2.DPI->transmits its capability request (DPI_R) to DPR

[0083] 3.DPR->Generate Receiver Capability Output (DPR_O)

[0084] 4.DPR->potentially analyze its DPR_O and DPI_R to see if there is overlap

[0085] 5. DPR->If there is good overlap between DPR_O and DPI_R, then DPR_O is passed to DPI; otherwise, potentially, DPR indicates that it cannot perform the task, or simply does not respond with an attempt to join the candidate pool.

[0086] 6.DPI->Analyzes DPI_R and received DPR_O to determine which DPR to use.

[0087] The flexibility of the present technology allows for a variety of different operating scenarios and is not limited to the two scenarios exemplified above. Other scenarios may include, but are not limited to, for example, a DPI only transmits its DPR_O to a DPI in response to its availability. In another example, the DPI transmits a limited DRI_R to a reachable DRP. Because the present technology can operate at the infrastructure level, scenarios can be covered and expressed through an extensible protocol that is suitable for modification to suit the efficiency, safety, reliability, and integrity requirements of the owner of the device.

[0088] As will be appreciated by those skilled in the art, the present technology may be embodied as a system, method, or computer program product. Thus, the present technology may take the form of a fully hardware implementation, a fully software implementation, or an implementation that combines software and hardware. Where the word "component" is used, it will be understood by those skilled in the art to refer to any portion of any of the above implementations.

[0089] Furthermore, the present technology may take the form of a computer program product embodied in a non-transitory computer readable medium having computer readable program code embodied thereon. The computer readable medium may be a computer readable storage medium. The computer readable medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.

[0090] Computer program code for carrying out operations of the present technology may be written in any combination of one or more programming languages, including object oriented programming languages ​​and conventional procedural programming languages.

[0091] For example, program code for performing operations of the present technology may include source code, object code or executable code in a conventional programming language (interpreted or compiled) such as C, or assembly code, code for setting or controlling an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA), or code for hardware description languages ​​such as Verilog. TM or Very High Speed ​​Integrated Circuit Hardware Description Language (VHDL) code.

[0092] The program code may be executed entirely on the user's computer, partly on the user's computer and partly on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network. Code components may be embodied as procedures, methods, etc., and may include subcomponents that may take the form of instructions or sequences of instructions at any level of abstraction, from direct machine instructions of a native instruction set to high-level compiled or interpreted language constructs.

[0093] It will also be clear to those skilled in the art that all or part of the logic method according to the embodiments of the present technology may be appropriately embodied in a logic device, which includes logic elements for performing the steps of the method, and such logic elements may include, for example, components such as logic gates in a programmable logic array or an application-specific integrated circuit. Such a logic arrangement may also be embodied as an enabling element for temporarily or permanently establishing a logic structure in such an array or circuit using, for example, a virtual hardware descriptor language, which may be stored using a fixed carrier medium.

[0094] In an alternative embodiment, an embodiment of the present technology can be implemented in the form of a computer-implemented method for deploying a service, the method including the step of deploying a computer program code, which is operable to cause the computer system or network to perform all the steps of the method when deployed into and executed on a computer infrastructure or network.

[0095] In yet another alternative, an embodiment of the present technology may be implemented in the form of a data carrier having functional data thereon, the functional data comprising a functional computer data structure, so that when loaded into and operated on a computer system or network, the computer system is capable of performing all the steps of the method.

[0096] It will be apparent to those skilled in the art that many improvements and modifications can be made to the foregoing exemplary embodiments without departing from the scope of the present technology.

Claims

1. A method for operating a network-reachable initiator computing entity, the method comprising: determining, at the initiator computing entity, a need to offload data processing; initiating a message to be transmitted over a network to a target, the message being from the network-reachable initiator computing entity to the target, requesting a response from a network-reachable recipient computing entity along the network indicating a capability to perform offloaded data processing; as well as A response is received from the first network-reachable recipient computing entity indicating an ability to perform the offloaded data processing.

2. The method of operating a network-reachable initiator computing entity of claim 1, wherein the capability to perform offloaded data processing reflects a capability for performing offloaded data processing at the first network-reachable recipient computing entity.

3. The method of operating a network-reachable initiator computing entity of claim 1, wherein the capability to perform offloaded data processing reflects a capability for performing offloaded data processing at a second network-reachable recipient computing entity.

4. The method for operating a network-reachable initiator computing entity according to claim 2 or claim 3, the method comprising: comparing the capability to perform offloaded data processing to the demand; selecting a candidate network-reachable recipient computing entity based on the comparing; as well as The offloaded data processing is dispatched to the selected candidate.

5. A method of operating a network-reachable initiator computing entity according to any preceding claim, the method comprising: A response is received from each of a plurality of network-reachable recipient computing entities including the first network-reachable recipient computing entity, each response indicating a capability to perform offloaded data processing.

6. The method of operating a network-reachable initiator computing entity of claim 5, wherein the capability to perform offloaded data processing reflects a capability to perform offloaded data processing at the network-reachable recipient computing entity from which a corresponding response was received.

7. A method of operating a network-reachable initiator computing entity according to claim 5 or claim 6, wherein the ability to perform offloaded data processing reflects the ability to perform offloaded data processing at a network-reachable recipient computing entity from which no corresponding response was received.

8. The method for operating a network-reachable initiator computing entity according to claim 6 or claim 7, the method comprising: comparing the capability of each of the network-reachable recipient computing entities to perform offloaded data processing with the demand; selecting a candidate network-reachable recipient computing entity based on the comparing; as well as The offloaded data processing is dispatched to the selected candidate.

9. A method of operating a network-reachable initiator computing entity according to claim 4 or claim 8, wherein said comparing comprises determining whether said capacity for performing offloaded data processing reaches a minimum value determined by said demand.

10. A method of operating a network-reachable initiator computing entity according to any preceding claim, wherein the message is an Internet Control Message Protocol message including an extension requesting an indication from the network-reachable recipient computing entity of a capability to perform offloaded data processing.

11. A method of operating a network reachable initiator computing entity as claimed in any preceding claim, wherein the message includes details of the processing capabilities required.

12. A method of operating a network reachable initiator computing entity according to claim 11, wherein the message includes details of one or more of storage capacity and cost required for data processing.

13. A method of operating a network reachable initiator computing entity according to any preceding claim, the method comprising: A scenario boundary is established to define a pool of candidate network-reachable recipient computing entities for offloaded data processing.

14. A method of operating a network-reachable recipient computing entity, the method comprising: receiving a message requesting an indication of capability to perform offloaded data processing from the network-reachable recipient computing entity; determining whether the network-reachable recipient computing entity has the capability to perform the offloaded data processing; as well as When it is determined that the network-reachable recipient computing entity has the capability to perform the offloaded data processing, a response to the received message is constructed, the response including an indication of the capability to perform the offloaded data processing.

15. The method of operating a network-reachable recipient computing entity of claim 14, wherein the message is received from an initiator computing entity, the method comprising transmitting the response to the initiator computing entity.

16. A method of operating a network-reachable recipient computing entity according to claim 14 or claim 15, the method comprising: determining whether the received message is an Internet Control Message Protocol message; as well as When the received message is an Internet Control Message Protocol message, before determining whether the network-reachable recipient computing entity has the capability to perform offloaded data processing, determine whether the received Internet Control Message Protocol message includes an extension, wherein the extension requests the indication of the capability to perform offloaded data processing from the network-reachable recipient computing entity.

17. A method of operating a network-reachable recipient computing entity according to any one of claims 14 to 16, wherein the indication of capability to perform offloaded data processing comprises a processing capability of the network-reachable recipient computing entity.

18. A method of operating a network-reachable recipient computing entity according to claim 17, wherein the processing capacity of the network-reachable recipient computing entity is expressed as one or more of the following: a million instructions per second value available at the network-reachable recipient computing entity, and a processor availability time.

19. A method for operating a network-reachable recipient computing entity according to claim 17 or claim 18, wherein the indication of the ability to perform offloaded data processing includes one or more of the following: storage capacity of the network-reachable recipient computing entity, and data processing costs at the network-reachable recipient computing entity.

20. An apparatus comprising a data storage repository, a processor and dedicated electronic logic circuitry, the apparatus embodying the method according to any one of claims 1 to 19.

21. A computer program comprising computer program code which, when loaded into a computer system and executed on the computer system, causes the computer system to perform all the steps of the method according to any one of claims 1 to 19.

22. A system for computing resource discovery along a network, the system comprising: A network-reachable initiator computing entity, the network-reachable initiator computing entity being configured to perform the method according to any one of claims 1 to 13; and One or more network-reachable recipient computing entities, the one or more network-reachable recipient computing entities being configured to perform the method of any one of claims 14 to 19; Wherein, if a network-reachable receiver computing entity among the one or more network-reachable receiver computing entities receives the message transmitted from the network-reachable initiator computing entity but does not have the ability to perform offloaded data processing or is unable to process the message, the network-reachable receiver computing entity forwards the message to the next network-reachable receiver computing entity in the network without providing any details of the ability to perform offloaded data processing to the network-reachable initiator computing entity.

23. The system for computing resource discovery along a network according to claim 22, wherein the network-reachable initiator computing entity is configured to: receiving responses from one or more network-reachable recipient computing entities, the responses indicating a capability at each respective network-reachable recipient computing entity to perform offloaded data processing; and A network-reachable recipient computing entity is selected to perform offloaded data processing.