DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claims 1-20 are pending in this application.
Claim Rejections - 35 USC § 101
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.
Claims 1-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.
Claim 1 is rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Step 1, Statutory Category: Yes, the claim 1 is a system that recites a series of steps and therefore falls in the statutory category of a machine.
Step 2A- Prong 1: Judicial Exception Recited: Yes, the claim recites: “calculating a temporary maximum capacity of the parallel processing system by repeatedly increasing a step variable used when executing a first number of execution units until the execution time of at least one of the first number of execution units meets or exceeds a predetermined percentage of the unit time; and calculating a final maximum capacity of the parallel processing system based on execution of a second number of execution units being equal to the temporary maximum capacity.” As drafted, the claim as a whole recites a system including steps that could be performed in the human mind, but for the recitation of generic computing components. The human mind can easily determining/calculating a temporary maximum capacity (i.e., number) of the parallel processing system by repeatedly increasing a step variable used (i.e., iteratively) when executing a first number of execution units until the execution time of at least one of the first number of execution units meets or exceeds a predetermined percentage of the unit time (i.e., based on determining that execution time meets or exceeds a threshold value); and determining/calculating a final maximum capacity of the parallel processing system based on execution of a second number of execution units being equal to the temporary maximum capacity (i.e., based on the number of execution units being equal to the temporary maximum capacity). Therefore, but for the recitation of generic computing components, these steps may be a Mental Processes that can be performed in the human mind (including an observation, evaluation, judgment, opinion).
Therefore, yes, the claims do recite judicial exceptions.
Step 2A- Prong 2: Integrated into a practical Application: No, this judicial exception is not integrated into a practical application. In particular, the claim recites an additional limitations that “at least one hardware processor; and a computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations” and “operating a first execution unit in a parallel processing system for a unit time until the first execution unit has completed operating” which is directed to Adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a generic computer as a tool to perform an abstract idea (see MPEP 2106.05(f)). Accordingly, even in combination, these additional elements do not integrate the abstract idea into a practical application because they not impose any meaningful limits on practicing the abstract idea. Therefore, the claim is directed to the abstract idea.
Step 2B: Claim provides an Inventive Concept: No. The additional element “at least one hardware processor; and a computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations” and “operating a first execution unit in a parallel processing system for a unit time until the first execution unit has completed operating” merely recite instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea (See MPEP 2106.05(f)). These additional elements and combination of the elements does not amount to significant more than the exception itself or provide an inventive concept in Step 2B.
For these reasons, there is no inventive concept in the claim, and thus the claim is ineligible.
Independent claims 10 and 19 are rejected for the same reason as claim 1 above. Claim 19 further recites “A non-transitory machine-readable medium storing instructions which, when executed by one or more processors, cause the one or more processors to perform operations”. These additional elements are directed to generic computing components/functions merely applying the abstract idea (MPEP § 2106.05(f)).
With respect to the dependent claim 2, the claim elaborates that wherein the calculating the temporary maximum capacity includes executing a first number of execution units equal to a capacity variable in the parallel processing system until the first number of execution units have all completed execution, comparing the execution times of the executing to a predetermined percentage of the unit time, and repeating the executing and comparing with the first number of execution numbers increasing by a step variable until the execution time of at least one of the first number of execution units meets or exceeds the predetermined percentage of the unit time (“executing” which is merely applying the judicial exception or abstract idea (See MPEP 2106.05(f)). The claim does not define any particular machine to “executing” other than a generic machine such as the “execution units” and no details what so ever on how the claimed function will occur. “comparing” are being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind. Further, the claim as a whole is a Mental Processes that can be performed in the human mind (including an observation, evaluation, judgment, opinion)).
With respect to the dependent claim 3, the claim elaborates that wherein the calculating the final maximum capacity includes repeatedly reducing the temporary maximum capacity by the step variable, running a second number of execution units equal to the temporary maximum capacity in the parallel processing system until the second number of execution units have all completed running, comparing running times of the second number of execution units to a predetermined percentage of the unit time, reducing the step variable by half, and either increasing or decreasing the second number of execution units by the step variable depending upon whether the running time of at least one of the second number of execution units meets or exceeds the predetermined percentage of the unit time, until the step variable is zero, at which point the final maximum capacity of the parallel processing system is determined to be equal to the second number of execution units (“repeatedly reducing the temporary maximum capacity by the step variable”, “comparing running times of the second number of execution units” and “either increasing or decreasing the second number of execution units by the step variable depending upon whether the running time of at least one of the second number of execution units meets or exceeds the predetermined percentage of the unit time, until the step variable is zero” are being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind. In addition, the claim as a whole is a Mental Processes that can be performed in the human mind (including an observation, evaluation, judgment, opinion). Further, “running a second number of execution units” which is merely applying the judicial exception or abstract idea (See MPEP 2106.05(f)). The claim does not define any particular machine to “executing” other than a generic machine such as the “execution units” and no details what so ever on how the claimed function will occur).
With respect to the dependent claim 4, the claim elaborates that wherein the operations further comprise: setting the step variable to an initial starting value; and initializing the capacity variable to zero (“setting” and “initializing” are being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind. In addition, the claim as a whole is a Mental Processes that can be performed in the human mind (including an observation, evaluation, judgment, opinion)).
With respect to the dependent claim 5, the claim elaborates that wherein the calculating the temporary maximum capacity comprises: setting the execution variable to the step variable plus the capacity variable; executing a number of execution units equal to the execution unit variable; and in response to a determination that an execution time for each of the number of execution units is less than the predetermined percentage of unit time, setting the capacity variable equal to the execution variable and repeating the operations of the calculating the temporary maximum capacity, wherein the temporary maximum capacity is equal to the execution unit when repeating ends (“setting the execution variable”, “in response to a determination that an execution time for each of the number of execution units is less than the predetermined percentage of unit time, setting the capacity variable…” are being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind. In addition, the claim as a whole is a Mental Processes that can be performed in the human mind (including an observation, evaluation, judgment, opinion). Further, “executing a number of execution units” which is merely applying the judicial exception or abstract idea (See MPEP 2106.05(f)). The claim does not define any particular machine to “executing” other than a generic machine such as the “execution units” and no details what so ever on how the claimed function will occur).
With respect to the dependent claim 6, the claim elaborates that wherein the calculating a final maximum capacity comprises: setting the execution variable to the execution variable minus the step variable; running a number of execution units equal to the execution unit variable; in response to a determination that an execution time for each of the number of execution units is less than the predetermined percentage of unit time, setting the step variable to the step variable divided by two, and in response to a determination that the step variable is zero, assigning the execution variable as the final maximum capacity (“setting the execution variable”, “in response to a determination that an execution time for each of the number of execution units is less than the predetermined percentage of unit time, setting the step variable” and “assigning the execution variable” are being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind. In addition, the claim as a whole is a Mental Processes that can be performed in the human mind (including an observation, evaluation, judgment, opinion)).
With respect to the dependent claim 7, the claim elaborates that wherein the calculating a final maximum capacity further comprises: in response to a determination that an execution time for at least one of the number of execution units is greater than or equal to the predetermined percentage of unit time, setting the capacity variable equal to the execution variable, setting the step variable to the step variable divided by two, and in response to a determination that the step variable is zero, assigning the execution variable as the final maximum capacity (“in response to a determination that an execution time for at least one of the number of execution units is greater than or equal to the predetermined percentage of unit time, setting the capacity variable equal to the execution variable, setting the step variable” and “assigning the execution variable” are being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind. In addition, the claim as a whole is a Mental Processes that can be performed in the human mind (including an observation, evaluation, judgment, opinion)).
With respect to the dependent claim 8, the claim elaborates that wherein the initial starting value for the step variable is determined by output of a machine learning model trained to output a step value for the parallel processing system based at least in part on training data used to train the machine learning model (these limitations are being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind. In addition, the claim as a whole is a Mental Processes that can be performed in the human mind (including an observation, evaluation, judgment, opinion). Further, the “machine learning model” is just to recognize certain types of patterns or data. (See specification [0052]). Accordingly, it is clearly reasonable for one to mentally determining initial starting value for the step variable and learned from historical data (as training data)).
With respect to the dependent claim 9, the claim elaborates that wherein the training data includes prior executions of the operations for parallel processing systems other than the parallel processing system (“wherein the training data includes prior executions of the operations” which is directed to Adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a generic computer as a tool to perform an abstract idea (see MPEP 2106.05(f)).
Dependent claims 11-18 recite the same features as applied to claims 2-9 respectively above, therefore they are also rejected under the same rationale.
Dependent claim 20 recites the same features as applied to claim 2 above, therefore it is also rejected under the same rationale.
Claim Rejections - 35 USC § 112(b)
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
Claims 1-20 are rejected under 35 U.S.C. 112(b), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor, or for pre-AIA the applicant regards as the invention.
As per claims 1, 10 and 19 (line# refers to claim 1):
Line 10, “the execution time” lacks antecedence basis.
As per claims 2, 11 and 20 (line# refers to claim 2):
In line 2, it recites the phrase “a first number of execution units”. However, prior to this phrase in claim 1, at line 9, it recites “a first number of execution units”. Thus, it is unclear whether the second recitation of “a first number of execution units” is the same or different from the first recitation of “a first number of execution units”. If they are the same, the or said should be used. For examining purpose, examiner will interpret as the same one.
Line 4, “the execution times” lacks antecedence basis. It is uncertain if this term intent to refer to “the execution time” as cited in claim 1, line 10.
In lines 4-5, it recites the phrase “a predetermined percentage of the unit time”. However, prior to this phrase in claim 1, at line 11, it recites “a predetermined percentage of the unit time”. Thus, it is unclear whether the second recitation of “a predetermined percentage of the unit time” is the same or different from the first recitation of “a predetermined percentage of the unit time”. If they are the same, the or said should be used. For examining purpose, examiner will interpret as the same one.
Line 6, it recites “the first number of execution numbers”. It is uncertain if this term is refers to “the first number of execution units” as cited in line 2.
In line 6, it recites the phrase “a step variable”. However, prior to this phrase in claim 1, at line 9, it recites “a step variable”. Thus, it is unclear whether the second recitation of “a step variable” is the same or different from the first recitation of “a step variable”. If they are the same, the or said should be used. For examining purpose, examiner will interpret as the same one.
As per claims 3 and 12 (line# refers to claim 3):
In line 3, it recites the phrase “a second number of execution units”. However, prior to this phrase in claim 1, at line 13, it recites “a second number of execution units”. Thus, it is unclear whether the second recitation of “a second number of execution units” is the same or different from the first recitation of “a second number of execution units”. If they are the same, the or said should be used. For examining purpose, examiner will interpret as the same one.
In line 6, it recites the phrase “a predetermined percentage of the unit time”. However, prior to this phrase in claim 1, at line 11, it recites “a predetermined percentage of the unit time”. Thus, it is unclear whether the second recitation of “a predetermined percentage of the unit time” is the same or different from the first recitation of “a predetermined percentage of the unit time”. If they are the same, the or said should be used. For examining purpose, examiner will interpret as the same one.
Line 8, it recites “the running time” lacks antecedence basis. It is uncertain if this term is refers to “running times” as cited in line 5.
As per claims 5 and 14 (line# refers to claim 3):
Line 3, “the execution variable” lacks antecedence basis.
Line 4, “the execution unit variable” lacks antecedence basis. It is uncertain if this term is refers to “the execution variable” as cited in line 3.
As per claims 6 and 15 (line# refers to claim 3):
Line 3, “the execution variable” lacks antecedence basis.
Line 4, “the execution unit variable” lacks antecedence basis. It is uncertain if this term is refers to “the execution variable” as cited in line 3.
As per claims 2-9, 11-18 and 20:
They are system, method and non-transitory machine-readable medium claims that depend from rejected claims and do not resolve the deficiencies thereof and are therefore rejected for the same reasons as above.
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.
Claims 1, 10 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Yoshida et al. (US Pub. 2015/0293936 A1) in view of Bradshaw et al. (US Pub. 2017/0255491 A1) and further in view of Mathal et al. (US Patent. 6,501,737 B1) and BATES et al. (US Pub. 2016/0179508 A1).
As per claim 1, Bradshaw teaches the invention substantially as claimed including A system comprising (Yoshida, Fig. 2):
at least one hardware processor; and a computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations comprising (Yoshida, [0055] lines 5-7, a computer that includes a CPU and a storage medium storing a program and operates under the control based on the program):
operating a first execution unit in a processing system for a time until the first execution unit has completed operating (Yoshida, Fig. 1, 100 distributed data processing system, 121 processing unit; Abstract, lines 10-11, Each of the plurality of processing unit 121 executes the predetermined arithmetic process [0112] lines 1-4, calculation of correlation functions for all pairs among N types of metrics can be completed within the processing completion time);
calculating a maximum capacity of the processing system when executing a first number of execution units until the execution time of at least one of the first number of execution units meets or exceeds a predetermined of the time (Yoshida, Fig. 9, S302, predicted processing time > processing completion time, YES to S303 calculate required number of processing devices; [0104] lines 1-12, If the calculated predicted processing time exceeds processing completion time (Y at step S302), the processing device control unit 114 refers to the operational status information 116 to calculate the number of processing devices 120 required (as calculating a maximum capacity) for calculating correlation functions for all pairs within the processing completion time (step S303). It is assumed here that the processing completion time (as predetermined of the time) is preset by a person such as a system administrator on the basis of time a correlation model takes to change or other factors. The processing device control unit 114 calculates the number of processing devices 120 required for calculating correlation functions for all pairs within the processing completion time; also see claim 7, when predicted processing time required for the predetermined arithmetic process on all of the pairs of the N types of data by the plurality of processing unit exceeds predetermined processing completion time, the control unit calculates the number of the processing unit required for completing the predetermined arithmetic process on all of the pairs within the predetermined processing completion time and adds the processing unit so that the number of processing unit becomes equal to the calculated number (as calculating a temporary maximum capacity of the processing system when executing a first number of execution units until the execution time of at least one of the first number of execution units meets or exceeds a predetermined of the time (i.e., the number of processing units/devices (i.e., temporary maximum capacity) is determined until the execution time meets completion time)).
Yoshida fails to specifically teach when operating a first execution unit in a processing system, it is operating a first execution unit in a parallel processing system for a unit time until the first execution unit has completed operating, when calculating maximum capacity, it is temporary maximum capacity, and it is calculated until the execution time of at least one of the first number of execution units meets or exceeds a predetermined percentage of the unit time, and calculating a final maximum capacity of the parallel processing system based on execution of a second number of execution units being equal to the temporary maximum capacity.
However, Bradshaw teaches when operating a first execution unit in a processing system, it is operating a first execution unit in a parallel processing system for a unit time until the first execution unit has completed operating (Bradshaw, Fig. 1, 114 data processor (as first execution unit); Fig. 2, workload processing time; [0078] lines 1-3, the system detects that all streaming computation tasks have completed; claim 35, units of the time to process is at least one of the group consisting of microseconds, seconds, minutes, hours, and days; [0017] lines 1-12, In a shared parallel computing environment, computing resources can be allocated to different tasks, both to different parallel execution tasks within a single job, and to different jobs that can be processed concurrently. To determine how those resources should be allocated, the jobs may be assigned a backlog size that defines how much input backlog should be permitted. Resources are then dynamically assigned and removed based on the actual size of the backlog in order to keep the actual backlog at or below the assigned backlog level. This can permit, for example, dynamic allocation of resources matching the needs of a particular job over time);
when calculating maximum capacity, it is temporary maximum capacity, and it is calculated until the execution time of at least one of the first number of execution units meets or exceeds a predetermined of the unit time, (Bradshaw, Fig. 4, Abstract, lines 4-7, For each iteration for which the quantity of processing resources allocated to the job are determined (as temporary maximum capacity, since it will be keep adjusted) to be adjusted, adjusting the quantity of processing resources allocated to the job; [0024] line 17, resources (e.g., data processors 114); [0005] lines 52-56, Backlog growth is a measure of time to process. Units of the time to process is at least one of the group consisting of microseconds, seconds, minutes, hours, and days; [0019] lines 1-5, The backlog can be measured in data size (e.g., bytes, megabytes), time to process (e.g., the duration for which the data is available but has not yet been processed, the expected time until all of the current backlog data is processed using current or a fixed amount of resources; [0033] lines 10-16, when the backlog volume is a backlog time, a relatively short backlog time is desired to avoid an otherwise stable state where backlog isn't growing, but where there exists a large processing latency. Shorter acceptable backlogs achieve lower latency while requiring more processing resources. In some cases, the acceptable backlog latency time is or approaches 0; [0060] lines 1-7, Iteratively determining, for the job, a backlog growth 504, includes determining a backlog growth over a first period of time, wherein the backlog growth is a measure of a growth of unprocessed data in the received data stream that is to be input into the job. For example, as the job 111 executes, it receives input from the streaming data provider 106; [0071] lines 1-5, The quantity of processing resources allocated to the job can be increased 614. For example, if the backlog growth is determined to be positive and the backlog volume is not below the target, additional resources may be allocated to the job so that the backlog growth can be halted or reversed [Examiner noted: determining/adjusting the quantity of processing resources until there is no backlog/latency time, therefore, the time of process can be (i.e., meets or exceeds a predetermined of the unit time)); and
calculating a final maximum capacity of the parallel processing system based on execution of a second number of execution units being equal to the temporary maximum capacity (Bradshaw, Fig. 4, Abstract, lines 4-7, For each iteration for which the quantity of processing resources allocated to the job are determined to be adjusted, adjusting the quantity of processing resources allocated to the job (as calculating a temporary maximum capacity of the parallel processing system, this is temporary since it will be iteratively adjusted); Fig. 4, 508 determine whether to adjust allocation? NO to 512 Maintain allocation (as the final maximum capacity of the parallel processing system, because it ensuring the previous adjusted processing resources can be met the backlog time); [0024] line 17, resources (e.g., data processors 114); [0033] lines 10-16, when the backlog volume is a backlog time, a relatively short backlog time is desired to avoid an otherwise stable state where backlog isn't growing, but where there exists a large processing latency. Shorter acceptable backlogs achieve lower latency while requiring more processing resources. In some cases, the acceptable backlog latency time is or approaches 0; [0060] lines 1-7, Iteratively determining, for the job, a backlog growth 504, includes determining a backlog growth over a first period of time, wherein the backlog growth is a measure of a growth of unprocessed data in the received data stream that is to be input into the job. For example, as the job 111 executes, it receives input from the streaming data provider 106; [0064] lines 1-10, For each iteration for which the quantity of processing resources allocated to the job are determined not to be adjusted, maintaining 512 the quantity of processing resources allocated to the job. For example, if the network resources are neither overprovisioned nor underprovisioned, the same or a similar level of network resources may be provisioned to the job 111. This may include the exact same resources continuing to be provisioned, or it may include different resources provisioned in such a way as to be equivalent (as calculating a final maximum capacity of the parallel processing system (i.e., maintaining the current quantity of processing resources) based on execution of a second number of execution units being equal to the temporary maximum capacity (i.e., the previous quantity of processing resource is adjusted for meeting backlog time purpose, (i.e., the adjusted previous quantity of processing resources is second number of execution unites) and is being equal to the temporary maximum capacity (i.e., to meet the previous backlog time)).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Yoshida with Bradshaw because Bradshaw’s teaching of determining the quantity of data processors in order to meet the backlog time/execution time would have provided Yoshida’s system with the advantage and capability to allow the system to easily managing the resources based on the dynamic data/tasks processing(i.e., backlog/delay) in order to improving the resource utilization and system efficiency.
Yoshida and Bradshaw fail to explicitly teach when calculating a temporary maximum capacity of the processing system, it is by repeatedly increasing a step variable used.
However, Mathal teaches when calculating a temporary maximum capacity of the processing system, it is by repeatedly increasing a step variable used (Mathal, Col 3, lines 52-63, minimum number of data channel resources is determined by iteratively calculating the average data delay for an increasing number of data channel resources. For example, set a minimum quantity of data channel resources to zero, initially, and increment (104) to one. The average data delay is calculated for one data channel resource and then compared (106) to the data delay threshold. The minimum quantity of data channel resources is incremented until (as by repeatedly increasing a step variable used) the average data delay is less than or equal to the data delay threshold. Thus, the minimum quantity of data channel resources is determined)
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Yoshida and Bradshaw with Mathal because Mathal’s teaching of using the incrementation variable to determining the number of the resources used until data delay meets the delay threshold would have provided Yoshida and Bradshaw’s system with the advantage and capability to allow the system to accurate determining the specific number of the resources needed to meet the requirement which improving the system performance and efficiency.
Yoshida, Bradshaw and Mathal fail to specifically teach the predetermined of the unit time is a predetermined percentage of the unit time.
However, BATES teaches the predetermined of the unit time is a predetermined percentage of the unit time (BATES, [0050] lines 11-12, execution time (a total of 4400 ms; [0053] lines 1-10, determines if total resource utilization exceeds the resource utilization threshold. For example, determining that resource utilization exceeds the threshold may entail determining the total amount of execution time for the executable, the amount of execution time used to process the assertions, and determining the percentage of the total execution time was used for processing the identified assertions).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Yoshida, Bradshaw and Mathal with BATES because BATES’s teaching of percentage of execution time would have provided Yoshida, Bradshaw and Mathal’s system with the advantage and capability to allow the system to easily identifying the specific percentage of the execution time needed for processing based on the user input in order to improving the user experience and system performance (see BATES, [0048] “a user may define a percentage of time”).
As per claim 10, it is a method claim of claim 1 above. Therefore, it is rejected for the same reasons as claim 1 above.
As per claim 19, it is a non-transitory machine-readable medium claim of claim 1 above. Therefore, it is rejected for the same reasons as claim 1 above.
Claims 2, 11 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Yoshida, Bradshaw, Mathal and BATES, as applied to claims 1, 10 and 19 respectively above, and further in view of MIZUNO et al. (US Pub. 2023/0169359 A1).
As per claim 2, Yoshida, Bradshaw, Mathal and BATES teach the invention according to claim 1 above. Yoshida teaches calculating the maximum capacity (Yoshida, Fig. 9, S302, predicted processing time > processing completion time, YES to S303 calculate required number of processing devices; [0104] lines 1-12, If the calculated predicted processing time exceeds processing completion time (Y at step S302), the processing device control unit 114 refers to the operational status information 116 to calculate the number of processing devices 120 required (as calculating a temporary maximum capacity) for calculating correlation functions for all pairs within the processing completion time (step S303). It is assumed here that the processing completion time (as predetermined of the time) is preset by a person such as a system administrator on the basis of time a correlation model takes to change or other factors. The processing device control unit 114 calculates the number of processing devices 120 required for calculating correlation functions for all pairs within the processing completion time; also see claim 7, when predicted processing time required for the predetermined arithmetic process on all of the pairs of the N types of data by the plurality of processing unit exceeds predetermined processing completion time, the control unit calculates the number of the processing unit required for completing the predetermined arithmetic process on all of the pairs within the predetermined processing completion time and adds the processing unit so that the number of processing unit becomes equal to the calculated number (as calculating a temporary maximum capacity of the processing system when executing a first number of execution units until the execution time of at least one of the first number of execution units meets or exceeds a predetermined of the time (i.e., the number of processing units/devices (i.e., temporary maximum capacity) is determined until the execution time meets completion time)).
In addition, Bradshaw teaches calculating the temporary maximum capacity includes executing a first number of execution units in the parallel processing system until the first number of execution units have all completed execution (Bradshaw, Abstract, lines 4-7, For each iteration for which the quantity of processing resources allocated to the job are determined to be adjusted, adjusting the quantity of processing resources allocated to the job; [0017] lines 1-2, In a shared parallel computing environment; [0078] lines 1-3, the system detects that all streaming computation tasks have completed; [0058] lines 14-17, This initial allocation to the jobs may be set based on any technologically appropriate factors, including but not limited to past executions of the jobs 111, available system resources, or other factors (as calculating the temporary maximum capacity includes executing a first number of execution units in the parallel processing system until the first number of execution units have all completed execution (i.e., past execution, so the initial allocated amount of resources is based on the previous execution (i.e., first number of execution units have all completed execution));
comparing the execution times of the executing to a predetermined percentage of the unit time, and repeating the executing and comparing with the first number of execution numbers until the execution time of at least one of the first number of execution units meets or exceeds the predetermined of the unit time (Bradshaw, Fig. 4, 504 determine backlog growth, 506; Abstract, lines 4-7, For each iteration for which the quantity of processing resources allocated to the job are determined to be adjusted, [0005] lines 52-56, Backlog growth is a measure of time to process. Units of the time to process is at least one of the group consisting of microseconds, seconds, minutes, hours, and days; [0019] lines 1-5, The backlog can be measured in data size (e.g., bytes, megabytes), time to process (e.g., the duration for which the data is available but has not yet been processed, the expected time until all of the current backlog data is processed using current or a fixed amount of resources; [0033] lines 10-16, when the backlog volume is a backlog time, a relatively short backlog time is desired to avoid an otherwise stable state where backlog isn't growing, but where there exists a large processing latency. Shorter acceptable backlogs achieve lower latency while requiring more processing resources. In some cases, the acceptable backlog latency time is or approaches 0; [0060] lines 1-7, Iteratively determining, for the job, a backlog growth 504, includes determining a backlog growth over a first period of time, wherein the backlog growth is a measure of a growth of unprocessed data in the received data stream that is to be input into the job. For example, as the job 111 executes, it receives input from the streaming data provider 106; [0071] lines 1-5, The quantity of processing resources allocated to the job can be increased 614. For example, if the backlog growth is determined to be positive and the backlog volume is not below the target, additional resources may be allocated to the job so that the backlog growth can be halted or reversed (as comparing the execution times of the executing to a predetermined percentage of the unit time (i.e., comparing the execution times of initial allocated resources to the backlog time, and repeating the executing and comparing with the first number of execution numbers until the execution time of at least one of the first number of execution units (i.e., iteratively determining/and adjusting the amount of resources to meets or exceeds the predetermined of the unit time (i.e., backlog time)).
Moreover, Mathal teaches comparing with the first number of execution numbers increasing by a step variable until the execution time of at least one of the first number of execution units meets [requirement] (Mathal, Col 3, lines 52-63, minimum number of data channel resources is determined by iteratively calculating the average data delay for an increasing number of data channel resources. For example, set a minimum quantity of data channel resources to zero, initially, and increment (104) to one. The average data delay is calculated for one data channel resource and then compared (106) to the data delay threshold. The minimum quantity of data channel resources is incremented until (as by repeatedly increasing a step variable used) the average data delay is less than or equal to the data delay threshold. Thus, the minimum quantity of data channel resources is determined).
Further, BATES teaches the predetermined of the unit time is a predetermined percentage of the unit time (BATES, [0050] lines 11-12, execution time (a total of 4400 ms; [0053] lines 1-10, determines if total resource utilization exceeds the resource utilization threshold. For example, determining that resource utilization exceeds the threshold may entail determining the total amount of execution time for the executable, the amount of execution time used to process the assertions, and determining the percentage of the total execution time was used for processing the identified assertions).
Yoshida, Bradshaw, Mathal and BATES fail to specifically teach executing a first number of execution units equal to a capacity variable.
However, MIZUNO teaches executing a first number of execution units equal to a capacity variable (MIZUNO, [0005] the amount of resources described here is the number of CPU cores; [0156] lines 3-6, calculates an objective variable representing processing performance of an arithmetic operation process on the basis of a descriptive variable relating to an amount of resources provided for the arithmetic operation process (as executing first number of execution units equal to a capacity variable (i.e., descriptive variable)).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Yoshida, Bradshaw, Mathal and BATES with MIZUNO because MIZUNO’s teaching of utilizing a descriptive variable relating to an amount of resources provided for execution would have provided Yoshida, Bradshaw, Mathal and BATES’s system with the advantage and capability to allow the system to easily tracking the specific resources used during the operations in order to improving the resource utilization and system efficiency.
As per claim 11, it is a method claim of claim 2 above. Therefore, it is rejected for the same reasons as claim 2 above.
As per claim 20, it is a non-transitory machine-readable medium claim of claim 2 above. Therefore, it is rejected for the same reasons as claim 2 above.
Allowable Subject Matter
Claims 3-9 and 12-18 are objected to as being dependent upon a rejected base claim, but would be allowable if overcomes the rejections under 35 U.S.C. 101 and 35 U.S.C.112(b) and rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Reasons of Allowable Subject Matter:
The closest prior arts Yoshida et al. (US Pub. 2015/0293936 A1) teaches a computing resource management system that calculating the number of the processing unit required for completing the predetermined arithmetic process on all of the pairs within the predetermined processing completion time (see Yoshida, Fig. 9, S302, predicted processing time > processing completion time, YES to S303 calculate required number of processing devices; [0104] lines 1-12, If the calculated predicted processing time exceeds processing completion time (Y at step S302), the processing device control unit 114 refers to the operational status information 116 to calculate the number of processing devices 120 required (as calculating a maximum capacity) for calculating correlation functions for all pairs within the processing completion time (step S303); also see claim 7, when predicted processing time required for the predetermined arithmetic process on all of the pairs of the N types of data by the plurality of processing unit exceeds predetermined processing completion time, the control unit calculates the number of the processing unit required for completing the predetermined arithmetic process on all of the pairs within the predetermined processing completion time and adds the processing unit so that the number of processing unit becomes equal to the calculated number).
Bradshaw et al. (US Pub. 2017/0255491 A1) teaches a mechanism that iteratively determining the quantity of the processing resources to meet the backlog time of the process, and finally determining and maintaining the quantity of the processing resources if that quantity of the processing resources can meet the backlog time of the process (see Bradshaw, Fig. 4, Abstract, lines 4-7, For each iteration for which the quantity of processing resources allocated to the job are determined to be adjusted, adjusting the quantity of processing resources allocated to the job; [0024] line 17, resources (e.g., data processors 114); [0005] lines 52-56, Backlog growth is a measure of time to process. Units of the time to process is at least one of the group consisting of microseconds, seconds, minutes, hours, and days; [0019] lines 1-5, The backlog can be measured in data size (e.g., bytes, megabytes), time to process (e.g., the duration for which the data is available but has not yet been processed, the expected time until all of the current backlog data is processed using current or a fixed amount of resources; [0033] lines 10-16, when the backlog volume is a backlog time, a relatively short backlog time is desired to avoid an otherwise stable state where backlog isn't growing, but where there exists a large processing latency. Shorter acceptable backlogs achieve lower latency while requiring more processing resources. In some cases, the acceptable backlog latency time is or approaches 0; [0060] lines 1-7, Iteratively determining, for the job, a backlog growth 504, includes determining a backlog growth over a first period of time, wherein the backlog growth is a measure of a growth of unprocessed data in the received data stream that is to be input into the job. For example, as the job 111 executes, it receives input from the streaming data provider 106; [0071] lines 1-5, The quantity of processing resources allocated to the job can be increased 614. For example, if the backlog growth is determined to be positive and the backlog volume is not below the target, additional resources may be allocated to the job so that the backlog growth can be halted or reversed [Examiner noted: determining/adjusting the quantity of processing resources until there is no backlog/latency time, therefore, the time of process can be (i.e., meets or exceeds a predetermined of the unit time)
Mathal et al. (US Patent. 6,501,737 B1) teaches a resource allocation system that when calculating the temporary maximum capacity of the resources, it is by repeatedly/iteratively increasing a step variable for determine the quantity of resources to meet the data delay (see Mathal, Col 3, lines 52-63, minimum number of data channel resources is determined by iteratively calculating the average data delay for an increasing number of data channel resources. For example, set a minimum quantity of data channel resources to zero, initially, and increment (104) to one. The average data delay is calculated for one data channel resource and then compared (106) to the data delay threshold. The minimum quantity of data channel resources is incremented until the average data delay is less than or equal to the data delay threshold. Thus, the minimum quantity of data channel resources is determined).
BATES et al. (US Pub. 2016/0179508 A1) teaches a mechanism that determining an execution time as determining percentage of total execution time was used for processing the identified assertions (see BATES, [0050] lines 11-12, execution time (a total of 4400 ms; [0053] lines 1-10, determines if total resource utilization exceeds the resource utilization threshold. For example, determining that resource utilization exceeds the threshold may entail determining the total amount of execution time for the executable, the amount of execution time used to process the assertions, and determining the percentage of the total execution time was used for processing the identified assertions).
MIZUNO et al. (US Pub. 2023/0169359 A1) teaches a computing system that calculates an objective variable representing processing performance of an arithmetic operation process on the basis of a descriptive variable relating to an amount of resources provided for the arithmetic operation process (See MIZUNO, [0005] the amount of resources described here is the number of CPU cores; [0156] lines 3-6, calculates an objective variable representing processing performance of an arithmetic operation process on the basis of a descriptive variable relating to an amount of resources provided for the arithmetic operation process (as executing first number of execution units equal to a capacity variable (i.e., descriptive variable)).
Cabrera et al. (US Patent. 5,854,754) teaches a binary search mechanism that determining number of clients (as number of resources) from one client to a maximum number previously calculated, wherein the binary search divides the interval in half at each iteration (see Cabrera, Col 11, lines 3-15, the algorithm tries to put together all clients of one type before continuing to the next type. For each client type, the number of clients is determined by binary search from one client to a maximum number previously calculated, which in most practical cases is less than 100. This is done once for each network type, because the number of networks present is known since it was calculated. Since a binary search divides the interval in half at each iteration, the number of iterations is, at most, logarithm in base 2 of 100, which is approximately seven).
The feature “wherein the calculating the final maximum capacity includes repeatedly reducing the temporary maximum capacity by the step variable, running a second number of execution units equal to the temporary maximum capacity in the parallel processing system until the second number of execution units have all completed running, comparing running times of the second number of execution units to a predetermined percentage of the unit time, reducing the step variable by half, and either increasing or decreasing the second number of execution units by the step variable depending upon whether the running time of at least one of the second number of execution units meets or exceeds the predetermined percentage of the unit time, until the step variable is zero, at which point the final maximum capacity of the parallel processing system is determined to be equal to the second number of execution units. wherein the operations further comprise: setting the step variable to an initial starting value; and initializing the capacity variable to zero” when taken in the context of the claims as a whole, were not found in the prior art teachings.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ZUJIA XU whose telephone number is (571)272-0954. The examiner can normally be reached M-F 9:30-5:30 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, Aimee J 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.
/ZUJIA XU/Examiner, Art Unit 2195