Process segment enhancement
Through the testing and processing of machine learning technology and generate a enhanced function unit, the problem of detection and update delay in existing technologies has been solved, the performance optimization of fast and automated performance is achieved, and the performance of user experience and the performance of the entity is improved.
Patent Information
- Application Number
- CN202380045952.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-28
- Filing Date
- 2023-06-21
- Publication Date
- 2025-01-24
AI Technical Summary
The prior art has delays in detecting bottlenecks in processing and providing updates, resulting in a compromise on the quality of user experience and frequent performance improvements in the development and deployment process is complex and expensive.
Through machine learning technology testing and processing and processing, and generating enhanced functional units, automated detection and deployment process, using distributed learning technology to optimize hardware performance and reduce development and deployment time and cost.
It achieves rapid detection and resolution of bottlenecks in processing, improves user experience quality, reduces development and deployment time and costs, and improves the performance and efficiency of computing entities.
Smart Images

Figure CN119365854A_ABST
Abstract
Description
[0001] The present technology relates to managing computing entities that have been deployed in the field, and more particularly to providing machine learning techniques to detect bottlenecks in processing and generate enhanced functional units for deployment on a network of computing entities.
[0002] Traditionally, once a computing entity (such as a device or a unit of firmware or software) has been deployed in the field, further management, problem solving, updates, and improvements are performed through field reports and corrective redistribution of the entity or individual components in the entity. In one example, a hardware product is deployed in the field and may be replaced from time to time with an improved product. In addition, firmware replacements may be occasionally issued to update the control firmware of the hardware product. In the case of using field reconfigurable hardware, the reconstruction can be distributed in the form of hardware descriptor language materials for reconfiguring the hardware logic. In software deployment, updated distributions of software may be provided at more frequent or less frequent intervals during the supported life of the product. This type of replacement and update may be triggered by the accumulation of problem reports from field users, or they may be triggered by product developers realizing that improvements or problem fixes can be made.
[0003] However, typically, there is a considerable time lag before providers release updates (unless it is critical to security or integrity), and the entire process is quite expensive in terms of development time and resources. For these reasons, some types of improvements (such as performance tuning and processing optimization) may be rarely provided, and this may negatively affect the quality of experience perceived by users. Although this slow response may not be a big deal in the days of traditional centralized computing systems, now that computing power is widely distributed in an ecosystem of processor-equipped appliances (such as the Internet of Things), delays in providing updates and improvements have a more significant impact on the quality of experience of everyday users.
[0004] Of course, if such performance improvements are made more frequently, there are obstacles to overcome. For example, it often takes time for a developer organization to become aware of performance issues, such as processing bottlenecks in frequently used functional units (e.g., library modules or frequently repeated processes or routines). There is then typically a delay during which information about bottlenecks is gathered from the deployed units, after which some priority is applied to determine when to devote any development resources to redevelopment of the product or rework of process code. Redevelopment or rework takes time, and any changes must then be tested before any deployment and then monitored for at least some time after deployment to ensure that the changes have no deleterious effects on the security, reliability, and integrity of the product and its environment, and that changes in quality of experience have been achieved.
[0005] In a first approach to resolving many of the difficulties encountered in bottleneck issues in processing performed by deployed computing entities, the present technology provides a computer-implemented method for managing network-attachable computing entities to detect bottlenecks in processing and generate enhanced functional units for deployment on a network of devices, as defined in the appended claims. In a second approach, the present technology provides a method for managing network-reachable distributed processing initiators, as defined in the appended claims.
[0006] 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.
[0007] Specific implementations of the disclosed technology will now be described, by way of example only, with reference to the accompanying drawings, in which:
[0008] Figure 1 shows a simplified view of a method of detecting bottlenecks in processing and generating enhanced function units for deployment on a network of computing entities according to a specific implementation of the techniques described herein; and
[0009] Figure 2 A simplified representation of one possible apparatus, system, or arrangement of electronic circuit components operable to detect bottlenecks in processing and generate enhanced functional units for deployment across a network of computing entities according to an implementation of the techniques described herein is shown.
[0010] As described above, it is desirable to have techniques and processes for data-driven, automated detection and generation of functional units (such as hardware accelerators and new languages and interface structures) that utilize distributed learning techniques that identify hardware optimization potential across multiple groups of computing entities and workloads. Techniques and processes for deploying enhanced function units to all or part of a population of entities deployed in the field can be provided. Deployment can be achieved by transmitting the enhanced function units to a recipient deployment entity, or deployment can be achieved by providing an indication (such as a universal resource indicator) to the recipient deployment entity that indicates where the enhanced function unit is available for download.
[0011] It is also desirable to have a system and method for including optimizing a QoE (Quality of Experience) validation process to assess the quality of the results, including verifying that a computing entity still does what it is supposed to do with the aid of a test framework dedicated to the change. The test can also verify that the operation of the enhanced functional unit does not have any negative impact on the computing entity to which it is deployed or on the broader population of network-attachable computing entities. The test framework can be implemented as a pre-deployment test using a reserved test data set, and as a post-deployment test using feedback from the deployed computing entity operating on real data.
[0012] Thus, the present technology provides apparatus, computer-implemented techniques, and logic for detecting bottlenecks in processing and generating enhanced function units for deployment across a network of computing entities.
[0013] The present technology is capable of operating in an environment of distributed computing entities, where the same process is executed on multiple computing entities, and where certain portions of these processes may be restricted for some reason. The present technology is operable to train a machine learning model to detect a bottleneck process segment in a process flow executed by at least one of the computing entities. A bottleneck process segment may be, for example, a resource-constrained processing path. Typical resource constraints may include, for example, a shortage of available memory, instruction fetch latency, data retrieval latency, bandwidth limitations, etc. These and other resource constraints typically have a "signature" that enables them to be identified as bottlenecks in a process flow when analyzed by a properly trained model-based learning system.
[0014] The machine learning model is deployed to monitor a population of computing entities to capture data and identify signs of bottlenecks. Monitoring computing entities in operation can be accomplished by installing model-based instruments at the computing entities to capture data for analysis. Thus, monitoring data can be collected from client computing entities (with the consent of the client computing entity owner). For example, the duration of data collection can be adjusted to avoid draining the user's battery (in the case of battery-powered devices) or consuming too much communication bandwidth, etc. The machine learning model then applies its learning to determine the cause of the bottleneck and generates an enhanced functional unit that addresses the cause of the bottleneck.
[0015] Training a machine learning model to detect a bottleneck process segment in a process flow may include: training the model to analyze a processing path and generate at least one alternative processing path; comparing the processing path to the alternative processing path to determine which path is more efficient; generating an enhanced function unit for the more efficient processing path; and deploying the enhanced function unit to at least one computing entity having an instance of a process including the bottleneck process segment. Generating the enhanced function unit may include: for example, using a hardware definition language to construct processing logic to apply to a configurable hardware unit, or in another example, it may include constructing an instruction set extension.
[0016] If monitoring detects more than one bottleneck process segment, the present technique may establish a priority order for processing bottlenecks responsive to deployment constraints, such as by determining which bottleneck is more prevalent among a population of computing entities or which bottleneck is causing the most processing delays.
[0017] If the technique recognizes that the current bottleneck has similar characteristics to a previously encountered bottleneck, it can reuse previously generated enhancement function units as a basis.
[0018] As will be apparent to one of ordinary skill in the art, the present technology is capable of operating in a variety of computing-supporting environments, including, for example, conventional distributed processing environments of multiple collaborative servers as well as cloud computing environments and the Metaverse, in which the present technology can be combined with other technologies to enable hyper-personalization of computing.
[0019] Advantageously, the operation of the present technology is autonomous—once the model-based machine learning system is activated, it operates to monitor computing entities reachable on the network to detect bottlenecks, generate appropriate enhanced functional units to address those bottlenecks, perform pre-deployment testing, deploy the enhanced functional units, and apply post-deployment testing, all without the need for human input or control.
[0020] As used in this specification, a "bottleneck" may refer to any constraint that may limit the process efficacy, efficiency, throughput, or resources available for use in data processing by any deployed computing entity.
[0021] As used in this specification, a "functional unit" may refer to electronic logic programmed into a hardware, firmware, or software element.The hardware may take the form of a reconfigurable hardware unit that can be dynamically reconfigured as needed.
[0022] As used in this specification, "enhancement" may refer to the addition of logic or code elements, the removal of logic or code elements, the replacement of logic or code elements, or the manipulation of data structures and formats. The form of enhancement depends on the bottlenecks found and the learning practices and optimization rules embodied in the machine learning model that analyzes the data related to the bottlenecks.
[0023] As used in this specification, a "computing entity" may refer to a hardware device, which may be reconfigured as needed, or to a firmware or software entity, which may be installed on a hardware device, or which may include distributed processing elements installed on multiple devices. For example, a computing entity may include a virtual machine established on an infrastructure (such as a cloud computing infrastructure).
[0024] Computing entities that can benefit from the present technology are network-attachable, that is, they are provided with means to attach to a communications network in the form of static attachment, via a cable, or in the form of wireless attachment. In one example, a wirelessly networked computing entity may be able to be intermittently attached to a network, or it may be able to Network Attachment. As will be apparent to one of ordinary skill in the art, various other forms of static and intermittent network attachments may be used equally advantageously with the present technology.
[0025] Now turn to Figure 1 , shows a very simplified view of a method 100 of detecting bottlenecks in processing and generating enhanced function units for deployment on a network of devices according to a specific implementation of the techniques described herein.
[0026] At 104, deployment data relating to the deployed computing entity is captured. For example, a query may be issued on a network to discover and identify all instances of the deployed computing entity. In a time-independent manner, a model-based learning system is applied at 106 to analyze data relating to the deployed process, and any bottlenecks in the processing performed by the functional units of the deployed computing entity are detected at 108. As will be clear to one of ordinary skill in the art, 104, 106 and 108 can be performed in a different order, and can be performed in multiple iterations - for example, the deployed entity may be equipped with a distributed learning tool to monitor the process and maintain monitoring data for supply during 106, 108. Thus, application of the model-based learning system may form part of ongoing monitoring and investigation activities.
[0027] If a bottleneck is detected at 108, the model is activated at 110 to determine the cause of the bottleneck. As will be clear to those skilled in the art, the model has previously been trained on a large set of relevant data to identify patterns in electronic logic behavior, code behavior, and data transformations that indicate why the process is hindered. The cause of the bottleneck is determined at 108, and at 110, another aspect of the model learning is applied to determine the best available corrective action to provide an enhanced functional unit, for example, by recoding the process - that is, reconstructing the processing logic, whether hardware, firmware or software; or modifying the structure or data being manipulated - to resolve the bottleneck and reduce its impact on the computing entity. In one embodiment, the model can query the reachable computing entity to find any pre-existing solutions in the form of enhanced functional units - for the same problem. The model can also have a library of adaptive logic segments that can be used to enhance the functional unit by replacing logically homologous segments of the processing logic, where the model determines that there is a deterministic flow from the input to the output of the processing segment, and the deterministic flow is prone to improve processing efficiency.
[0028] When the enhanced function unit has been encoded, it is tested at 114 to ensure that the improvements have been made and that its deployment in the field will not cause adverse effects. The enhanced function unit can be tested against a set of test data selected based on the typical operation of the process normally used in the field. The available test forms are well known to those of ordinary skill in the art and do not need to be listed here. If an undesirable effect is noted at 116, the re-encoding process can be repeated and re-tested at 112 and 114 until the pre-deployment test at 114 is passed, or until further iterations are not possible. If no undesirable effects are noted at 116, the re-encoded processing logic is deployed at 118. Typically, as shown at 120, field testing can be applied, in which the enhanced function unit is tested after deployment. If no undesirable effects are noted at 122, this iteration of the method is completed at "end" 124. It will be clear to those of ordinary skill in the art that "end" 124 only represents the end of this iteration of the method 100, and further iterations can be performed. If undesirable effects are noted at 122, the recoding process may be repeated and retested until the post-deployment test passes at 122, or until further iterations are not possible. In this manner, it is determined that the enhanced function unit is achieving its goal of improving the efficiency of the process and that its operation has no adverse impact on the computing entity to which it is deployed or on the broader population of network-attachable computing entities.
[0029] As will be apparent to one of ordinary skill in the art, deployment of enhancement units may be universal to a deployed population of computing entities, or it may be restricted to selected entities based on various criteria, such as, for example, criticality levels established throughout the computing entity system, or, for example, settings established by the computing entity in its system definition.
[0030] In this way, a model-based learning system can be applied to resolve process bottlenecks in deployed computing entities by decomposing the process into subgraphs to determine where bottlenecks exist, encoding enhanced functional units for resolving the causes of the bottlenecks, and deploying the enhanced functional units to the deployed computing entities in the field.
[0031] Now turn to Figure 2 , shows a simplified representation of one possible apparatus, system, or arrangement of electronic circuit components forming a process enhancement system 200 capable of operating in accordance with an implementation of the techniques described herein.
[0032] The process enhancement system 200 includes an enhancement engine 204 arranged to be in electronic communication with deployed computing entities 202 ... ("202 ..." is used herein to represent a group of deployed computing entities). The enhancement engine includes a machine learning (ML) model 206, the ML model including a deployed entity detector operable to identify deployed computing entities that may contain processes that suffer from bottlenecks. The deployed computing entities 202 ... that have been so identified are operable to provide data to the ML model, the ML model including a process analyzer operable to decompose the process into process flow sub-graphs for processing by bottleneck identifiers 212. The bottleneck identifiers 212 identify instances of process delays and pass them to a cause detector 214, the cause detector operable to analyze the instances of process delays by comparing them with instances of learned process flow sub-graphs that achieve appropriate correspondence with respect to desired functionality and other predetermined criteria, but do not suffer from process delays. Thus, the cause detector 214 is operable to isolate the process flow subgraph and provide alternative process flow data to the process enhancement generator 216, which enables the process enhancement generator 216 to determine a more efficient processing path and generate encoding for the more efficient processing path. As described above, the encoding may take the form of software-implemented functional units, or it may include a logical descriptor of the functional unit for application to a reconfigurable hardware arrangement.
[0033] The process enhancement generator 216 is arranged to communicate with a test engine 218, which is operable to perform testing to determine (a) whether the coding of the functional unit developed by the process enhancement generator 216 provides improvements to resolve the bottleneck identified by the bottleneck identifier 212, and (b) whether the operation of the coding developed by the process enhancement generator 216 causes undesirable effects when applied to typical workload data. The test engine 218 is operable to respond to a negative result of the test by re-invoking the process enhancement generator 216 with the test result data to generate at least another instance of the coding for a more efficient processing path. The test engine 218 is operable to respond to a positive result of the test by invoking a deployment engine 220, which is operable to deploy the enhanced functional unit to at least a subset of the deployed computing entities 202... The deployment engine 220 is also operable to provide post-deployment operational data to the testing engine 218, which can therefore perform post-deployment testing to confirm that the deployed enhanced functional unit provides improvements to address the bottleneck identified by the bottleneck identifier 212, and that the operation of the deployed enhanced functional unit does not cause undesirable effects when applied to actual workload data.
[0034] In one exemplary implementation, a machine learning model may be provided that recognizes previously learned functions and may reduce processing path length by autonomously replaying learned functions or combinations of learned functions, by searching an index space of learned functions, or by analyzing and clustering inputs to identify which inputs should produce similar outputs with high probability and reproducing the pattern rather than rerunning the complete processing path. In a collaborative distributed system environment, where local improvements have been made to the processing path, the present technology has the potential to enable a network of reachable computing entities to search for pre-existing "local" enhancements that have been operating in at least one computing entity, and any such pre-existing "local" enhancements may then be retrieved and prepared for deployment to a wider population of computing entities.
[0035] At the CPU level, the present technique can be implemented as a prediction structure in the CPU that can activate a dynamic learning phase each time a new application is seen. Libraries of computational process bottlenecks and libraries of learning functions can be developed for identifying bottlenecks and addressing them, respectively.
[0036] In another variation, the present technology may be applied to create a library of enhanced function units that may be stored for future use (eg, for incorporation into future computing entities during development).
[0037] The present technique has the added advantage that its application is more realistic than running composite benchmarks and optimization scenarios that may not occur in practice or even apply to a particular user. As will be clear to those skilled in the art, the selective nature of the optimization of the present technique has advantages over traditional methods - sometimes blanket optimization (optimization targeting the average case, but generalized to all or most users) can be harmful to some users, and this can be avoided by using the present technique.
[0038] 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 full hardware implementation, a full 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.
[0039] 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.
[0040] 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.
[0041] 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 ASIC (application specific integrated circuit) or FPGA (field programmable gate array), or code for hardware description languages such as Verilog. TM Or VHDL (Very High Speed Integrated Circuit Hardware Description Language) code.
[0042] The program code may be executed entirely on the user's computer, partially on the user's computer and partially 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).
[0043] 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.
[0044] 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.
[0045] 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.
[0046] 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 computer-implemented method of managing a network-attached computing entity, the computer-implemented method comprising: training a machine learning model to detect a bottleneck process segment in a process flow executed by at least a first network-attachable computing entity; deploying the trained model to monitor at least the first network-attachable computing entity in operation; In response to the monitoring detecting an instance of the bottleneck process segment, analyzing the bottleneck process segment to determine a cause of the bottleneck; In response to determining the cause of the bottleneck, generating an enhanced function unit to address the cause of the bottleneck; as well as The enhanced function unit is deployed to at least one of the first network-attachable computing entity and a further network-attachable computing entity having an instance of a process including the bottleneck process segment.
2. The method according to claim 1, wherein analyzing the bottleneck process segment to determine the cause of the bottleneck comprises: Identify signature characteristics of process elements that cause bottlenecks.
3. The method according to claim 1 or claim 2, wherein the training of the machine learning model to detect the bottleneck process segment in the process flow comprises: The model is trained to analyze a processing path and generate at least one alternative processing path. 4 . The method of claim 3 , further comprising comparing the processing path and the at least one alternative processing path to determine which path is a more efficient processing path.
5. The method according to claim 4, wherein the generating enhanced function unit comprises: An encoding is generated for the more efficient processing path.
6. The method according to any preceding claim, wherein generating an enhanced function unit comprises: A hardware definition language is used to construct processing logic for application to configurable hardware units.
7. The method according to any preceding claim, wherein generating an enhanced function unit comprises: Build instruction set extensions.
8. A method according to any preceding claim, the bottleneck process segment comprising a resource-constrained processing path.
9. The method of any preceding claim, responsive to said monitoring detecting more than one instance of said bottleneck process segment, further comprising establishing a priority order for processing said more than one instance of said bottleneck process segment.
10. The method according to any preceding claim, wherein generating an enhanced functional unit to resolve the cause of the bottleneck further comprises: Previously encountered bottlenecks are identified and previously generated functional units are reused as a basis for the generation.
11. The method of any preceding claim, wherein deploying the trained model to monitor at least the first network-attachable computing entity in operation comprises: Model-based instrumentation is installed at the first network-attachable computing entity to capture data for analysis.
12. An apparatus comprising a processor, data storage means and electronic logic to perform the steps of a method according to any preceding claim.
13. A computer program comprising computer program code which, when loaded into a computer system and executed thereon, causes the computer system to perform all the steps of the method according to any one of claims 1 to 11.