Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Arguments
Applicant’s arguments with respect to claim(s) 1-6,8-13 and 15-20 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Claim Rejections - 35 USC § 112
The following is a quotation of the first paragraph of 35 U.S.C. 112(a):
(a) IN GENERAL.—The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor or joint inventor of carrying out the invention.
The following is a quotation of the first paragraph of pre-AIA 35 U.S.C. 112:
The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor of carrying out his invention.
Claims 1-6, 8-13 and 15-20 rejected under 35 U.S.C. 112(a) or 35 U.S.C. 112 (pre-AIA ), first paragraph, as failing to comply with the written description requirement. The claim(s) contains subject matter which was not described in the specification in such a way as to reasonably convey to one skilled in the relevant art that the inventor or a joint inventor, or for applications subject to pre-AIA 35 U.S.C. 112, the inventor(s), at the time the application was filed, had possession of the claimed invention.
Regarding claim 1, the claim recites “wherein the migration optimization exceeds the current optimization for the first cluster of computer devices when a migration of the bundle of workloads to the second cluster of computing devices results in a resource utilization of the second cluster of computing devices that exceeds a current resource utilization of the first cluster of computing devices.”
Paragraph [0050] states that workload optimizer selects an attribute to be optimized, such as CPU or (I/O) and calculates how a workload would affect another cluster if migrated. Paragraph [0051] states that the workload optimizer determines a loss or change in utilization for the current cluster and minimize lost utilization across clusters. Paragraph [0055] states “In process 214, once the migration optimization exceeds the current optimization of the cluster, then workload optimizer 140 migrates the workloads that increase the current optimization of the clusters.” This is closest disclosure. It supports comparing a migration optimization with a current optimization. However it does not define:
The migration optimization as the resulting resource utilization of the second cluster.
The current optimization as current utilization of the first cluster.
The condition that one must exceed the other.
Regarding claims 2-6, 9-13 and 14-20, dependent claims inherit the deficiencies of the respective parent claim.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
Claims 1-6, 8-13 and 15-20 are rejected under 35 U.S.C. 103 as being unpatentable over Friel (US 20180165579 A1), in view of Foukas (US 20220035665 A1), Sunwoo (US 20220035679 A1) and Lu(US 20210373971 A1).
Regarding claim 1, Friel teaches:
A method comprising. (Claim 1. A method comprising)
receiving, by one or more processors, an optimization target for a first cluster of computing devices in a distributed computing environment, wherein the optimization target is a resource utilization target for the first cluster of computing devices. (([0023] The monitor 280 includes a neural network 282 that receives the network characteristics and generates a predictive set of network characteristics. In various implementations, the neural network 282 is a recurrent neural network (RNN). In particular implementations, the neural network 282 is a long short term memory (LSTM) neural network. The predictive set of network characteristics (and, in some embodiments, at least a portion of the network characteristics generated by the traffic analysis unit 281) are provided, via an API 283 of the monitor 280, to a scheduler 290. See also [0013] and [0021]))
training, by the one or more processors, a neural network based on the optimization target. ([0034] In some implementations, the method 400 is performed by a processor executing code stored in a non-transitory computer-readable medium (e.g., a memory). Briefly, the method 400 includes assigning a task of a distributed application to a processing unit in a network based on a prediction about the behavior of the network generated by a neural network.[0035] The method 400 beings, at block 410, with the controller training a neural network using a first set of network characteristics corresponding to a first time and a second set of network characteristics corresponding to a second time. In various implementations, the first set of network characteristics includes at least one value indicative of a data rate (which can be a value indicative of a bursting pattern of a data rate), a round-trip travel time, a traffic type or priority, or storage utilization (e.g., queue utilization or buffer utilization).)
Friel does not appear to explicitly teach: generating, by the one or more processors, a decision tree for the first cluster of computing devices based on learned migration patterns derived from the trained neural network and a current workload profile extracted from a current batch of workloads executing in the first cluster of computing devices, wherein a workload includes one or more tasks that utilize resources deployed in a cluster of computing devices.
However, Foukas teaches: ([0053] Server 106 may allocate one or more available compute resources 104 for vRAN 10 to use for signal processing tasks 14. Server 106 may also include a scheduler 20 that may be used to allocate various workloads across the available compute resources 104. Scheduler 20 may identify a plurality of workloads available for processing at server 106. The plurality of workloads may include vRAN workloads 12 and other workloads 12 from one or more applications 44. The vRAN workloads 12 may include a plurality of signal processing tasks 14 of base stations 110. Examples of signal processing tasks 14 may include, but are not limited to, encoding tasks, decoding tasks, layer mapping tasks, layer de-mapping tasks, modulation tasks, and/or demodulation tasks. [0057] In an implementation, scheduler 20 may use a machine learning model 34 generated by a machine learning system 112 that uses a set of quantile decision trees 24 in order to predict the worst case execution time 36 of the vRAN signal processing tasks 14 in real-time based on the current base station state 26 and on a set of collected online samples of recent task runtimes 22. For example, scheduler 20 may use a quantile decision tree 24 of a machine learning model 34 to identify a tail latency 38 of the runtimes 22 of the signal processing tasks 14. Scheduler 20 may use the tail latency 38 for individual signal processing tasks 14 to predict the worst case execution time 36 of the individual signal processing tasks 14. [0058] Based on the predicted worst case execution time 36 and knowledge of the deadline 32, scheduler 20 may predict a number of compute resources 42, such as, a number of CPU cores 102 that vRAN 10 may require, and may decide how to allocate the compute resources 42 among the vRAN workloads 12 and the other workloads 12 in order to minimize interference, while reclaiming the idle CPU cycles. Interference may include an increase in processing time for signal processing tasks 14 due to other task operating on the OS utilizing the same resources needed for the signal processing tasks 14.
Accordingly, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention, having the teachings of Friel and Foukas before them, to include Foukas’s machine learning generated decision trees with Friels deep neural network. Applying the decision trees based scheduling driven by workload profiles of Foukas would improve the workload migration while preserving the trained neural network,
Friel also does not appear to explicitly teach: , wherein a workload includes one or more tasks that utilize resources deployed in a cluster of computing devices;bundling, by the one or more processors, workloads in the current batch of workloads executing in the first cluster of computing devices for migration from the first cluster of computing devices to the second cluster of computing devices based on the decision tree for the first cluster of computing devices; and
However, Sunwoo teaches: wherein a workload includes one or more tasks that utilize resources deployed in a cluster of computing devices; ([0052] The method may comprise selecting a group of workloads to execute in parallel on respective processor cores of the processing system, based on at least one selection criterion which favours grouping together of workloads for which the performance monitoring data indicates that the workloads have differing performance or resource utilisation requirements. In some cases, if the machine learning model processes performance monitoring data for a single workload at a time, then the workload selection step may be performed after generating the inferences using separate passes of the machine learning model for each workload, and then the selection step may group workloads together for which the inferences indicate that different complementary hardware resource configurations of the respective processor cores are suitable for those workloads. [0144] At step 200 the training system obtains performance monitoring data indicative of processing performance for a selected workload or selected group of workloads when processing respective hardware resource configurations of the multi-core system 2. This performance monitoring data could be obtained by execution of the workloads in the respective hardware resource configurations on a real system or could be obtained by simulating processing of the workloads using a simulator. See also [0040] [0092])
bundling, by the one or more processors, workloads in the current batch of workloads executing in the first cluster of computing devices for migration from the first cluster of computing devices to the second cluster of computing devices based on the decision tree for the first cluster of computing devices;. ([0040] In some examples, the input data for the trained machine learning model could comprise performance monitoring data associated with a single workload to be executed. Multiple separate inferences could then be made by the trained machine learning model for multiple different workloads, based on processing of separate sets of input data in multiple passes of the machine learning model, to provide separate predictions of single-core resource configurations which might be suitable for executing each particular workload. For example the trained machined learning model could provide an indication of which of a variety of hardware resource configurations may be suitable for the workload being predicted, where those hardware resource configurations may include some resource configurations where the processing is performed using less than the full set of hardware resource available to the single processor core and other configurations where the processing is performed using a greater amount of hardware resource than is actually supported in the single processor core (in anticipation that that additional resource can be borrowed from another processor core). Having generated separate predictions for each of the workloads, pairs or groups of workloads can then be selected for which the suitable hardware resource configurations predicted by the machine learning model are complementary so that they can be selected on different cores simultaneously. For example, a group of workloads can be paired together where one workload in the group is predicted to benefit from borrowing of resource and another workload in the group is predicted to run acceptably even if its processor core has given up that same borrowed resource to another core. [0052] The method may comprise selecting a group of workloads to execute in parallel on respective processor cores of the processing system, based on at least one selection criterion which favours grouping together of workloads for which the performance monitoring data indicates that the workloads have differing performance or resource utilization requirements. In some cases, if the machine learning model processes performance monitoring data for a single workload at a time, then the workload selection step may be performed after generating the inferences using separate passes of the machine learning model for each workload, and then the selection step may group workloads together for which the inferences indicate that different complementary hardware resource configurations of the respective processor cores are suitable for those workloads. [0057] Hence, by providing at least one selection criterion which favours selecting the group of workloads to include a combination of at least one compute-bound workload and at least one memory-bound workload, it can be more likely that a hardware resource configuration of multiple processor cores which involves inter-core borrowing of hardware resource can be found which will improve performance for the group of workloads compared to a base configuration in which there is no inter-core borrowing. For example a suitable hardware resource for such a combination of workloads could include a first processor core borrowing pipeline slots or execution units from a second core and the second core borrowing cache capacity from the first core so that a compute-bound workload on the first core and a memory-bound workload on the second core can operate more efficiently. See also [0041-0045])
Accordingly, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention, having the teachings of Friel and Sunwoo before them, to combine Sunwoo’s updating and migrating workloads base on workload data and resource utilization. This combination would allow for system capable of grouping and deploying workloads base on dynamic workload and resource utilization. The combination would have yield predictable results of improve efficiency and workload migration in the distributed computing environment.
Friel also does not appear to explicitly teach: migrating the bundle of workloads currently executing in the first cluster of computing devices to a second cluster of computer devices in response to the decision tree for the first cluster of computer devices reaching a migration optimization that exceeds a current optimization for the first cluster of computing devices, wherein the migration optimization exceeds the current optimization for the first cluster of computer devices when a migration of the bundle of workloads to the second cluster of computing devices results in a resource utilization of the second cluster of computing devices that exceeds a current resource utilization of the first cluster of computing devices.
However, Lu teaches: [0031] In cluster A, host A1 can execute workload A1; host A2 can execute workload A2 as well as workload A3. The cluster scheduling service 137a can manage intra-cluster load balancing and migrations for the workloads A1, A2, A3 among the hosts A1 and A2, as well as host scaling to include additional or fewer hosts within cluster A. Cluster statistics updater 245a can collect and monitor cluster resource data 247a for cluster A. In some cases, the cluster statistics updater 245a can identify cluster resource data 247a that is collected by the cluster scheduling service 137a, and provide this cluster resource data 247a to the cross-cluster load balancer 139. The cluster resource data 247a can include compute, memory, storage, network, accelerate, and other hardware resource information for cluster A. [0050] The cross-cluster load balancer 139 can analyze the workloads 145 from a high-utilization cluster 106 in order to identify whether or not each of the workloads 145 can benefit from a cross-cluster migration. The cross-cluster load balancer 139 can determine a cross-cluster migration gain 269 for each workload 145 in the high-utilization cluster 106. The cross-cluster migration gain 269 can be determined using host-specific and/or cluster-level resource usage. If the cross-cluster migration gain 269 is greater than a cross-cluster migration cost 27, the cross-cluster load balancer 139 can accept the cross-cluster migration recommendation 263. See also [0044-46] and [0051-0054]
Accordingly, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention, having the teachings of Friel and Lu before them, to combine Lu’s cross cluster migration analysis. Which compares the current resource condition of a source cluster with the projected resource of a destination cluster and performs migration when the expected migration gain exceeds the migration cost. The combination would have predictable improved workload placement and resource utilization and avoid migrations whose cost is more than the gain.
Regarding claim 2, Friel also teaches:
The method of claim 1, wherein the optimization target is selected from one of the following: processor utilization, memory utilization, Input/Output (I/O) utilization, and storage utilization. ([0021] The controller 199 includes a monitor 180 that monitors network traffic to determine network characteristics at various times. The network characteristics can include network traffic characteristics, such data rates of various agents (e.g., network users or subnets), bursting patterns of the data rates, round-trip times of data communications, traffic types and priorities, and queue and buffer utilization. The network characteristics can also include local switch/router characteristics, such as buffer sizes, queue-occupancy times, congestion avoidance parameters, and traffic-shaping parameters.)
Regarding claim 3, Friel also teaches:
The method of claim 1, wherein the neural network comprises an autoencoder neural network. ([0016] In various implementations, as described in detail below, the in-network system is implemented as a deep learning neural network. A class of deep learning algorithms like, but not limited to, RNN (recurrent neural networks), LSTM (long/short-term memory neural networks), and VRAE (variational recurrent auto-encoders) can find underlying structure and patterns in time series of data).
Regarding claim 4, Friel also teaches:
The method of claim 3, wherein an input layer of the autoencoder neural network includes data from workload profiles executing in the first cluster and an output layer of the autoencoder neural network includes data from workload profiles executing in the second cluster. ([0037]In various implementations, the neural network is a deep learning neural network that includes a plurality of neural network layers. For example, the plurality of layers can include a first sparse coding layer configured to generate first features of the first set of network characteristics and second features of the second set of network characteristics, a second sparse coding layer configured to generate interrelationships between the first features and second features, and a predictive layer configured to generate at least one of the predictive set of network characteristics based on the interrelationships.)
Regarding claim 5, Friel also teaches:
The method of claim 4, wherein a hidden layer of the autoencoder neural network predicts optimization of workload when migrated from the first cluster to the second cluster. ([0037] In various implementations, the neural network is a deep learning neural network that includes a plurality of neural network layers. For example, the plurality of layers can include a first sparse coding layer configured to generate first features of the first set of network characteristics and second features of the second set of network characteristics, a second sparse coding layer configured to generate interrelationships between the first features and second features, and a predictive layer configured to generate at least one of the predictive set of network characteristics based on the interrelationships.)
Regarding claim 6, Friel also teaches:
The method of claim 5, wherein the hidden layer includes one or more features corresponding to the received optimization target. ([0026] In some embodiments, the neural network 282 includes a first sparse coding that extracts features for each input sequence (e.g., each of the first set of network characteristics and second set of network characteristics) and a second sparse coding layer that layer that receives the extracted features and learns the relationships between and among the input sequences (generating a relationship vector). Further, the neural network 282 includes a predictive layer that receives the relationship vector. The predictive layer can be implemented as a Support Vector Machine (SVM) layer or any other multivariate regression method)
Regarding claim 8, Friel also teaches:
A computer program product comprising.([0049] The results of the disclosed methods and tasks may be persistently stored by transforming physical storage devices, such as solid state memory chips and/or magnetic disks, into a different state.)
Regarding claim 9 the claim recites similar limitation as corresponding claim 2 and is rejected for similar reasons as claim 2 using similar teachings and rationale.
Regarding claim 10 the claim recites similar limitation as corresponding claim 3 and is rejected for similar reasons as claim 3 using similar teachings and rationale.
Regarding claim 11 the claim recites similar limitation as corresponding claim 4 and is rejected for similar reasons as claim 4 using similar teachings and rationale.
Regarding claim 12 the claim recites similar limitation as corresponding claim 5 and is rejected for similar reasons as claim 5 using similar teachings and rationale.
Regarding claim 13 the claim recites similar limitation as corresponding claim 6 and is rejected for similar reasons as claim 6 using similar teachings and rationale.
Regarding claim 15, the claim recites similar limitation as corresponding claim 1 and is rejected for similar reasons as claim 1 using similar teachings and rationale. Friel also teaches:
A computer system comprising. (Claim 12. A system comprising.)
Regarding claim 16 the claim recites similar limitation as corresponding claim 2 and is rejected for similar reasons as claim 2 using similar teachings and rationale.
Regarding claim 17 the claim recites similar limitation as corresponding claim 3 and is rejected for similar reasons as claim 3 using similar teachings and rationale.
Regarding claim 18 the claim recites similar limitation as corresponding claim 4 and is rejected for similar reasons as claim 4 using similar teachings and rationale.
Regarding claim 19 the claim recites similar limitation as corresponding claim 5 and is rejected for similar reasons as claim 5 using similar teachings and rationale.
Regarding claim 20 the claim recites similar limitation as corresponding claim 6 and is rejected for similar reasons as claim 6 using similar teachings and rationale.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CARLOS A ESPANA whose telephone number is (703)756-1069. The examiner can normally be reached Monday - Friday 8 a.m - 5 p.m EST.
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 JR 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.
/C.A.E./Examiner, Art Unit 2199
/LEWIS A BULLOCK JR/Supervisory Patent Examiner, Art Unit 2199