DETAILED ACTION
This office action is in response to claims filed 14 May 2026.
Claims 1-22 are pending.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Arguments
Applicant’s arguments, see the remarks filed 14 May 2026, with respect to the rejections made under 35 U.S.C. 101 have been fully considered and are persuasive. The rejections have been withdrawn.
Applicant’s arguments, see the remarks filed 14 May 2026, with respect to the rejections made under 35 U.S.C. 103 have been fully considered but are not persuasive.
On pages 12-15, the applicant argues:
“With respect to Sivathanu, as admitted in the Office Action dated February 18, 2026, Sivathanu does not mention distribution of ones of the computational resources of the respective compute nodes based on monitoring of the computational tasks, as set forth in claim 1. Therefore, Sivathanu cannot teach or suggest distribution of queued sets to compute nodes and queued tasks to the computation resources based on the monitoring of the completion of ones of the computational tasks, as set forth in claim 1. Thus, Sivathanu does not teach or suggest the apparatus set forth in claim 1.”
The examiner respectfully disagrees. 1) The applicant’s argument seems to conflate “computational tasks” with “queued computational tasks”; but they are different, and when the office action admits that Sivathanu does not teach distribution of computational tasks to computational resources…based on monitoring of the completion of computational tasks, this has no bearing on whether Sivathanu is capable of distributing queued computational tasks based on monitoring of the completion of computational tasks. 2) Sivathanu does teach distributing queued computational tasks and sets of tasks based on monitoring of the completion of computational tasks, at least in [0142], [0108], and [0170] below. In other words, Sivanthanu discusses monitoring for task completion, and allocating additional tasks/sets of tasks from user queues in order to maintain performance requirements. What Sivathanu does not explicitly teach, but which is taught by JEONG, is distribution of unqueued computational tasks based on monitoring of those unqueued computational tasks. Interpreted broadly, this includes scheduling tasks on computational cores based on monitoring core load, where the load comes from execution of other tasks. In this way, the combination of SIVATHANU and JEONG teach distribution of tasks based on monitoring for completion of those computational tasks. Applicant’s argument is therefore not persuasive.
On pages 12-15, the applicant argues:
“Xiao fails to overcome the deficiencies of Sivathanu and Jeong…while XIAO controls requests based on completion of groups of service requests, XIAO does not teach or suggest multilevel distribution of computational tasks, as set forth in claim 1. Thus, for this reason alone, XIAO cannot teach or suggest distribution of queued sets to compute nodes and queued tasks to the computational resources based on the monitoring of the completion of ones of the computational tasks, as set forth in claim 1.”
The examiner respectfully disagrees. MPEP 2145(IV) states “One cannot show nonobviousness by attacking references individually where the rejections are based on combinations of references“. The current rejection relies upon XIAO to teach monitoring compute nodes for the completion of sets of jobs. This, combined with the other references SIVATHANU and JEONG, teach all of the limitations set forth in the independent claims, including multilevel distribution of sets of computational tasks and tasks themselves, as well as distribution of queued sets and tasks to nodes and resources respectively (see the mapping in the 35 U.S.C. 103 rejection below). Therefore, the applicant’s argument is not persuasive.
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-20 are rejected under 35 U.S.C. 103 as being unpatentable over SIVATHANU et al. Pub. No.: US 2022/0318052 A1 (hereafter SIVATHANU), in view of JEONG Pub. No.: US 2013/0167152 A1 (hereafter JEONG), in view of XIAO et al. Pub. No.: US 2018/0260162 A1 (hereafter XIAO).
SIVATHANU, JEONG, and XIAO were cited previously
Regarding claim 1, SIVATHANU teaches the invention substantially as claimed, including:
An apparatus for multilevel distribution of computational tasks, the apparatus comprising:
interface circuitry to receive or access a batch of the computational tasks ([0075] The tenants provide AI workloads for execution on the platform via interfaces (i.e., “interface circuitry”) such as pluggable data planes 110 as described herein.);
machine readable instructions; and programmable circuitry to at least one of instantiate or execute the machine readable instructions ([0158] The examples disclosed herein may be described in the general context of computer code or machine-useable instructions, including computer-executable instructions such as program components, being executed by a computer or other machine) to:
allocate the batch of the computational tasks into sets ([0083] The regional schedulers 504 receive the regional AI workloads 518 associated with their regions from the global scheduler 502 from the set of AI workloads 512 (i.e., a set of AI workloads, representing a “batch” is subdivided, or “allocated” into multiple different groups of regional AI workloads 518)),
distribute the sets to compute nodes ([0004] The global scheduler distributes the set of AI workloads to a set of nodes (i.e., “compute nodes”) of the cloud infrastructure platform (i.e., regional AI workloads are distributed to nodes and their respective regional, or local schedulers)),
monitor the compute nodes for completion of the computational tasks ([0081] Executing AI workloads are monitored based on the performance of the cloud infrastructure platform and, based on that monitoring, the scheduling of the AI workloads is adjusted. [0170] Priority tiers with which the set of AI workloads are associated include performance requirements based on a throughput fraction value indicative of a ratio of an ideal time to completion of an AI workload to a real time to completion of the AI workload (i.e., monitoring performance of the execution of the AI workloads monitors completion times of the AI workloads by the compute nodes, thereby monitoring “for completion”)),
distribute ones of the computational tasks to computational resources of the respective compute nodes ([0004] A local scheduler of a first node of the set of nodes schedules a subset of AI workloads of the set of AI workloads distributed to the first node to be executed on the infrastructure resources (i.e., “computational resources”) of the first node)…
distribute queued sets to the compute nodes and queued tasks to the computational resources based on the monitoring of the completion of ones of the computational tasks, and cause execution of the computational tasks by the computational resources ([0142] The scheduling subsystem 700 maintains a job queue for each user. [0108] Some schedulers that do not have inter-user fairness as a goal and optimize their scheduling decisions based on minimizing job completion time may either allow User C's job to stay in the queue or move one of the existing jobs back to queue and schedule User C's job in its place. [0170] Scheduling, by the scheduler, the set of AI workloads to a set of nodes of the cloud infrastructure platform includes scheduling AI workloads to meet the performance requirements of the priority tier of each AI workload (i.e., sets of jobs from users are placed in queues, scheduled for execution on computing resources of compute nodes, executed, and returned from queues based on the monitoring of real time job completion times)).
While SIVATHANU discusses monitoring completion performance of workloads and scheduling of workloads to computational resources by a local scheduler, it does not explicitly teach:
distribute ones of the computational tasks to computational resources of the respective compute nodes based on the monitoring…of the computational tasks,
However, in analogous art that similarly monitors workloads and schedules workloads to computational resources, JEONG teaches:
distribute ones of the computational tasks to computational resources of the respective compute nodes based on the monitoring…of the computational tasks ([0009] There is provided a computing apparatus comprising: a global scheduler on a first layer configured to schedule at least one job group; a load monitor configured to collect resource state information associated with states of physical resources and set a guide with reference to the collected resource state information and set policy; and a local scheduler on a second layer configured to schedule jobs belonging to the job group according to the set guide (i.e. local scheduler schedules individual jobs on virtual cores representing “computational resources”). [0053] `CPU1` and `CPU2` represent physical cores (or physical processors). `v11` and `v21` represent virtual cores (or virtual processors) that are allocated to `CPU1.` Similarly, `v12` and `v22` represent virtual cores that are allocated to `CPU2.` `j1` to `j12` represent jobs to be executed. `CPU Info` represents resource state information collected by a load monitor 133, and `Guide 1` and `Guide 2` represent guide information for the respective first local scheduler 132a and second local scheduler 132b (i.e., monitoring load on virtual cores represent monitoring of the jobs executing on those cores that creates the load)),
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined JEONG’s teaching of scheduling jobs on computational resources by a local scheduler based on monitoring a load due to jobs on those resources, with SIVATHANU’s teaching of scheduling jobs by a local scheduler, to realize, with a reasonable expectation of success, a system that schedules jobs for execution on computational resources by a local scheduler, as in SIVATHANU, based on monitoring a load due to jobs, as in JEONG. A person having ordinary skill would have been motivated to make this combination so that proper load balancing may be performed thereby avoiding degradation of system performance (JEONG [0007]-[0008]).
While SIVATHANU and JEONG discuss execution of sets of jobs by resources of nodes, they do not explicitly teach:
monitor the compute nodes for completion of respective ones of the sets,
However, in analogous art that similarly discusses execution of sets of jobs by nodes, XIAO teaches:
monitor the compute nodes for completion of respective ones of the sets ([0060] In step 330, the controller 105 determines that the first group of service requests (i.e., “sets”) have been completely processed. In a case, after completely processing the first group of service requests, the first disk group (i.e., “compute node”) may notify the controller 105. For example, the first disk group may actively send, to the controller 105, a message indicating that the first group of service requests have been completely processed. In another case, the controller 105 may detect whether the first group of service requests have been completely processed. For example, the controller 105 may send a query message to the first disk group to determine a processing progress of the first group of service requests (i.e., querying disk groups for completion of service request groups represents “monitoring” the groups for completion of “sets”)),
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined XIAO’s teaching of a controller monitoring a disk group to determine that it has completed processing a group of service requests, and distributing subsequent groups of service requests based on the determination, with SIVATHANU and JEONG’s teaching of processing groups of tasks by sets of compute nodes, to realize, with a reasonable expectation of success, a system that processes groups of tasks by sets of compute nodes, as in SIVATHANU and JEONG, when a controller determines to distribute subsequent task groups when the compute nodes complete previous task groups, as in XIAO. A person having ordinary skill would have been motivated to make this combination to ensure that resources are being utilized optimally.
Regarding claim 2, XIAO further teaches:
the compute nodes are to provide an indication of a completion of a set ([0060] In step 330, the controller 105 determines that the first group of service requests (i.e., a first “set”) have been completely processed. In a case, after completely processing the first group of service requests, the first disk group (i.e., “compute node” that processed the first group of service requests) may notify the controller 105. For example, the first disk group may actively send, to the controller 105, a message indicating that the first group of service requests have been completely processed).
Regarding claim 3, XIAO further teaches:
the programmable circuitry is to determine whether a quantity of the sets exceeds a quantity of available ones of the compute nodes, and when the quantity of the sets exceeds the quantity of available ones of the compute nodes, distribute at least one of the sets to the available ones of the compute nodes and provide remainder sets to a set queue to define the queued sets ([0076] In step 801, a controller 105 may receive multiple groups of service requests (i.e., “sets of computational tasks”) sent by a host. In step 805, the controller 105 may obtain a request queue 901 (i.e., “set queue”)…The request queue 901 shown in FIG. 9A and FIG. 9B includes multiple groups of service requests that are sorted according to a processing sequence. [0077] In step 810, the controller 105 spins up P disk groups (i.e., “compute nodes”)…P is a natural number not less than 1 and not greater than X…For example, when the quantity of service requests in the request queue is greater than the value of X, the value of P may be equal to the value of X (i.e., the quantity of groups of service requests in the queue are greater than the number of disk groups); when the quantity of service requests in the request queue is less than the value of X, the value of P can be only less than the value of X. [0078] In step 815, the P disk groups process P groups of service requests in the request queue. In this embodiment of the present disclosure, at any moment, one disk group can process only one group of service requests…the first disk group processes the first group of service requests, the Pth disk group processes the Pth group of service requests, and so on (i.e., P groups of service requests are distributed to P disk groups, and any groups of service requests greater than P remain on the queue)).
Regarding claim 4, XIAO further teaches:
the programmable circuitry is to transfer the queued sets to the compute nodes as the compute nodes become available ([0069] In step 350, the first disk group processes a fourth group of service requests in the request queue. In this embodiment of the present disclosure, to further reduce power of the storage system, if in step 332, the controller 105 determines that when the first disk group completely processes the first group of service requests, the spin up time point of the third disk group has not arrived, the first disk group may continue to process the fourth group of service requests in the request queue 701 (i.e., when the third disk group has not been spun up, the controller transfers subsequent queued groups of service requests to the first disk group when it completes processing of the first group of service requests)).
Regarding claim 5, XIAO further teaches:
the programmable circuitry is to provide the compute nodes with the queued sets such that the compute nodes are saturated with computational tasks ([0069] In step 350, the first disk group processes a fourth group of service requests in the request queue. In this embodiment of the present disclosure, to further reduce power of the storage system, if in step 332, the controller 105 determines that when the first disk group completely processes the first group of service requests, the spin up time point of the third disk group has not arrived, the first disk group may continue to process the fourth group of service requests in the request queue 701 (i.e., when the third disk group has not been spun up, the controller transfers subsequent queued groups of service requests to the first disk group when it completes processing of the first group of service requests, thereby minimizing the time that the first disk group is inactive, or in other words, “saturating” the first disk group with groups of service requests)).
Regarding claim 6, XIAO further teaches:
a quantity of the sets provided to the compute nodes is based on a ratio of a number of the compute nodes to a number of tasks ([0078] In step 815, the P disk groups (i.e., number of compute “nodes”) process P groups of service requests (i.e., quantity of “sets”) in the request queue. In this embodiment of the present disclosure, at any moment, one disk group can process only one group of service requests (i.e., the number of service request groups to be processed represent a number of “tasks” which are provided to the disk groups in a 1:1 ratio)).
Regarding claim 7, XIAO further teaches:
the programmable circuitry is to evaluate completion of the sets, and cease monitoring based on a determination of the completion ([0115] An embodiment of the present disclosure further provides a computer program product for processing data, including a computer readable storage medium that stores program code. An instruction included in the program code is used to perform the method process described in any one of the foregoing method embodiments. [0061] In step 335, the controller 105 controls the first disk group to switch from an active state to an inactive state. Specifically, when the first disk group completely processes the first group of service requests, the controller 105 switches the first disk group from the active state to the inactive state (i.e., programmable circuitry of the computer program product enables controllers to query for processing progress, and switch disk groups to inactive states which ceases querying of processing progress)).
Regarding claim 8, XIAO further teaches:
the programmable circuitry is to provide an indication of the completion of the sets ([0115] An embodiment of the present disclosure further provides a computer program product for processing data, including a computer readable storage medium that stores program code. An instruction included in the program code is used to perform the method process described in any one of the foregoing method embodiments. [0060] In step 330, the controller 105 determines that the first group of service requests (i.e., a first “set”) have been completely processed. In a case, after completely processing the first group of service requests, the first disk group (i.e., “compute node” that processed the first group of service requests) may notify the controller 105. For example, the first disk group may actively send, to the controller 105, a message indicating that the first group of service requests have been completely processed (i.e., programmable circuitry of the computer program product enables disk groups to provide the messages of processing completion)).
Regarding claims 9-16, and 17-20, they comprise limitations similar to those of claims 1-8, and are therefore rejected for similar rationale.
Regarding claim 21, XIAO further teaches:
the distribution of the queued sets to the compute nodes and the queued tasks…is further based on the completion of the sets ([0069] In step 350, the first disk group processes a fourth group of service requests in the request queue. In this embodiment of the present disclosure, to further reduce power of the storage system, if in step 332, the controller 105 determines that when the first disk group completely processes the first group of service requests, the spin up time point of the third disk group has not arrived, the first disk group may continue to process the fourth group of service requests in the request queue 701 (i.e., distribution of queued sets and queued requests within those sets is made based on determining that a group of service requests is completely processed)).
SIVATHANU further teaches:
distribution of the…queued tasks to the computational resources ([0142] The scheduling subsystem 700 maintains a job queue for each user. [0170] Scheduling, by the scheduler, the set of AI workloads to a set of nodes of the cloud infrastructure platform includes scheduling AI workloads to meet the performance requirements of the priority tier of each AI workload (i.e., queued jobs are scheduled on node resources))).
Regarding claim 22, XIAO further teaches:
the distribution of the queued sets to the compute nodes and the queued tasks to the computational resources is performed in a simultaneous manner ([0142] The scheduling subsystem 700 maintains a job queue for each user. [0170] Scheduling, by the scheduler, the set of AI workloads to a set of nodes of the cloud infrastructure platform includes scheduling AI workloads to meet the performance requirements of the priority tier of each AI workload. [0004] A global scheduler receives a set of AI workloads to be executed, wherein each AI workload of the set of AI workloads is associated with a resource ticket value indicative of a share of resources with which that AI workload is to be executed. The global scheduler distributes the set of AI workloads to a set of nodes of the cloud infrastructure platform, wherein each node of the set of nodes includes infrastructure resources for use in executing AI workloads, and wherein the set of AI workloads are distributed to the set of nodes based on balancing resource ticket values of the AI workloads on each node of the set of nodes. A local scheduler of a first node of the set of nodes schedules a subset of AI workloads of the set of AI workloads distributed to the first node to be executed on the infrastructure resources of the first node (i.e., a queued workload set is distributed to a node, and simultaneously the queued workloads of that workload set are distributed to infrastructure resources as needed as the workloads/sets complete)).
Conclusion
THIS ACTION IS MADE FINAL. 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 MICHAEL W AYERS whose telephone number is (571)272-6420. The examiner can normally be reached M-F 8:30-5 PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Aimee Li can be reached at (571) 272-4169. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/MICHAEL W AYERS/Primary Examiner, Art Unit 2195