DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claims 1-25 are pending in this application.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-25 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
The functionality behind the independent claims is unclear. The first workload is executing on the first computing units; however, once the change from first computing units to second computing units occurs, it is unclear what happens to the first workload. As it reads currently, it appears the first workload ceases to exist once the change in computing units occurs. Is the first workload being preempted? It seems like the first workload should continue to execute on the second computing units along with the second workload. However, the second computing units only execute the second workload as stated in the last limitations of the independent claims.
It is difficult to grasp the inventive concept of the claims. The entire transition from first computing units to second computing units is unclear. What happens to the first workload? Are some or all or none of the first computing units included in the second computing units? For interpretation purposes, Examiner is interpreting the independent claim as something happens to the first computing units (i.e., failure or overload) which causes the first workload to be migrated to different the second computing units. Thus, the second computing units execute both the first and second workload due to the failure of the first computing units.
Claims 2-10, 12-15, 17-20, and 22-25 are dependent claims of claims 1, 11, 16, and 21, respectively, so they are rejected for similar reasons.
Claims 15, 17-20, and 22-25 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claims 15, 17, and 22 recite the limitation "implementing an initialization function of the apparatus." There is insufficient antecedent basis for this limitation in the claim.
Claims 18-20 and 23-25 are dependent claims of claims 17 and 22, respectively, so they are rejected for similar reasons.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1-3, 11-14, 16, and 21 are rejected under 35 U.S.C. 103 as being unpatentable over Nguyen et al. (US Pub. No. 2018/0275893 A1 hereinafter Nguyen) in view of Nagasundaram et al. (US Pub. No. 2023/0195485 A1 hereinafter Nagasundaram).
As per claim 1, Nguyen teaches an apparatus of a computing network, the computing network including a plurality of computing units, the computing units including a central processing units (CPU) and one or more accelerator processing units (APUs) (¶ [0015], “The datacenter 102 as illustrated includes a host 104. The host 104 may be one of a plurality of hosts in the datacenter 102 The host 104 as illustrated includes virtual machines 110 and 112, a hypervisor 114, resiliency circuitry 116, and electrical and/or electronic components 120. The components 120 include a plurality of components 122(1), 122(2), 122(3), 122(4), 122(5) and 122(6). While six components 122(1)-122(6) are illustrated, the components 120 may include generally any number (e.g., two or more) of components. The components 120 may include a processor, FPGA, purpose built accelerator, or the like (represented by component 120) with a plurality of processor cores, gate arrays, a processor of a purpose built accelerator, respectively, or the like (represented by the components 122(1)-122(6)).”), the apparatus including an input, an output, and a processing circuitry coupled to the input and output (¶ [0018], “The resiliency circuitry 116 may monitor a voltage value on one or more inputs and/or one or more outputs of the components 122(1)-122(2) and 122(4)-122(5).”), the processing circuitry to: determine a first mapping between a first set of data parameters and first computing units of the computing network; select, based on the first mapping and on first data having a first workload associated therewith, one or more of the first computing units to execute the first workload, and send for execution the first workload to the one or more of the first computing units (¶ [0017], “The resiliency circuitry 116 may be configured as a state machine configured to receive data used in determining an amount of wear on a component 122(1)-122(2) and 122(4)-122(5) and determine, based on the received data, whether a workload of the component 122(1)-122(2) and 122(4)-122(5) is to be offloaded to another component 122(3) and 122(6) and/or whether the components 122(1)-122(2) and 122(4)-122(5) is to be reconfigured based on the wear indicator, such as to reduce a chance that the components will experience a fault.”); determine a second mapping based on a change in computing units of the computing network from the first computing units to second computing units, the second mapping being between a second set of data parameters and the second computing units; and select, based on the second mapping and on second data having a second workload associated therewith, one or more of the second computing units to execute the second workload, and send for execution the second workload to the one or more of the second computing units (¶ [0040]-[0042], “The method 300 as illustrated monitoring wear indicators, at operation 310; determining whether the component is stressed, at operation 320; continuing to monitor the wear indicators, at operation 310, in response to determining the component is not stressed; and in response to determining the component is stressed, at operation 320, migrating a workload from the stressed component to another component (e.g., a component that is currently unused or may otherwise be able to carry the workload of the stressed component)…The method 300 may further include determining the first component is stressed in response to determining the wear value is greater than, or equal to, the wear value threshold. The method 300 may include, wherein the wear value threshold is one of a plurality of wear value thresholds including an intermediate wear value threshold and a terminal wear value threshold. The method 300 may further include comparing the determined wear value to each of the wear value thresholds. The method 300 may further include, in response to determining the wear value is greater than the intermediate wear value threshold and below the terminal wear value threshold, transfer the workload associated with the first component to a second component with a wear value less than the intermediate wear value threshold.” See also para. 0035, 0043-0044).
Although Nguyen teaches a change in computing units and moving workloads across computing units, Nguyen fails to explicitly teach mapping a workload to computing units.
However, Nagasundaram teaches determine a first mapping between a first set of data parameters and first computing units (¶ [0036], “The workload analytic engine 252 may be responsible for, among other things, evaluating the workloads coming from each of the VMs based on the group mapping information, assigning workloads to a VF of the group assigned to the VM, for example, based on resource group information maintained regarding the one or more VFs associated with each group and based on resource metric information maintained regarding utilization of resources, for example, by accelerator (e.g., accelerators 170a-y) and by VF (e.g., VFs (180a-x)).” ¶ [0053], “At block 410, workload analytics are performed. According to one embodiment, a workload analytic engine (e.g., workload analytic engine 253) updates workload assignment information (e.g., workload assignments 284) to include the new workload and requests resource group information (e.g., resource groups 286) and resource metric information (e.g., resource metrics 288) from a resource analytic engine (e.g., resource analytic engine 254) to facilitate the workload analytics. Based on group mapping information (e.g., group metrics 282), identifying a group of one or more VFs (e.g., VFs 180a-x) that has been assigned to respective VMs, the resource group information, and the resource metric information, the workload analytics may involve determining whether the group (if any) assigned to the VM has sufficient capacity and features to accommodate the new workload.”) and determine a second mapping based on a change in computing units (¶ [0054]-[0055], “At decision block 420, it is determined whether resource remapping is to be performed…As such, in the case of the former, resource remapping may involve creation of a new group to be assigned to the VM; and in the case of the latter, resource remapping may involve associating another available VF with the group already assigned to the VM. According to one embodiment, by comparing the various aspects of the new workload to corresponding capacities and features of the one or more VFs of the group, the workload analytic engine may identify a specific VF of the group to which the new workload should be routed; however, when no VF can be identified, the workload analytic engine may determine resource remapping is to be performed to include an identified VF within the existing group or a new group. In one embodiment, whether resource remapping is to be performed may additionally or alternatively be based on a set of one or more predefined or configurable remapping criteria, for example, expressed in terms of QoS, efficiency, and/or operational costs. Using such remapping criteria, a particular VM may be reassigned from one group of one or more VFs to another despite lack of capacity constraints by the current group to which the particular VM is assigned to meet the current and/or expected future resource demands of workloads of the particular VM. For example, responsive to determining use of one of more particular VFs associated with a new accelerator would improve one or more remapping criteria by a predetermined or configurable threshold and/or responsive to determining the current group to which the particular VM is not currently satisfying or may not in the near future (e.g., based on a workload forecast) satisfy all or some portion of the set of remapping criteria, a new group including one or more of the particular VFs may be created and the particular VM may be reassigned from the current group to the new group.”).
Nguyen and Nagasundaram are considered to be analogous to the claimed invention because they are in the same field of workload management. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the workload execution environment of Nguyen with the resource mapping/remapping functionality of Nagasundaram to arrive at the claimed invention. The motivation to modify Nguyen with the teachings of Nagasundaram is that implementing a resource mapping/remapping decision making process allows for more efficient allocation and use of resources by workloads which results in better workload execution.
As per claim 2, Nguyen and Nagasundaram teach the apparatus of claim 1. Nguyen teaches wherein the computing units are in a single computing device, the computing device including the processing circuitry (¶ [0036], “FIG. 2 illustrates, by way of example, a logical diagram of an embodiment of a system 200 for migrating operation(s) of a component to another component. The system 200 as illustrated includes a device 202 and an orchestrator 206. The device 202 includes the resiliency circuitry 212 and the component(s) 122(1)-122(6).”).
As per claim 3, Nguyen and Nagasundaram teach the apparatus of claim 2. Nguyen teaches wherein the processing circuitry is part of the CPU (¶ [0017], “The resiliency circuitry 116 may include an application specific integrated circuit (ASIC), a programmable gate array (e.g., a programmable chip, such as may include an FPGA), central processing unit (CPU), graphics processing unit (GPU), or the like.”).
As per claim 11, it is a product claim comprising similar limitations to claim 1, so it is rejected for similar reasons. Nagasundaram teaches a non-transitory computer-readable storage medium comprising instructions stored thereon (¶ [0080], “The term “storage media” as used herein refers to any non-transitory media that store data or instructions that cause a machine to operation in a specific fashion.”).
As per claim 12, it is a product claim comprising similar limitations to claim 3, so it is rejected for similar reasons.
As per claim 13, Nguyen and Nagasundaram teach the product of claim 11. Nagasundaram teaches wherein the operations further include determining the first mapping or the second mapping by accessing the first mapping or the second mapping, respectively, from a memory, the memory within the computing device or external to the computing device (¶ [0034], “In one embodiment, DIRE 250 supports scaling as new VMs are created within or removed from the host system (e.g., host system 100). The group mapping module 252 may be responsible for, among other things, maintaining group mapping information that maps each of multiple groups of one or more VFs (e.g., VFs 180a-x) to its respective VM. The group mapping information may include the number of VMs running within the host system (e.g., host system 100) and information regarding the particular group of one or more VFs assigned to each VM as well as metrics for each VM. Table 1 (below) represents a non-limiting example of the group mapping information (e.g., group metrics 282) that may be maintained by the group mapping module 252.” See also para. 0062.).
As per claim 14, Nguyen and Nagasundaram teach the product of claim 13. Nagasundaram teaches wherein, when the memory is external to the computing device, wherein the operations further include generating entries of the second mapping and to send the entries for storage in the memory as part of the second mapping, the second mapping including a cluster map of mappings of multiple computing devices of the computing network (¶ [0034], “In one embodiment, DIRE 250 supports scaling as new VMs are created within or removed from the host system (e.g., host system 100). The group mapping module 252 may be responsible for, among other things, maintaining group mapping information that maps each of multiple groups of one or more VFs (e.g., VFs 180a-x) to its respective VM. The group mapping information may include the number of VMs running within the host system (e.g., host system 100) and information regarding the particular group of one or more VFs assigned to each VM as well as metrics for each VM. Table 1 (below) represents a non-limiting example of the group mapping information (e.g., group metrics 282) that may be maintained by the group mapping module 252.” See also para. 0062.).
As per claim 16, it is a method claim comprising similar limitations to claim 1, so it is rejected for similar reasons.
As per claim 21, it is a system claim comprising similar limitations to claim 1, so it is rejected for similar reasons.
Claim(s) 4-7 are rejected under 35 U.S.C. 103 as being unpatentable over Nguyen and Nagasundaram as applied to claim 1 above, and further in view of Chen et al. (US Pub. No. 2023/0305905 A1 hereinafter Chen).
As per claim 4, Nguyen and Nagasundaram teach the apparatus of claim 1.
Nguyen and Nagasundaram fail to explicitly teach a parameter including data size.
However, Chen teaches wherein a parameter of at least one of the first set of data parameters or the second set of data parameters includes data size (¶ [0019], “Examples of such factors can include one or more characteristics of the workload, such as a type, duration, timestamp, size, or user associated with the workload; one or more QoS constraints associated with the workload, such as a latency constraint or a performance constraint; one or more other constraints on the workload; metadata associated with the workload, such as configuration data or complementary information provided with the workload; a user preference, such as a preferred energy-consumption mode selected by a user associated with the workload; a privilege of a user associated with the workload, such as a subscription level or access level associated with a user submitting the workload; or any combination of these.”).
Nguyen, Nagasundaram, and Chen are all considered to be analogous to the claimed invention because they are all in the same field of workload management. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the workloads of Nguyen and Nagasundaram to include a data size parameter as taught by Chen to arrive at the claimed invention.
As per claim 5, Nguyen, Nagasundaram, and Chen teach the apparatus of claim 4. Chen teaches wherein a parameter of at least one of the first set of data parameters or the second set of data parameters further includes at least one of: a data source location, expected workload power usage, or whether data batch processing is possible at corresponding ones of said one or more of the first computing units or said one or more of the second computing units (¶ [0019], “Examples of such factors can include one or more characteristics of the workload, such as a type, duration, timestamp, size, or user associated with the workload; one or more QoS constraints associated with the workload, such as a latency constraint or a performance constraint; one or more other constraints on the workload; metadata associated with the workload, such as configuration data or complementary information provided with the workload; a user preference, such as a preferred energy-consumption mode selected by a user associated with the workload; a privilege of a user associated with the workload, such as a subscription level or access level associated with a user submitting the workload; or any combination of these.”).
Refer to claim 4 for reason to combine.
As per claim 6, Nguyen, Nagasundaram, and Chen teach the apparatus of claim 4. Chen teaches wherein a parameter of at least one of the first set of data parameters or the second set of data parameters includes workload type (¶ [0019], “Examples of such factors can include one or more characteristics of the workload, such as a type, duration, timestamp, size, or user associated with the workload; one or more QoS constraints associated with the workload, such as a latency constraint or a performance constraint; one or more other constraints on the workload; metadata associated with the workload, such as configuration data or complementary information provided with the workload; a user preference, such as a preferred energy-consumption mode selected by a user associated with the workload; a privilege of a user associated with the workload, such as a subscription level or access level associated with a user submitting the workload; or any combination of these.”).
Refer to claim 4 for reason to combine.
As per claim 7, Nguyen, Nagasundaram, and Chen teach the apparatus of claim 4. Chen teaches wherein workload type includes information on a workload action including at least one of. encryption, decryption, compression, decompression, machine learning, streaming data movement, streaming data transformation, or data input/output (I/O) (¶ [0012], “Different workloads may be compatible with different energy consumption modes. For example, a first workload may be a data-processing workload that can tolerate a reasonable amount of latency. As a result, the first workload may be compatible with a first energy-consumption mode in which a node's processor is set to a lower clock frequency that reduces energy consumption. On the other hand, a second workload may be a video streaming service that requires low latency.” ¶ [0020], “For example, the tagging engine 118 may determine that the workload 106 is of a particular type that is compatible with a first energy-consumption mode. The tagging engine 118 may also determine that a QoS constraint on the workload 106 requires a second energy-consumption mode.”).
Refer to claim 4 for reason to combine.
Claim(s) 8 and 9 are rejected under 35 U.S.C. 103 as being unpatentable over Nguyen, Nagasundaram, and Chen as applied to claim 4 above, and further in view of Asanghanwa et al. (US Pub. No. 2020/0089481 A1 hereinafter Asanghanwa).
As per claim 8, Nguyen, Nagasundaram, and Chen teach the apparatus of claim 4. Chen teaches wherein workload type includes information on privilege level of a particular workload (¶ [0019], “…metadata associated with the workload, such as configuration data or complementary information provided with the workload; a user preference, such as a preferred energy-consumption mode selected by a user associated with the workload; a privilege of a user associated with the workload, such as a subscription level or access level associated with a user submitting the workload; or any combination of these.”).
However, Nguyen, Nagasundaram, and Chen fail to explicitly teach a workload needing to be executed in a confidential computing environment.
However, Asanghanwa teaches a well-known technique of workload execution being in a confidential compute environment (¶ [0014], “Some workloads may include sensitive, confidential, or otherwise restricted data that may be encrypted before being sent over the communications network 112. The workload provisioning service hardware 102 may encrypt and package the workload before sending it to an edge device (i.e., the edge device 106. The workload is encrypted using a unique packaging key unique to the workload and the device. The unique packaging key is generated by the workload provisioning service hardware 102. The encrypted workload is communicated to the edge device 106. The edge device 106 separately generates the unique packaging key to decrypt the workload before execution of the workload.”).
Nguyen, Nagasundaram, Chen, and Asanghanwa are all considered to be analogous to the claimed invention because they are all in the same field of workload management. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Nguyen, Nagasundaram, and Chen with the well-known technique of executing a workload in a confidential environment as taught in Asanghanwa to arrive at the claimed invention.
As per claim 9, Nguyen, Nagasundaram, Chen, and Asanghanwa teach the apparatus of claim 8. Nagasundaram teaches wherein at least one of the first mapping or the second mapping are to map, respectively, the first data and the second data to the CPU (¶ [0034], “In one embodiment, DIRE 250 supports scaling as new VMs are created within or removed from the host system (e.g., host system 100). The group mapping module 252 may be responsible for, among other things, maintaining group mapping information that maps each of multiple groups of one or more VFs (e.g., VFs 180a-x) to its respective VM. The group mapping information may include the number of VMs running within the host system (e.g., host system 100) and information regarding the particular group of one or more VFs assigned to each VM as well as metrics for each VM. Table 1 (below) represents a non-limiting example of the group mapping information (e.g., group metrics 282) that may be maintained by the group mapping module 252.” See also para. 0062.). Asanghanwa teaches a determination that the workload execution is to be in a confidential compute environment (¶ [0014], “Some workloads may include sensitive, confidential, or otherwise restricted data that may be encrypted before being sent over the communications network 112. The workload provisioning service hardware 102 may encrypt and package the workload before sending it to an edge device (i.e., the edge device 106. The workload is encrypted using a unique packaging key unique to the workload and the device. The unique packaging key is generated by the workload provisioning service hardware 102. The encrypted workload is communicated to the edge device 106. The edge device 106 separately generates the unique packaging key to decrypt the workload before execution of the workload.”). Refer to claim 8 for the motivation to combine.
Claim(s) 10 is rejected under 35 U.S.C. 103 as being unpatentable over Nguyen and Nagasundaram as applied to claim 1 above, and further in view of Sem et al. (US Patent No. 11,138,033 B1 hereinafter Sem).
As per claim 10, Nguyen and Nagasundaram teach the apparatus of claim 1.
Nguyen and Nagasundaram fail to explicitly teach workload data being received via an API call.
However, Sem teaches a well-known technique of the processing circuitry to access the first data and the second data by accessing, respectively, a first application programming interface (API) call and a second API call from a library of the computing device, wherein, if a difference exists between the first API call and the second API call, the difference is not based on the change in the computing units (Col. 4 & 5, lines 64-67 & 1-19, “Each submitted compute job is associated with configuration information specifying, for example, a name or other identifier of the job, the job's memory and processing requirements, and an identifier of a location where the compute job is located (for example, a location of a shell script, executable, or container image). The compute jobs can be executed as containerized applications running on a compute instance in a defined compute environment. Jobs can also reference other jobs by name or by identifier, and can be dependent on the successful completion of other jobs. A compute job can be described using a job definition, which describes the job to be executed including any parameters, environmental variables, compute requirements, and other information that is used to execute a compute job. Although the example shown in reference to FIG. 1 involves using a bulk task API request to submit any number of compute jobs to a batch processing service 102, in general, similar processes can be used to submit a plurality of computing tasks to an application or service using only a single API request.”).
Nguyen, Nagasundaram, and Sem are all considered to be analogous to the claimed invention because they are all in the same field of workload management. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Nguyen and Nagasundaram with the well-known technique of receiving job data through an API as taught by Sem to arrive at the claimed invention.
Claim(s) 15, 17-20, and 22-25 are rejected under 35 U.S.C. 103 as being unpatentable over Nguyen and Nagasundaram as applied to claim 11, 16, and 21 above, and further in view of Higginson et al. (US Pub. No. 2023/0205664 A1 hereinafter Higginson).
As per claim 15, Nguyen and Nagasundaram teach the product of claim 11. Nguyen teaches wherein the operations further include determining the second mapping by: detecting a change in computing units from the first computing units to second computing units (¶ [0041]-[0042], “The method 300 as illustrated monitoring wear indicators, at operation 310; determining whether the component is stressed, at operation 320; continuing to monitor the wear indicators, at operation 310, in response to determining the component is not stressed; and in response to determining the component is stressed, at operation 320, migrating a workload from the stressed component to another component (e.g., a component that is currently unused or may otherwise be able to carry the workload of the stressed component)…The method 300 may further include determining the first component is stressed in response to determining the wear value is greater than, or equal to, the wear value threshold. The method 300 may include, wherein the wear value threshold is one of a plurality of wear value thresholds including an intermediate wear value threshold and a terminal wear value threshold. The method 300 may further include comparing the determined wear value to each of the wear value thresholds. The method 300 may further include, in response to determining the wear value is greater than the intermediate wear value threshold and below the terminal wear value threshold, transfer the workload associated with the first component to a second component with a wear value less than the intermediate wear value threshold.” See also para. 0035.); and sending, for execution by at least some of the second computing units, an incoming workload associated with incoming data (¶ [0043], “he operation 310 may further include monitoring whether the first component has exceeded a life limit (e.g., a terminal wear value threshold). The method 300 may further include, wherein the workload includes a virtual network function. The operation 330 may further include transferring a compute state and a link state of the first component to the second component. The operation 330 may further include redirecting at least one of user data traffic, user control traffic, memory pages, and dirty memory pages to the second component.”). Nagasundaram teaches generating entries of the second mapping based on performance data; and sending the second mapping for storage in memory (¶ [0036], “The workload analytic engine 252 may be responsible for, among other things, evaluating the workloads coming from each of the VMs based on the group mapping information, assigning workloads to a VF of the group assigned to the VM, for example, based on resource group information maintained regarding the one or more VFs associated with each group and based on resource metric information maintained regarding utilization of resources, for example, by accelerator (e.g., accelerators 170a-y) and by VF (e.g., VFs (180a-x)).” ¶ [0053], “At block 410, workload analytics are performed. According to one embodiment, a workload analytic engine (e.g., workload analytic engine 253) updates workload assignment information (e.g., workload assignments 284) to include the new workload and requests resource group information (e.g., resource groups 286) and resource metric information (e.g., resource metrics 288) from a resource analytic engine (e.g., resource analytic engine 254) to facilitate the workload analytics. Based on group mapping information (e.g., group metrics 282), identifying a group of one or more VFs (e.g., VFs 180a-x) that has been assigned to respective VMs, the resource group information, and the resource metric information, the workload analytics may involve determining whether the group (if any) assigned to the VM has sufficient capacity and features to accommodate the new workload.”).
Nguyen and Nagasundaram fail to teach the initialization of learning cycles during execution of the workload.
However, Higginson teaches implementing an initialization function of the apparatus, the initialization function including one of more learning cycles, individual ones of the learning cycles including: sending, for execution by at least some of the second computing units, an incoming workload associated with incoming data; and determining performance data on execution of the incoming workload by individual ones of said as least some of the second computing units (¶ [0134]-[0139], “According to one embodiment, the system obtains thresholds based on user input. For example, the user may set a threshold to identify an anomaly when a particular metric (a) meets a particular value, (b) exceeds a particular value, or (b) falls below a particular value. According to an alternative embodiment, the system applies a machine learning model to time-series data to identify a threshold for a particular entity of the computing system. The system may use a machine learning algorithm to identify a threshold value or set of values for a particular system component in the monitored system…In an embodiment, a machine learning algorithm can be iterated to learn a threshold value or set of threshold values associated with a set of metric values. In an embodiment, a set of training data includes labeled sets of time-series values for a particular metric of a computing component, such as a number of access requests to a database. The sets of time-series data are associated with labels, indicating an anomaly occurred in the set of training data…Based on determining that the forecasted metric exceeds the threshold, the resource management system generates an indication of a predicted anomaly in the monitored system (Operation 610). For example, the predicted future values are compared with a threshold representing an upper limit for the metrics (e.g., 80% utilization of a resource). When some or all of the predicted future values exceed the threshold, an alert, notification, and/or another communication of the violated threshold is generated and transmitted to an administrator of the monitored system. For example, the system may generate a notification that usage of a particular node cluster accessing a database exceeds a threshold usage. The system may recommend reconfiguring a cloud environment to add one or more nodes to a node cluster, to upgrade attributes of one or more nodes, or to reconfigure which applications access the node cluster.”).
Nguyen, Nagasundaram, and Higginson are all considered to be analogous to the claimed invention because they are all in the same field of workload management. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Nguyen and Nagasundaram with the machine learning process of Higginson to arrive at the claimed invention. The motivation to modify Nguyen and Nagasundaram with the teachings of Higginson is that implementing a machine learning process for monitoring computing units allows for efficient use of resources based on predictions from the machine learning process. The machine learning process can predict an anomaly within the computing system before it happens and prevent the anomaly proactively.
As per claim 17, it is a method claim comprising similar limitations to claim 15, so it is rejected for similar reasons.
As per claim 18, Nguyen, Nagasundaram, and Higginson teach the method of claim 17. Higginson teaches wherein detecting the change in computing units includes, for individual ones of the second computing units, determining information on computing unit type, the information on computing unit type including at least one of information on whether said individual ones of the second computing units include a CPU or an APU, or information on APU type (¶ [0085], “Determining the entity attributes may include (a) identifying workloads of the target node and the sibling node, and (b) determining hardware, such as CPU attributes, processor-core attributes, and memory attributes associated with both the target node and the sibling node. According to one or more embodiments, the system determines a level of granularity for analyzing and forecasting workloads based on settings associated with forecast operations. The level of granularity may be specified in a request generated by a user via a user interface, it may be specified in stored settings associated with particular users, particular nodes, particular node clusters, and/or particular virtual machines.”).
As per claim 19, Nguyen, Nagasundaram, and Higginson teach the method of claim 18. Sem teaches wherein performing the initialization function includes using a machine learning algorithm (¶ [0028]-[0029], “The system utilizes time-series machine learning models to forecast workloads of computing resources in the monitored computing system…One or more embodiments predict anomalies in a monitored computing system based on predictions associated with multiple different computing elements.”).
As per claim 20, Nguyen, Nagasundaram, and Higginson teach the method of claim 18. Higginson teaches wherein the performance data includes performance metrics, the performance metrics including at least one of speeds of execution of the incoming workload by corresponding ones of the second computing units, power consumption associated with execution of the incoming workload by corresponding ones of the second computing units, number or type of errors associated with execution of the incoming workload by the corresponding ones of the second computer units, or current power consumption associated with individual ones of the second computing units prior to sending the incoming workload for execution by the second computing units (¶ [0036], “As illustrated in FIG. 1B, the resource management system 130 includes a monitoring module 131 with the functionality to monitor and/or manage the utilization or consumption of resources on the computing system 110. For example, the monitoring module 131 may collect and/or monitor metrics related to utilization and/or workloads on processors, memory, storage, network, I/O, thread pools, and/or other types of hardware and/or software resources. The monitoring module 131 may also, or instead, collect and/or monitor performance metrics such as latencies, queries per second (QPS), error counts, garbage collection counts, and/or garbage collection times on the resources. The monitoring module 131 may be implemented by any set of sensors and/or software-based monitoring applications. According to one example embodiment, the monitoring module 131 is implemented as an agent or program running in a background to other programs running on the computing system 110.”).
As per claim 22, it is a system claim comprising similar limitations to claim 15, so it is rejected for similar reasons.
As per claim 23, it is a system claim comprising similar limitations to claim 20, so it is rejected for similar reasons.
As per claim 24, Nguyen, Nagasundaram, and Higginson teach the system of claim 23. Higginson teaches wherein the entries map the second set of data parameters to corresponding ones of the second computing units that exhibit a highest speed of execution of the incoming workload among the second computing units (¶ [0085], “For example, the system may receive a request to perform workload forecasting for a particular virtual machine. The request may specify a node-type level of granularity. In other words, the system identifies any nodes associated with the performance of the virtual machine and initiates the forecast operation by analyzing workloads of the nodes…According to an alternative embodiment, the request may specify a processing component level of granularity. Accordingly, the system may identify attributes of processor-cores and memory access requests associated with processors and memory of nodes supporting a particular virtual machine workload. Determining the entity attributes may include (a) identifying workloads of the target node and the sibling node, and (b) determining hardware, such as CPU attributes, processor-core attributes, and memory attributes associated with both the target node and the sibling node. According to one or more embodiments, the system determines a level of granularity for analyzing and forecasting workloads based on settings associated with forecast operations. The level of granularity may be specified in a request generated by a user via a user interface, it may be specified in stored settings associated with particular users, particular nodes, particular node clusters, and/or particular virtual machines.”).
As per claim 25, Nguyen, Nagasundaram, and Higginson teach the system of claim 23. Higginson teaches wherein determining performance metrics includes requesting performance data from the second computing units (¶ [0038], “The monitoring module 131 stores the metrics related to the workload of the computing system 110 in the data repository 170. The stored metrics make up historical time-series data 171. The historical time-series data 171 includes time-series data and may include one or more of the following characteristics: seasonality 172, multi-seasonality 173, trends 174, and shocks or outliers 175.”).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JOHN ROBERT DAKITA EWALD whose telephone number is (703)756-1845. The examiner can normally be reached Monday-Friday: 9:00-5:30 ET.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Lewis Bullock can be reached at (571)272-3759. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/J.D.E./Examiner, Art Unit 2199
/LEWIS A BULLOCK JR/Supervisory Patent Examiner, Art Unit 2199