Notice of Pre-AIA or AIA Status
1. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Rejections - 35 USC § 101
2. 35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
3. Claims 1-3, 10-12 and 19-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception (i.e., a law of nature, a natural phenomenon, or an abstract idea) without significantly more.
3a. Regarding claim 1, the limitations “identifying, … a job for scheduling;
Identifying … host machines with free cores on which the virtual machines are allocated;
Determining … a number of free cores on the host machines;
Determining … whether a host machine in the host machines having a number of host attributes needed by the job has a number of free cores and idle cores available for backfilling the job based on a predicted core usage for the job in response to an absence of a sufficient number of free cores being available to meet the predicted core usage …” as drafted, are functions that, under the broadest reasonable interpretation, recite the abstract idea of a mental process. These limitations can encompass a human mind carrying out the function through observation, evaluation judgement and/or opinion, with the possible aid of pen and paper. Thus, the limitations fall within the “Mental Processes” grouping of abstract ideas under Prong 1.
Under Prong 2, this judicial exception is not integrated into a practical application. The claim recites the following additional limitations:
“determining by the number of processor units, whether a host machine in the host machines having a number of host attributes needed by the job has a number of free cores and idle cores available for backfilling the job based on a predicted core usage for the job in response to an absence of a sufficient number of free cores being available to meet the predicted core usage.”
The additional elements “number of processor units” are recited at a high level of generality such that it amounts no more than mere instructions for applying the exception using generic computers, and/or mere computer components [MPEP 2106.05(f)], and the limitation of “dispatching, by the number of processor units, the job to a virtual machine on the host machine in response to the host machine having the number of host attributes and the number of free cores and idle cores available for backfilling the job” under the broadest reasonable interpretation do nothing more than add insignificant extra solution activity to the judicial exception of merely gathering and transmitting data. Accordingly, the additional elements do not integrate the recited judicial application into a practical application and the claim is therefore directed to the judicial exception. See MPEP 2106.05(g).
Under step 2B, the claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to the integration of the abstract idea into a practical application, the additional elements of “… number of processors …” amount to no more than mere instructions, or generic computer/computer components to carry out the exception, and “dispatching, by the number of processor units, the job to a virtual machine on the host machine in response to the host machine having the number of host attributes and the number of free cores and idle cores available for backfilling the job,” the courts have identified mere data gathering and transmitting is well-understood, routine, and conventional activity. [See 2106.05(d)]
The recitation of generic computer instruction and computer components to apply the judicial exception, and the mere data gathering do not amount to significantly more, thus, it cannot provide an inventive concept. Accordingly, the claims are not patent eligible under 35 USC 101.
3b. Claims 10 and 19 are similar to claim 1, and are rejected for similar reasons.
3c. Regarding claim 2, the limitation “determining, by the number of processor units, a core usage by a number of current jobs on the host machine;
and comparing, by the number of processor units, a predicted runtime and the predicted core usage for the job with the core usage determined for the number of current jobs on the host machine to determine the number of free and idle cores” recites further a mental process, and the additional element of “comparing … a predicted runtime and the predicted core usage for the job with the core usage …” is merely the use of generic processors to carry out the judicial exception, which is neither a practical application under prong 2, nor an inventive concept under step 2B.
3d. Claims 11 and 20 are similar to claim 2, and are rejected for similar reasons.
3e. Regarding claim 3, the limitation “identifying, by the number of processor units, a pattern of core usage for each job in the number of current jobs on the host machine; and determining, by the number of processor units, the core usage by the number of current jobs on the host machine using the pattern of core usage for each job in the number of current jobs on the host machine,” further recite mental processes of observation and the additional element of “determining by a number of processor units, the core usage … using the pattern of core usage for each job” is merely the use of generic processors running on the computer to carry out the judicial exception, which is neither a practical application under prong 2, nor an inventive concept under step 2B.
3f. Regarding claim 12, it is similar to claim 3 and is rejected for similar reasons.
Claim Rejections - 35 USC § 103
4. 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.
5. Claims 1-6, 10-15, and 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over Murthy et al. Pub. No. US 2013/0173804 A1 (hereafter Murthy) in view of Tsafrir et al. Pub. No. US 2008/0155550 A1 (hereafter Tsafrir).
6. Regarding claim 1, Murthy teaches “A computer implemented method for managing job execution on virtual machines, the method comprising: identifying, by a number of processor units ([0038]), a job for scheduling ([0031] teaches a first workload defined; a user submits a demand for resources);
identifying, by the number of processor units, host machines with free cores on which the virtual machines are allocated; determining, by the number of processor units, … cores on the host machines (Fig. 1 &2, [0034] teaches comparing resource utilization for the selected resource to a utilization threshold such that it is identifying and determining whether the CPUs (cores) are available to execute the workload [0022] on the VMs residing on the host processing systems described in [0013-0017]);
determining, by the number of processor units, whether a host machine in the host machines having a number of host attributes needed by the job has a number … idle cores available ([0016-0017] teach VM/Workload creator determines resources needed to implement a particular workload by determining what host attributes is needed) for backfilling the job based on a predicted core usage for the job in response to an absence of a sufficient number of free cores being available to meet the predicted core usage ([0019-0021] teaches the VM/Workload creator determining number of CPUs used by calculating a percentage of resources that are already being utilized such that it compares it against cores that are not free, and seeing if it meets a threshold);
and dispatching, by the number of processor units, the job to a virtual machine on the host machine in response to the host machine having the number of host attributes and the number of … idle cores available for backfilling the job. ([0017-0020] teaches launching workloads to host processing systems with the attributes needed to run the workload).”
Murthy does not explicitly teach of free cores being available; rather idle cores that are already allocated to other workloads.
Tsafrir teaches about free processors such that it teaches the limitations “determining, by the number of processor units, a number of free cores on the host machines; determining … a number of free cores and idle cores available for backfilling the job … ; and dispatching, by the number of processor units, the job to a virtual machine on the host machine in response to the host machine having the number of host attributes and the number of free cores and idle cores available for backfilling the job ([0037-0038] teaches a job J needing N processors, and M being the number of free processors that will be available for J at time S, as well as M-N processors not being used by J at S time, such that they are free/idle processors for other workloads for backfilling taught in [abs]).”
It would have been obvious to a person of ordinary skill in the art before the effective
filing date to combine the teachings of Tsafrir to the invention of Murthy to show that free cores can be used in conjunction with idle cores for when determining core usage and what computing resources are available. A person having ordinary skill in the art would have been motivated to make this combination to efficiently streamline the use of all processors when reserving and executing workloads, avoiding delays (Tsafrir [0179]).
7. Regarding claim 10, it is similar to that of claim 1 and is rejected for the same reasons. Claim 10 is directed towards “A computer system comprising: a number of processor units, wherein the number of processor units executes program instructions ([Murthy [0012])”.
8. Regarding claim 19, it is similar to that of claim 1, and is rejected for the same reasons. Claim 19 is directed towards “A computer program product for managing execution of jobs on virtual machines, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer system (Murthy [0044])”.
9. Regarding claim 2, wherein the combination, Murthy teaches “The computer implemented method of claim 1, wherein determining, by the number of processor units, whether a host machine in the host machines having the number of host attributes needed by the job has the number of free cores and idle cores comprises: determining, by the number of processor units, a core usage by a number of current jobs on the host machine (Fig. 3 & [0027] teaches CPU utilization percentage);
and comparing, by the number of processor units, … the predicted core usage for the job with the core usage determined for the number of current jobs on the host machine to determine the number of free and idle cores (Fig. 3, 4, & [0019], [0026-0027] teach CPU usage as well as an overuse, underuse, and in-range threshold; the in-range threshold representing the predicted core usage).”
Murthy does not explicitly teach a predicted runtime used in comparison with the core usage.
Tsafrir teaches a job runtime prediction such that it teaches the limitation “and comparing, by the number of processor units, a predicted runtime and the predicted core usage for the job with the core usage determined for the number of current jobs on the host machine to determine the number of free and idle cores. ([0037] teaches a number of free processors that will be available based on runtime predictions).”
It would have been obvious to a person of ordinary skill in the art before the effective
filing date to combine the teachings of Tsafrir to the invention of Murthy to factor in runtime predictions when determining a number of free and idle cores for the job. A person having ordinary skill in the art would have been motivated to make this combination to enhance performance and improve accuracy of job execution times. ([Tsafrir [0203-0207]).
10. Regarding the computer system of claim 11, it is similar to that of claim 2, and is rejected for the same reasons.
11. Regarding the computer product of claim 20, it is similar to that of claim 2, and is rejected for the same reasons.
12. Regarding claim 3, wherein the combination, Murthy teaches a workload profile such that it may contain core usage predictions as seen in Figs. 3 & 4. Murthy does not explicitly teach a pattern of core usage of the job.
Tsafrir teaches historical data of jobs used to generate a prediction such that it teaches the limitation “The computer implemented method of claim 2, wherein determining, by the number of processor units, the core usage by the number of current jobs comprises: identifying, by the number of processor units, a pattern of core usage for each job in the number of current jobs on the host machine; and determining, by the number of processor units, the core usage by the number of current jobs on the host machine using the pattern of core usage for each job in the number of current jobs on the host machine.”([Tsafrir [0100], [0193-0194] teaches of historical data being used to generate predictions such that it may represent a predicted core usage in a workload profile used to determine core usage as seen in Murthy).”
It would have been obvious to a person of ordinary skill in the art before the effective
filing date to combine the teachings of Tsafrir to the invention of Murthy to use historical data of jobs to determine the core usage of a job. A person having ordinary skill in the art would have been motivated to make this combination to improve prediction accuracy of core usage. ([Tsafrir [0157]).
13. Regarding claim the computer system of claim 12, it is similar to that of claim 3, and is rejected for the same reasons.
14. Regarding claim 4, the combination teaches “The computer implemented method of claim 1 further comprising: dispatching, by the number or processor units, the job directly to the virtual machine on the host machine in response to the host machine having the sufficient number of free cores needed for the predicted core usage (Murthy [0020] teaches launching the workloads to the virtualization environment with allocated resources. Tsafrir [0031] teaches jobs being started once enough processors are freed).”
15. Regarding the computer system of claim 13, it is similar to that of claim 4, and is rejected for the same reasons.
16. Regarding claim 5, wherein the combination, Murthy teaches “The computer implemented method of claim 1 further comprising: requesting, by the number of processor units, a new virtual machine with a number of cores needed for the job. ([0016-0018] teaches that hosts may be tracked so that they can allocate and instantiate virtual machines to execute workloads such that the VM/workload creator may map and launch workloads onto virtual machines with a sufficient amount of computing resources needed for the job).”
17. Regarding the computer system of claim 14, it is similar to that of claim 5, and is rejected for the same reasons.
18. Regarding claim 6, wherein the combination, Tsafrir teaches “The computer implemented method of claim 1, wherein the job is a highest priority job in a queue in a highest priority queue ([0112] teaches a backfill order queue that favors shorter runtime jobs such that they have high priority).”
19. Regarding the computer system of claim 15, it is similar to that of claim 6, and is rejected for the same reasons.
20. Claims 7-9 and 16-18 are rejected under 35 U.S.C. 103 as being unpatentable over Murthy and Tsafrir as used in claims 1, 10, and 19, and in further view of Beveridge Pub. No. US 2024/0241763 A1.
21. Regarding claim 7, Murphy teaches a overuse threshold such that a decision can be made if the threshold is met (Murphy [0035]). However, Murphy does not explicitly teach that the decision may be a suspension of a backfill job. In analogous art, Beveridge teaches suspending a workload when a job limit threshold is exceeded such that it teaches the limitation “The computer implemented method of claim 1 further comprising: suspending, by the number of processor units, a backfill job on the host machine in response to processor usage on the host machine reaching a threshold ([0111] teaches suspending a workload if a non-grid workload usage is over a threshold).”
It would have been obvious to a person of ordinary skill in the art before the effective
filing date to combine the teachings of Beveridge to the invention of Murthy and Tsafrir to show that when a workload usage is over a threshold, the workload should be suspended. A person having ordinary skill in the art would have been motivated to make this combination to avoid overloading the processors and practice safe job scheduling and execution.
22. Regarding the computer system of claim 16, it is similar to that of claim 7, and is rejected for the same reasons.
23. Regarding claim 8, the combination teaches “The computer implemented method of claim 7 further comprising: resuming, by the number of processor units, the backfill job in response to the processor usage on the host machine being lower than the threshold. (Beveridge [0111] teaches resumption of a workload when non-grid workload is below a threshold).”
24. Regarding the computer system of claim 17, it is similar to that of claim 8, and is rejected for the same reasons.
25. Regarding claim 9, wherein the combination, Tsafrir teaches “The computer implemented method of claim 7, wherein a native job on the host machine has a higher priority than a backfill job on the host machine ([0023] teaches that jobs already running are reserved such that other jobs that exceed their estimates are killed so as not to violate the reservation which implies that native jobs have the priority).”
26. Regarding the computer system of claim 18, it is similar to that of claim 9, and is rejected for the same reasons.
Conclusion
27. Any inquiry concerning this communication or earlier communications from the examiner should be directed to BRANDON A NGUYEN whose telephone number is (571)272-6074. The examiner can normally be reached Mon-Fri (10am-6pm).
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, Aimee Li can be reached at (571) 272-4169. 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.
/BRANDON NGUYEN/Examiner, Art Unit 2195
/Aimee Li/Supervisory Patent Examiner, Art Unit 2195