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 .
Response to Amendment
The amendment filed on 12/04/2025 has been entered. Claims 1, 3-7, and 9-17 remain pending in this application. Applicant’s amendments to claims 1 and 7 have overcome the 112(b) rejection previously set forth in the Non-Final Office Action directed towards the term “processor allocation unit.” Therefore, Examiner withdraws the 112(b) rejection of claims 1-14.
Information Disclosure Statement
The IDS filed on 12/18/2025 has been considered.
Claim Objections
Claims 5 and 12 are objected to because of the following informalities: Claim 5 and 12 recite "wherein, when the processor determines that the task is resumable..." However, in the original set of claims, claims 5 and 12 recite "wherein, when it is determined that the suspended task is not resumable..." Applicant has omitted the word “not” without appropriate markings necessary under 37 CFR § 1.121. Examiner is interpreting this omission as an accidental typo because the rest of the claim would be pointless without the word “not” and thus, will continue to interpret claims 5 and 12 as including the word “not.” Appropriate correction is required.
Claim 13 is objected to because of the following informalities: The claim recites "a test unit that determines whether or not to change allocation of the task by the task allocator task allocator by comparing the scores calculated for respective processors." The term "task allocator" appears twice in a row. Appropriate correction is required.
Claim Interpretation
The following is a quotation of 35 U.S.C. 112(f):
(f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The claims in this application are given their broadest reasonable interpretation using the plain meaning of the claim language in light of the specification as it would be understood by one of ordinary skill in the art. The broadest reasonable interpretation of a claim element (also commonly referred to as a claim limitation) is limited by the description in the specification when 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is invoked.
As explained in MPEP § 2181, subsection I, claim limitations that meet the following three-prong test will be interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph:
(A) the claim limitation uses the term “means” or “step” or a term used as a substitute for “means” that is a generic placeholder (also called a nonce term or a non-structural term having no specific structural meaning) for performing the claimed function;
(B) the term “means” or “step” or the generic placeholder is modified by functional language, typically, but not always linked by the transition word “for” (e.g., “means for”) or another linking word or phrase, such as “configured to” or “so that”; and
(C) the term “means” or “step” or the generic placeholder is not modified by sufficient structure, material, or acts for performing the claimed function.
Use of the word “means” (or “step”) in a claim with functional language creates a rebuttable presumption that the claim limitation is to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites sufficient structure, material, or acts to entirely perform the recited function.
Absence of the word “means” (or “step”) in a claim creates a rebuttable presumption that the claim limitation is not to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is not interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites function without reciting sufficient structure, material or acts to entirely perform the recited function.
Claim limitations in this application that use the word “means” (or “step”) are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Conversely, claim limitations in this application that do not use the word “means” (or “step”) are not being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action.
This application includes one or more claim limitations that do not use the word “means,” but are nonetheless being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because the claim limitation(s) uses a generic placeholder that is coupled with functional language without reciting sufficient structure to perform the recited function and the generic placeholder is not preceded by a structural modifier. Such claim limitation(s) is/are: "task execution history recorder," "score calculator" and "task allocator" in claims 1 and 7.
Because this/these claim limitation(s) is/are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, it/they is/are being interpreted to cover the corresponding structure described in the specification as performing the claimed function, and equivalents thereof.
If applicant does not intend to have this/these limitation(s) interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, applicant may: (1) amend the claim limitation(s) to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitation(s) recite(s) sufficient structure to perform the claimed function so as to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph.
In order to avoid the 112(f) interpretation for the aforementioned terms, Examiner having the terms execute within one of the processors of the “processors to which a plurality of tasks are respectively allocated.” This amendment would provide sufficient structure to the aforementioned terms and avoid any 112(f) interpretation.
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, 6-7, and 13-17 are rejected under 35 U.S.C. 103 as being unpatentable over Matsuyama et al. (US Pub. No. 2016/0048413 A1 hereinafter Matsuyama) in view of Slinger et al. (US Pub. No. 2020/0026561 A1) in view of Borthakur (US Pub. No. 2015/0347183 A1).
As per claim 1, Matsuyama teaches an information processing apparatus (See Abstract), comprising: processors to which a plurality of tasks are respectively allocated (¶ [0039]-[0041], “The computing node 2 executes the job allocated by the job scheduler node 1, and records a variation quantity of the resource usage quantity used by executing the job as a resource usage variation per unit time…The computing node 2 includes a CPU 21a, a memory 21b and a NIC 21c in FIG. 1. A computing node 22 includes a CPU 22a, a memory 22b and a NIC 22c. A computing node 2N includes a CPU 2Na, a memory 2Nb and a NIC 2Nc…The respective computing nodes 2 include the CPUs 21a-2Na that are generically termed CPUs 2a.”); a task execution history recorder that records a task execution time of each of the plurality of tasks as a history (¶ [0055], “The resource allocation processing unit 12 manages the resource usage state, allocates the resources to the job and instructs the computing node 2 to start executing the job. The resource allocation processing unit 12 includes a job execution start instruction unit/end monitoring unit 121, a resource usage state management unit 122, a resource usage history data receiving unit 123 and an optimization process invoking interface 124.” ¶ [0071]-[0072], “The job resource usage quantity monitoring unit 22 monitors the resource usage quantity of the job and, with an elapse of time of each job, records the resource usage variation of each node per predetermined unit time. The resource usage variation may be recorded per resource. The job resource usage quantity monitoring unit 22 can store the resource usage variation as a resource usage history in the memory 2b…The DB server 4 includes an execution history database 41. The execution history database 41 includes an input parameter/execution time/sub-record table 411, and appropriative resource table 412 and a resource usage variation table 413.” See also para. 0078.); a score calculator that calculates a score indicating a degree of resource usage of the processor based on task execution time (¶ [0058], “The resource usage history data receiving unit 123 receives, from the computing node 2 via the communication processing unit 11, resource usage variation data with the resource usage variation quantity being recorded per resource used for executing the job. The resource usage history data receiving unit 123 can receive the resource usage variation data, e.g., when finishing the job detected by the job execution start instruction unit/end monitoring unit 121.” See also para. 0071.); and a task allocator that allocates resources based on resource usage (¶ [0055], “The resource allocation processing unit 12 manages the resource usage state, allocates the resources to the job and instructs the computing node 2 to start executing the job. The resource allocation processing unit 12 includes a job execution start instruction unit/end monitoring unit 121, a resource usage state management unit 122, a resource usage history data receiving unit 123 and an optimization process invoking interface 124.” ¶ [0057], “The resource usage state management unit 122 manages a usage state of each resource of the computing node 2, and notifies the optimization processing unit 13 of candidates for an allocation position of the computing node 2 that is allocated to the job (the candidates being also hereinafter referred to as allocation position candidates) corresponding to the resource usage state. Herein, the “allocation position” connotes one computing node 2 allocated to the job or a combination of plural computing nodes 2 allocated thereto in the parallel computer system 10.”).
Matsuyama fails to explicitly teach a degree of resource contention and changing allocation of resources based on resource contention.
However, Slinger teaches a workload manager that changes allocation of the task based on resource utilization/contention score (¶ [0018], “Once the workload manager 105 determines that the current processing resource utilization is at or above the processing resource utilization threshold 206, a voluntary suspend is sent to the application. Having the workload manager 105 transmit the voluntary suspend and the application's response to the voluntary suspend, allows for the processing resources to not be locked and to reduce contention in the processing resources prior to the processing resource utilization cap 205 being met.” See also para. 0029-0030.).
Matsuyama and Slinger are considered to be analogous to the claimed invention because they are in the same field of task scheduling and resource allocation. Therefore, it would have been obvious to one of ordinary skill in the art to modify the job scheduler of Matsuyama to include the dynamic task allocation functionality of the workload manager of Slinger to arrive at the claimed invention. This substitution would have been reasonable under MPEP § 2143 as both references allocate tasks based on current resource utilization/contention.
Matsuyama and Slinger fail to teach the score being based on variation coefficients for each task wherein the variation coefficient is calculated using an average task execution time and a standard deviation of task execution time.
However, Borthakur teaches calculating an average execution time and a standard deviation of the task execution time recorded as a history for each task (¶ [0024]-[0025], “The resource usage measurements may be gathered for resources including, but not limited to, central processing unit (“CPU”) usage, memory usage, disk input and output (“I/O”) usage and other such resources. One or more metrics relating to these resource measurements may be determined, based at least in part on the measurements. For example, a mean (or average) value may be computed for the resource usage over the course of the measured time period. A standard deviation may also be computed based on the mean, which may provide a measurement of the variation of the resource usage from the mean…A standard deviation may be calculated by computing a mean value for a collection of values (i.e., resource measurements), squaring the difference of each value from the mean value, computing the average of the collection of squared differences and computing the square root of that average…A standard deviation may be scaled and made unitless (converted into a numeric value) by dividing the standard deviation by the mean value in order to facilitate effective comparisons between different resource measurements. For example, CPU usage may be measured in instructions executed per second (“IPS”) or more commonly, millions of instructions executed per second (“MIPS”) and may be on the order of about one-hundred thousand MIPS…By dividing the standard deviation by the mean, a unitless value, typically between zero and one may be obtained.” See also para. 0015-0016.), calculating a variation coefficient of the task execution time for each task by dividing the standard deviation by the average execution time (¶ [0050]-[0051], “FIG. 8 illustrates an example process 800 for calculating a coefficient of variation (“CoV”) and for recommending migration of a workload based at least in part on that calculation as described herein at least in connection with FIG. 2 and in accordance with at least one embodiment. A workload analysis service such as the workload analysis service 220 described herein in connection with FIG. 2 may perform at least a portion of the process illustrated in FIG. 8…A collection of resource values 802 may be received and a mean value calculated for the collection of resource values 804. The mean value, or average value, is the total of all of the values, divided by the number of values…A standard deviation may also be calculated 806 for the collection of resource values may also be calculated as described herein above. The standard deviation is the square root of the average of the square of the differences between the values and the mean…Next, a coefficient of variation 808 may be calculated by dividing the standard deviation (the square root of two) by the mean value (three). The coefficient of variation, which is slightly less than one-half, may then be compared to a threshold value 810. If the coefficient of variation is above that threshold, the workload may be recommended for migration 812. If the coefficient of variation is below that threshold, the workload may be recommended for migration 814.”) and wherein the score is calculated from an average of the variation coefficients of the plurality of tasks allocated to the processor (¶ [0015]-[0016], “In some embodiments, one or more sets of resource usage measurements may be included in a resource usage profile which may include collections of resource usage measurements. In some embodiments, a resource usage profile may include and/or have calculated one or more of the resource usage metrics that may be calculated using one or more statistical calculation techniques. For example, a mean (or average) value may be computed for the resource usage over the course of the measured time period and, in some embodiments, may be included in a resource usage profile. A standard deviation may also be computed based on the mean, which may provide a measurement of the variation of the resource usage from the mean and which may also be included in a resource usage profile. A standard deviation may be scaled and made unitless (converted into a simple numeric value, also known as a calculation of variance) by dividing the standard deviation by the mean value as described herein below…Similarly, a variance may be calculated by computing the average gradient (or slope) of a graph of resource usage values or by comparing the absolute value of the difference of the resource usage values to an optimal usage values. Resource usage values may also be recorded and/or stored as a single numerical value, using, for example, an exponentially decaying average which more heavily weights recent values and less heavily weights older values. As may be contemplated, the types of statistical calculations that may be used to determine the suitability of a workload for migration described herein are illustrative examples, and other types of statistical calculations that may be used to determine the suitability of a workload for migration may be considered as within the scope of the present disclosure.” See also para. 0024.).
Matsuyama, Slinger, and Borthakur are all considered to be analogous to the claimed invention because they are all in the same field of task scheduling and resource allocation. 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 score calculator of Matsuyama and Slinger with the calculations performed in Borthakur to arrive at the claimed invention. The motivation to modify Matsuyama and Slinger with the teachings of Borthakur is that such calculations are helpful in determining when a task should be migrated as such calculations can show the difference between current resource usage versus optimal resource usage.
As per claim 3, Matsuyama, Slinger, and Borthakur teach the information processing apparatus of claim 1. Slinger also teaches wherein different execution priorities are given to the plurality of tasks (¶ [0018], “In some examples, the processing resource utilization cap 205 may be set at first value for a low priority application task and a second higher value for a high priority application task. This allows for conservation of processing resources for lower priority tasks while allowing high priority tasks to continue utilization of the processing resources.” See also para. 0031.), and when the score is equal to or greater than a predetermined threshold allowable value, the task allocator changes allocation of the task by stopping the task with the lowest execution priority (¶ [0014], “For example, CPU usage during high demand periods costs a user more than CPU usage during low demand period. This arrangement encourages users to move their usage of the processing resources to a time of day for processing when CPU usage is cheaper. This is especially true for low priority application tasks that are not time sensitive. Moving these application tasks to cheaper time periods is usually accomplished by methods such as timeslicing and soft capping.” ¶ [0018], “In some examples, FIGS. 2A and 2B occur within in the same time period with FIG. 2B occurring later than FIG. 2A after an application task utilizes the processing resources. Once the workload manager 105 determines that the current processing resource utilization is at or above the processing resource utilization threshold 206, a voluntary suspend is sent to the application. Having the workload manager 105 transmit the voluntary suspend and the application's response to the voluntary suspend, allows for the processing resources to not be locked and to reduce contention in the processing resources prior to the processing resource utilization cap 205 being met. In some examples, the processing resource utilization cap 205 may be set at first value for a low priority application task and a second higher value for a high priority application task. This allows for conservation of processing resources for lower priority tasks while allowing high priority tasks to continue utilization of the processing resources.”). Borthakur also teaches when the score is equal to or greater than a predetermined allowable value, changing allocation of the task (¶ [0051], “Next, a coefficient of variation 808 may be calculated by dividing the standard deviation (the square root of two) by the mean value (three). The coefficient of variation, which is slightly less than one-half, may then be compared to a threshold value 810. If the coefficient of variation is above that threshold, the workload may be recommended for migration 812. If the coefficient of variation is below that threshold, the workload may be recommended for migration 814.”).
As per claim 6, Matsuyama, Slinger, and Borthakur teach the information processing apparatus of claim 1. Matsuyama teaches wherein the task execution history recorder records the task execution time of a predetermined sample size or a predetermined sample period as the history (¶ [0071], “The job resource usage quantity monitoring unit 22 monitors the resource usage quantity of the job and, with an elapse of time of each job, records the resource usage variation of each node per predetermined unit time. The resource usage variation may be recorded per resource. The job resource usage quantity monitoring unit 22 can store the resource usage variation as a resource usage history in the memory 2b. The job resource usage quantity monitoring unit 22 is one example of an output unit. The resource usage state notifying unit 23 notifies the resource usage history data receiving unit 123 of the resource usage variation data recorded by the job resource usage quantity monitoring unit 22.”).
As per claim 7, it is an information processing apparatus claim comprising similar limitations to claim 1, so it is rejected for similar reasons.
As per claim 13, Matsuyama, Slinger, and Borthakur teach the information processing apparatus of claim 7. Matsuyama teaches a test unit that determines whether or not to change allocation of the task by the task allocator by comparing the scores calculated for the respective processors (¶ [0057], “The resource usage state management unit 122 manages a usage state of each resource of the computing node 2, and notifies the optimization processing unit 13 of candidates for an allocation position of the computing node 2 that is allocated to the job (the candidates being also hereinafter referred to as allocation position candidates) corresponding to the resource usage state.” ¶ [0060]-[0061], “The optimization process invoking interface 124 is an interface for invoking a process to be executed by the optimization processing unit 13. The process to be executed by the optimization processing unit 13 contains a process for estimating the variation quantity of the resource usage of the new job from the execution history. The optimization processing unit 13 classifies the execution histories into a plurality of groups, and optimizes the allocation position of the new job by estimating the resource usage variation of the new job from the execution history contained in the group to which the new job belongs. The optimization processing unit 13 includes an execution history cluster generating unit 131, a new job belonging cluster presumption unit 132, a resource usage variation pattern presumption unit 133, an appropriative resource specifying unit 134 and a DB interface 135.” See also para. 0065.).
As per claim 14, Matsuyama, Slinger, and Borthakur teach the information processing apparatus of claim 1. Matsuyama teaches a management terminal and wherein the management terminal has a task execution status monitor that monitors an execution status of the task (¶ [0035], “The job scheduler node 1 manages a resource usage state of the job and allocates resources to the respective jobs.” ¶ [0053], “The job scheduler node 1 includes a communication processing unit 11, a resource allocation processing unit 12 and an optimization processing unit 13.” ¶ [0055]-[0056], “The resource allocation processing unit 12 includes a job execution start instruction unit/end monitoring unit 121, a resource usage state management unit 122, a resource usage history data receiving unit 123 and an optimization process invoking interface 124. The job execution start instruction unit/end monitoring unit 121 instructs the computing node 2 receiving assignment of the job to start executing the job. Further, the job execution start instruction unit/end monitoring unit 121 monitors the execution of the job, and detects an end of the job.”).
As per claim 15, it is a method claim comprising similar limitations to claim 1, so it is rejected for similar reasons.
As per claim 16, Matsuyama, Slinger, and Borthakur teach the information processing apparatus of claim 1. Slinger teaches wherein the task allocator manages task suspension and resumption to change allocation of the task based on the score (¶ [0018]-[0020], “Once the workload manager 105 determines that the current processing resource utilization is at or above the processing resource utilization threshold 206, a voluntary suspend is sent to the application. Having the workload manager 105 transmit the voluntary suspend and the application's response to the voluntary suspend, allows for the processing resources to not be locked and to reduce contention in the processing resources prior to the processing resource utilization cap 205 being met. In some examples, the processing resource utilization cap 205 may be set at first value for a low priority application task and a second higher value for a high priority application task. This allows for conservation of processing resources for lower priority tasks while allowing high priority tasks to continue utilization of the processing resources. In some examples, the workload manager 105 will transmit the voluntary suspend to an application, such as application 102a. The application 102a will then continue processing or executing the application task using the processing resource until a safe stop point is reached…In some embodiments, the workload manager 105 will also transmit a lazy resume notification to an application, such as application 102a. The application will then resume according to the lazy resume once it receives a wake signal and as time 351 proceeds. For example, as shown in FIG. 3B, which illustrates an application task with a lazy resume, according to one embodiment, the application task 355 may delay resuming utilization of the processing resources 110 even after a wake signal 352 is received at the application 102a, according to the lazy resume 357.”).
As per claim 17, Matsuyama, Slinger, and Borthakur teach the information processing apparatus of claim 1. Slinger teaches wherein the task allocator changes allocation of the task by stopping the task with respect to resource contention of the processor (¶ [0018], “Once the workload manager 105 determines that the current processing resource utilization is at or above the processing resource utilization threshold 206, a voluntary suspend is sent to the application. Having the workload manager 105 transmit the voluntary suspend and the application's response to the voluntary suspend, allows for the processing resources to not be locked and to reduce contention in the processing resources prior to the processing resource utilization cap 205 being met. In some examples, the processing resource utilization cap 205 may be set at first value for a low priority application task and a second higher value for a high priority application task. This allows for conservation of processing resources for lower priority tasks while allowing high priority tasks to continue utilization of the processing resources.” See also para. 0030.).
Claim(s) 4 and 5 are rejected under 35 U.S.C. 103 as being unpatentable over Matsuyama, Slinger, and Borthakur as applied to claim 1 above, and further in view of Boenig et al. (US Pub. No. 2018/0129529 A1 hereinafter Boenig).
As per claim 4, Matsuyama, Slinger, and Borthakur teach the information processing apparatus of claim 3. Slinger teaches wherein the task allocator suspends the task with the lowest execution priority (¶ [0014], “For example, CPU usage during high demand periods costs a user more than CPU usage during low demand period. This arrangement encourages users to move their usage of the processing resources to a time of day for processing when CPU usage is cheaper. This is especially true for low priority application tasks that are not time sensitive. Moving these application tasks to cheaper time periods is usually accomplished by methods such as time slicing and soft capping.” ¶ [0018], “In some examples, FIGS. 2A and 2B occur within in the same time period with FIG. 2B occurring later than FIG. 2A after an application task utilizes the processing resources. Once the workload manager 105 determines that the current processing resource utilization is at or above the processing resource utilization threshold 206, a voluntary suspend is sent to the application. Having the workload manager 105 transmit the voluntary suspend and the application's response to the voluntary suspend, allows for the processing resources to not be locked and to reduce contention in the processing resources prior to the processing resource utilization cap 205 being met. In some examples, the processing resource utilization cap 205 may be set at first value for a low priority application task and a second higher value for a high priority application task. This allows for conservation of processing resources for lower priority tasks while allowing high priority tasks to continue utilization of the processing resources.”).
Matsuyama, Slinger, and Borthakur fail to teach obtaining the processor utilization rate and resuming the suspended task once the processor utilization rate reaches a particular threshold.
However, Boenig teaches acquires a utilization rate of the processor, determines whether or not the suspended task is resumable by the processor based on the utilization rate, and resumes the task when the processor determines that the task is resumable (¶ [0032]-[0033], “The method 200 then monitors 216 for when available computing resources rise above a threshold. In certain embodiments, this may be the same threshold used at step 210 or another threshold, such as a reduced threshold. For example, if a job has partially completed and needs fewer computing resources to resume and complete, a lower threshold may be used to resume the job. In other embodiments, the same threshold may be used for suspending and resuming a job. When, at step 216, the available computing resources rises above the threshold, the method 200 resumes 218 the job at the point where it ceased work at the time of suspension. As discussed above, this resumption may occur with a reduced level of computing resources (compared to the amount saved or recorded at step 202 and/or allocated at step 206), ideally enabling the job to complete even in a resource-constrained environment.”).
Matsuyama, Slinger, Borthakur, and Boenig are all considered to be analogous to the claimed invention because they are all in the same field of task scheduling and resource allocation. 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 job suspension and resumption functionality of Matsuyama, Slinger, and Borthakur with suspension and resumption functionality of Boenig to arrive at the claimed invention. This substitution would have been reasonable under MPEP § 2143 as all references use resource utilization information when scheduling tasks for execution.
As per claim 5, Matsuyama, Slinger, Borthakur, and Boenig teach the information processing apparatus of claim 4. Boenig teaches wherein, when the processor determines that the task is resumable, the task allocator acquires the utilization rate of the processor again after elapse of a predetermined time, determines again whether or not the suspended task is resumable by the processor based on the utilization rate, and resumes the task when the processor determines that the task is resumable (¶ [0032]-[0034], “The method 200 then monitors 216 for when available computing resources rise above a threshold. In certain embodiments, this may be the same threshold used at step 210 or another threshold, such as a reduced threshold. For example, if a job has partially completed and needs fewer computing resources to resume and complete, a lower threshold may be used to resume the job. In other embodiments, the same threshold may be used for suspending and resuming a job. When, at step 216, the available computing resources rises above the threshold, the method 200 resumes 218 the job at the point where it ceased work at the time of suspension. As discussed above, this resumption may occur with a reduced level of computing resources (compared to the amount saved or recorded at step 202 and/or allocated at step 206), ideally enabling the job to complete even in a resource-constrained environment…This process may repeat until the job is complete. Thus, in certain embodiments, each time a job suspends, the level of computing resources needed to resume the job may ratchet down since more of the job is complete.”).
Claim(s) 9 and 10 are rejected under 35 U.S.C. 103 as being unpatentable over Matsuyama, Slinger, and Borthakur as applied to claim 7 above, and further in view of Ronnau et al. (US Pub. No. 2022/0334875 A1 hereinafter Ronnau).
As per claim 9, Matsuyama, Slinger, and Borthakur teach the information processing apparatus of claim 7. Matsuyama teaches the task allocator (¶ [0055], “The resource allocation processing unit 12 manages the resource usage state, allocates the resources to the job and instructs the computing node 2 to start executing the job. The resource allocation processing unit 12 includes a job execution start instruction unit/end monitoring unit 121, a resource usage state management unit 122, a resource usage history data receiving unit 123 and an optimization process invoking interface 124.” ¶ [0057], “The resource usage state management unit 122 manages a usage state of each resource of the computing node 2, and notifies the optimization processing unit 13 of candidates for an allocation position of the computing node 2 that is allocated to the job (the candidates being also hereinafter referred to as allocation position candidates) corresponding to the resource usage state. Herein, the “allocation position” connotes one computing node 2 allocated to the job or a combination of plural computing nodes 2 allocated thereto in the parallel computer system 10.”).
Although Matsuyama, Slinger, and Borthakur use processor utilization percentages when determining how to schedule tasks and allocate resources, they do not explicitly teach reallocating a task to a processor having a lower utilization percentage.
Accordingly, Ronnau teaches wherein the task allocator allocates the task, which is allocated to the processor with the highest score, to the processor with the lowest score (¶ [0044]-[0046], “If there is more than one (type of) candidate computing device having a baseline resource utilization lower than the actual resource utilization of the target computing device, which (type of) candidate computing device is selected may be achieved in a number of different ways. As one example, the (type of) candidate computing device having the lowest baseline resource utilization may be selected…Once a candidate computing device has been selected that has a baseline utilization profile matching the actual utilization profile of the target computing device (214), the method 200 includes then performing an action in relation to the selected candidate computing device to replace the target computing device (216). Different types of actions may be performed in this respect…The decision computing device 104 of FIG. 1 may, for instance, initiate transfer of workloads performed by the applications of the target computing device to corresponding applications of the candidate computing device. This process may include first causing the applications to be installed on the candidate computing device if they are not yet already installed.”).
Matsuyama, Slinger, Borthakur, and Ronnau are all considered to be analogous to the claimed invention because they are all in the same field of task scheduling and resource allocation. 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 Matsuyama, Slinger, and Borthakur with the resource utilization decision making of Ronnau to arrive at the claimed invention. The motivation to modify Matsuyama, Slinger, and Borthakur with the teachings of Ronnau is that reallocating a job to a processor with a lower utilization percentage can improve performance of the job as more of the processor’s resources are available.
As per claim 10, Matsuyama, Slinger, Borthakur, and Ronnau teach the information processing apparatus of claim 9. Matsuyama teaches the task allocator (¶ [0055], “The resource allocation processing unit 12 manages the resource usage state, allocates the resources to the job and instructs the computing node 2 to start executing the job. The resource allocation processing unit 12 includes a job execution start instruction unit/end monitoring unit 121, a resource usage state management unit 122, a resource usage history data receiving unit 123 and an optimization process invoking interface 124.” ¶ [0057], “The resource usage state management unit 122 manages a usage state of each resource of the computing node 2, and notifies the optimization processing unit 13 of candidates for an allocation position of the computing node 2 that is allocated to the job (the candidates being also hereinafter referred to as allocation position candidates) corresponding to the resource usage state. Herein, the “allocation position” connotes one computing node 2 allocated to the job or a combination of plural computing nodes 2 allocated thereto in the parallel computer system 10.”). Slinger teaches wherein different execution priorities are given to the plurality of tasks and a lower execution priority (¶ [0018], “In some examples, the processing resource utilization cap 205 may be set at first value for a low priority application task and a second higher value for a high priority application task. This allows for conservation of processing resources for lower priority tasks while allowing high priority tasks to continue utilization of the processing resources.” See also para. 0031.). Ronnau teaches allocating the task, which is allocated to the processor with the highest score, to the processor with the lowest score (¶ [0044]-[0046], “If there is more than one (type of) candidate computing device having a baseline resource utilization lower than the actual resource utilization of the target computing device, which (type of) candidate computing device is selected may be achieved in a number of different ways. As one example, the (type of) candidate computing device having the lowest baseline resource utilization may be selected…Once a candidate computing device has been selected that has a baseline utilization profile matching the actual utilization profile of the target computing device (214), the method 200 includes then performing an action in relation to the selected candidate computing device to replace the target computing device (216). Different types of actions may be performed in this respect…The decision computing device 104 of FIG. 1 may, for instance, initiate transfer of workloads performed by the applications of the target computing device to corresponding applications of the candidate computing device. This process may include first causing the applications to be installed on the candidate computing device if they are not yet already installed.”).
Claim(s) 11 and 12 are rejected under 35 U.S.C. 103 as being unpatentable over Matsuyama, Slinger, Borthakur, and Ronnau as applied to claim 10 above, and further in view of Boenig.
As per claim 11, Matsuyama, Slinger, Borthakur, and Ronnau teach the information processing apparatus of claim 10. Matsuyama teaches the task allocator (¶ [0055], “The resource allocation processing unit 12 manages the resource usage state, allocates the resources to the job and instructs the computing node 2 to start executing the job. The resource allocation processing unit 12 includes a job execution start instruction unit/end monitoring unit 121, a resource usage state management unit 122, a resource usage history data receiving unit 123 and an optimization process invoking interface 124.” ¶ [0057], “The resource usage state management unit 122 manages a usage state of each resource of the computing node 2, and notifies the optimization processing unit 13 of candidates for an allocation position of the computing node 2 that is allocated to the job (the candidates being also hereinafter referred to as allocation position candidates) corresponding to the resource usage state. Herein, the “allocation position” connotes one computing node 2 allocated to the job or a combination of plural computing nodes 2 allocated thereto in the parallel computer system 10.”). Slinger teaches suspending the task allocated to the processor with the highest score and lowest execution priority (¶ [0014], “For example, CPU usage during high demand periods costs a user more than CPU usage during low demand period. This arrangement encourages users to move their usage of the processing resources to a time of day for processing when CPU usage is cheaper. This is especially true for low priority application tasks that are not time sensitive. Moving these application tasks to cheaper time periods is usually accomplished by methods such as timeslicing and soft capping.” ¶ [0018], “In some examples, FIGS. 2A and 2B occur within in the same time period with FIG. 2B occurring later than FIG. 2A after an application task utilizes the processing resources. Once the workload manager 105 determines that the current processing resource utilization is at or above the processing resource utilization threshold 206, a voluntary suspend is sent to the application. Having the workload manager 105 transmit the voluntary suspend and the application's response to the voluntary suspend, allows for the processing resources to not be locked and to reduce contention in the processing resources prior to the processing resource utilization cap 205 being met. In some examples, the processing resource utilization cap 205 may be set at first value for a low priority application task and a second higher value for a high priority application task. This allows for conservation of processing resources for lower priority tasks while allowing high priority tasks to continue utilization of the processing resources.”). Ronnau teaches utilization scores of processors (¶ [0044]-[0046], “If there is more than one (type of) candidate computing device having a baseline resource utilization lower than the actual resource utilization of the target computing device, which (type of) candidate computing device is selected may be achieved in a number of different ways. As one example, the (type of) candidate computing device having the lowest baseline resource utilization may be selected…Once a candidate computing device has been selected that has a baseline utilization profile matching the actual utilization profile of the target computing device (214), the method 200 includes then performing an action in relation to the selected candidate computing device to replace the target computing device (216). Different types of actions may be performed in this respect…The decision computing device 104 of FIG. 1 may, for instance, initiate transfer of workloads performed by the applications of the target computing device to corresponding applications of the candidate computing device. This process may include first causing the applications to be installed on the candidate computing device if they are not yet already installed.”).
Matsuyama, Slinger, Borthakur, and Ronnau fail to teach obtaining the processor utilization rate and resuming the suspended task once the processor utilization rate reaches a particular threshold.
However, Boenig teaches acquires a utilization rate of the processor, determines whether or not the suspended task is resumable by the processor based on the utilization rate, and resumes the task when the processor determines that the task is resumable (¶ [0032]-[0033], “The method 200 then monitors 216 for when available computing resources rise above a threshold. In certain embodiments, this may be the same threshold used at step 210 or another threshold, such as a reduced threshold. For example, if a job has partially completed and needs fewer computing resources to resume and complete, a lower threshold may be used to resume the job. In other embodiments, the same threshold may be used for suspending and resuming a job. When, at step 216, the available computing resources rises above the threshold, the method 200 resumes 218 the job at the point where it ceased work at the time of suspension. As discussed above, this resumption may occur with a reduced level of computing resources (compared to the amount saved or recorded at step 202 and/or allocated at step 206), ideally enabling the job to complete even in a resource-constrained environment.”).
Matsuyama, Slinger, Borthakur, Ronnau, and Boenig are all considered to be analogous to the claimed invention because they are all in the same field of task scheduling and resource allocation. 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 job suspension and resumption functionality of Matsuyama, Slinger, Borthakur, and Ronnau with suspension and resumption functionality of Boenig to arrive at the claimed invention. This substitution would have been reasonable under MPEP § 2143 as all references use resource utilization information when scheduling tasks for execution.
As per claim 12, Matsuyama, Slinger, Borthakur, Ronnau, and Boenig teach the information processing apparatus of claim 11. Ronnau teaches utilization scores of processors (¶ [0044], “If there is more than one (type of) candidate computing device having a baseline resource utilization lower than the actual resource utilization of the target computing device, which (type of) candidate computing device is selected may be achieved in a number of different ways. As one example, the (type of) candidate computing device having the lowest baseline resource utilization may be selected…) Boenig teaches wherein, when the processor determines that the task is not resumable, the processor allocation unit acquires the utilization rate of the processor again after elapse of a predetermined time, determines again whether or not the suspended task is resumable by the processor based on the utilization rate, and allocates the task to the processor with the lowest score when the processor determines that the suspended task is resumable with the lowest score (¶ [0032]-[0034], “The method 200 then monitors 216 for when available computing resources rise above a threshold. In certain embodiments, this may be the same threshold used at step 210 or another threshold, such as a reduced threshold. For example, if a job has partially completed and needs fewer computing resources to resume and complete, a lower threshold may be used to resume the job. In other embodiments, the same threshold may be used for suspending and resuming a job. When, at step 216, the available computing resources rises above the threshold, the method 200 resumes 218 the job at the point where it ceased work at the time of suspension. As discussed above, this resumption may occur with a reduced level of computing resources (compared to the amount saved or recorded at step 202 and/or allocated at step 206), ideally enabling the job to complete even in a resource-constrained environment…This process may repeat until the job is complete. Thus, in certain embodiments, each time a job suspends, the level of computing resources needed to resume the job may ratchet down since more of the job is complete.”).
Response to Arguments
Applicant’s arguments with respect to claim(s) 1, 3-7, 9-17 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. Applicant has amended the claims with new limitations that change the scope of the claimed invention. Therefore, the amended claims necessitate new rejections, as addressed above. The amended claims are not allowable over the prior art cited previously along with an additional reference, necessitated by amendment, for reasons indicated above.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
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