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 .
DETAILED ACTION
Claims 1-20 are currently pending and have been examined.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 11/25/2025 has been considered. The submission is in compliance with the provisions of 37 CFR 1.97. Form PTO-1449 is signed and attached hereto.
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 of this title, 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, 4-6, 10, 13-15 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Fahlbusch et al. (U.S. Pub. No. 20250156242 A1) in view of Chen et al. (U.S. Pub. No. 20180033114 A1), further in view of Perumalla et al. (U.S. Pub. No. 20230082680 A1), and further in view of Lee et al. (U.S. Pub. No. 20250053467 A1).
As per claim 1, Fahlbusch teaches the invention substantially as claimed including a method comprising:
maintaining, using a controller … a plurality of workers implemented using a plurality of cluster environments, each cluster environment hosting an agent that communicates with the controller and having graphics processing unit (GPU) resources accessible to at least a subset of the plurality of workers (Fig. 2 and par. 0026 distributed computing environment 202 is shown to include a cluster controller 204 that is communicatively coupled to clusters 206, 208, and 210 [cluster environments] … The cluster 206 is shown to include a compute node 212, a compute node 214, a user device 216, a user device 218 [workers], and a cluster agent 220. The cluster 208 is shown to include a compute node 222, a user device 224, a user device 226, a user device 228, and a cluster agent 230. The cluster 210 is shown to include a user device 232, a user device 234, a user device 236, user device 238, and a cluster agent 240; par. 0013 resources such as Central Processing Unit (CPU) resources, Graphics Processing Unit (GPU) resources, memory, storage, network connectivity, or bandwidth may be utilized);
Fahlbusch does not expressly disclose: maintaining, using a controller, a plurality of queues for a plurality of workers implemented using a plurality of cluster environments …; storing a first execution request of an entity in a first queue of the plurality of queues, the first execution request of the entity being associated with a first cloud function, and the first queue of the plurality of queues being associated with the first cloud function.
However, Chen teaches: maintaining, using a controller, a plurality of queues for a plurality of workers implemented using a plurality of cluster environments … ; storing a first execution request of an entity in a first queue of the plurality of queues … (Fig. 2, command queues 175 and 176; par. 0022 The first command queue 175 stores the commands that are issued by the first API 121 via the first driver 131 to direct the GPU 120 to execute the first kernel code. The second command queue 176 stores the commands that are issued by the second API 122 via the second driver 132 to direct the GPU 120 to execute the second kernel code; par. 0023 If a requested operation indicates the concurrent mode of executing two types of kernel codes, the shader cores may be partitioned into two non-overlapping sets of shader cores: a first set of shader cores (“the first shader core set”) [first cluster] to execute the first kernel code, and a second set of shader cores (“the second shader core set”) [second cluster] to execute the second kernel code).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the technique of maintaining multiple command queues for storing commands issued by multiple APIs of Chen with the system and method of Fahlbusch resulting in a system and method in which a cloud controller maintains a plurality of queues for storing execution requests issued by different entities to be performed by a plurality of compute nodes of one or more clusters. One of ordinary skill in the art would have been motivated to make this combination for the purpose of significantly improving performance of a graphics system (par. 0006). Further, maintaining a plurality of queues would provide better load balancing and resource optimization of the clusters.
Fahlbusch and Chen do not expressly teach: receiving, from a first worker of the plurality of workers implemented using a first cluster environment of the plurality of cluster environments, a first execution result corresponding to the first execution request of the entity; and causing the first execution result to be provided to the entity.
However, Perumalla teaches: receiving, from a first worker of the plurality of workers implemented using a first cluster environment of the plurality of cluster environments, a first execution result corresponding to the first execution request of the entity; and causing the first execution result to be provided to the entity (par. 0063 When completed, the assigned node sends the completed assignment back to the computing device. The computing device then assembles (block 405) the completed task from the completed assignments and distributes the completed computing task back to the device that initially requested the task).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the technique distributing tasks assignments to registered nodes, receiving completed task assignments from the registered nodes and providing the completed task to the requesting device of Perumalla with the system and method of Fahlbusch and Chen resulting in a system and method in which the completed tasks results are received from the registered cluster compute nodes and provided to the requesting device/entity as in Perumalla. One of ordinary skill in the art would have been motivated to make this combination for the purpose of improving performance and to filter requests (par. 0052).
Fahlbusch, Chen and Perumalla do not expressly disclose: the first execution request of the entity being associated with a first cloud function, and the first queue of the plurality of queues being associated with the first cloud function.
However, Lee teaches: the first execution request of the entity being associated with a first cloud function, and the first queue of the plurality of queues being associated with the first cloud function (par. 0036 In one embodiment, the metrics collector 210 includes a request queue 212 for each of the serverless functions 204 [cloud functions]. The request queue 212 of a serverless function 204 includes the pending requests for the serverless function 204 [cloud function], across all of the instances of the serverless function 204; par. 0037 scaler 208 is configured to obtain a length of the request queue 212 for each serverless function 204 in the cloud computing system 200).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the technique of storing pending requests for serverless functions in corresponding request queues associated with serverless functions of Lee with the system and method of Fahlbusch, Chen and Perumalla resulting in a system that provides for storing requests for serverless functions in corresponding request queues associated with the serverless functions as in Lee. One of ordinary skill in the art would have been motivated to make this combination for the purpose of allowing developers to build applications with reduced operational overhead, rapid development cycles, and cost-efficient resource usage (par. 0002).
As per claim 4, Chen further teaches: receiving a second execution request (par. 0014 may receive commands from a driver module for executing a first kernel code of a first programming framework and a second kernel code of a second programming framework); storing the second execution request in the first queue of the plurality of queues (par. 0022 The first command queue 175 stores the commands that are issued by the first API 121 via the first driver 131 to direct the GPU 120 to execute the first kernel code. The second command queue 176 stores the commands that are issued by the second API 122 via the second driver 132 to direct the GPU 120 to execute the second kernel code). Perumalla further teaches: receiving a second execution result corresponding to the second execution request from the first worker of the plurality of workers implemented using the first cluster environment of the plurality of cluster environments (par. 0063 When completed, the assigned node sends the completed assignment back to the computing device. The computing device then assembles (block 405) the completed task from the completed assignments).
As per claim 5, Chen further teaches: receiving a second execution request (par. 0014 may receive commands from a driver module for executing a first kernel code of a first programming framework and a second kernel code of a second programming framework); storing the second execution request in the first queue of the plurality of queues (par. 0022 The first command queue 175 stores the commands that are issued by the first API 121 via the first driver 131 to direct the GPU 120 to execute the first kernel code. The second command queue 176 stores the commands that are issued by the second API 122 via the second driver 132 to direct the GPU 120 to execute the second kernel code). Perumalla further teaches: receiving a second execution result corresponding to the second execution request from a second worker of the plurality of workers (par. 0063 each assigned node is assigned a computing assignment to complete. When completed, the assigned node[s] sends the completed assignment back to the computing device.).
As per claim 6, Fahlbusch further teaches: wherein the second worker of the plurality of workers is implemented using a second cluster environment of the plurality of cluster environments (Fig. 2, cluster 208 [second cluster environment], compute node 222 [second worker]).
As per claim 10, it is a system having similar limitations as claim 1. Thus, claim 10 is rejected for the same rationale as applied to claim 1. Fahlbusch further teachers: one or more processing devices (par. 0048 The cluster workload management system 122 may be implemented using hardware (e.g., one or more processors of one or more machines)).
As per claim 13, it is a system having similar limitations as claim 4. Thus, claim 13 is rejected for the same rationale as applied to claim 4.
As per claim 14, it is a system having similar limitations as claim 5. Thus, claim 14 is rejected for the same rationale as applied to claim 5.
As per claim 15, it is a system having similar limitations as claim 6. Thus, claim 15 is rejected for the same rationale as applied to claim 6.
As per claim 19, it is a processor having similar limitations as claim 1. Thus, claim 19 is rejected for the same rationale as applied to claim 1. Fahlbusch further teaches: one or more processing units (par 0048 The cluster workload management system 122 may be implemented using hardware (e.g., one or more processors of one or more machines)).
Claims 2, 11 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Fahlbusch in view of Chen, Perumalla and Lee, further in view of Atur et al. (U.S. Pub. No. 20210406079 A1).
As per claim 2, Chen further teaches: prior to storing the first execution request of the entity in the first queue of the plurality of queues (par. 0022 The first command queue 175 stores the commands that are issued by the first API 121):
Fahlbusch, Chen, Perumalla and Lee do not expressly teach: receiving a cluster registration from a first agent hosted by the first cluster environment, the cluster registration indicating one or more characteristics of GPU resources of the first cluster environment; generating a worker deployment request for execution by the first agent to deploy the first worker using the first cluster environment.
However, Atur teaches: receiving a cluster registration from a first agent hosted by the first cluster environment, the cluster registration indicating one or more characteristics of GPU resources of the first cluster environment (par. 0127 Nodes may be arranged in clusters such that a maximum number of workers 516 per cluster may be defined. For example, each cluster may register with the worker management module 1608 following instantiation and report a number of workers 516 that the cluster can execute simultaneously … Registering may further include reporting resources of a cluster and/or node that are available for workers … For example, limits may also be defined in terms of resources of a node or cluster: memory, processing cores, GPUs (graphics processing units), IP addresses, or other network resources available to be allocated to workers 516); and generating a worker deployment request for execution by the first agent to deploy the first worker using the first cluster environment (par. 0079 The workflow orchestrator 506 may then invoke 918 the creation of W workers. For example, a spawning module 906 may be programmed to generate workers 516 in response to receiving the instruction).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the technique of registering a cluster with a cluster management module of Atur with the system and method of Fahlbusch, Chen, Perumalla and Lee resulting in a system and method which provides for registering clusters with a controller and invoking creation/deployment of workers using a cluster. One of ordinary skill in the art would have been motivated to make this combination in order to facilitate reporting of resources of a cluster and/or node that are available for workers and to evaluate whether computational resources required by a worker that needs to be added are available to be allocated to that worker (par. 0127). Further, this would provide for smart task/request scheduling and optimized resource utilization.
As per claim 11, it is a system having similar limitations as claim 2. Thus, claim 11 is rejected for the same rationale as applied to claim 2.
As per claim 20, it is a processor having similar limitations as claim 2. Thus, claim 20 is rejected for the same rationale as applied to claim 2.
Claims 3 and 12 are rejected under 35 U.S.C. 103 as being unpatentable over Fahlbusch in view of Chen, Perumalla, Lee and Atur, further in view of Joshi et al. (U.S. Pub. No. 20230251976 A1), further in view of Parker et al. (U.S. Pub. No. 20240014831 A1).
As per claim 3, Fahlbusch, Chen, Perumalla, Lee and Atur do not expressly teach: receiving a worker registration from the first worker implemented using the first cluster environment.
However, Joshi teaches: receiving a worker registration from the first worker implemented using the first cluster environment (par. 0006 wherein the node registry is configured to: receive registration requests from the plurality of nodes).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the technique of receiving a worker registration from a worker implemented in a cluster of Joshi with the system and method of Fahlbusch, Chen, Perumalla and Atur resulting in a system and method in which a cluster controller receives registrations from a worker nodes implemented in a cluster as in Joshi. One or ordinary skill in the art would have been motivated to make this combination for the purpose of minimizing impact during node failure and facilitates the efficient management, discovery, and synchronization of a cluster system (0024).
Fahlbusch, Chen, Perumalla, Lee, Atur and Joshi do not expressly describe: associating the first worker with the first queue of the plurality of queues.
However, Parker teaches: associating the first worker with the first queue of the plurality of queues (par. 0275 the first data queue can be associated with one of the worker cores).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the technique of association a first data que with a worker core of Parker with the system and method of Fahlbusch, Chen, Perumalla, Lee, Atur and Joshi resulting in a system and method in which a worker of a cluster is associated with a particular queue. One of ordinary skill in the art would have been motivated to make this combination for the purpose of providing workload isolation, targeted resource allocation by directing specific requests to workers with matching capabilities.
As per claim 12, it is a system having similar limitations as claim 3. Thus, claim 13 is rejected for the same rationale as applied to claim 3.
Claims 7 and 16 are rejected under 35 U.S.C. 103 as being unpatentable over Fahlbusch in view of Chen, Perumalla and Lee, further in view of Mattia et al. “Virtual earth cloud: a multi-cloud framework for enabling geosciences digital ecosystems”
As per claim 7, Fahlbusch, Chen, Perumalla and Lee do not expressly teach: wherein the first execution request comprises input data and at least one of: an artificial intelligence (AI) model identifier; a virtualized execution environment identifier; or an identifier of a plurality of virtualized execution environments.
However, Mattia teaches: wherein the first execution request comprises input data and at least one of: an artificial intelligence (AI) model identifier; a virtualized execution environment identifier; or an identifier of a plurality of virtualized execution environments (page 56 lines 16-17 The request must specify the identifier of the model to be executed and the list of input data identifiers).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the technique using requests specifying an identifier of a model to be executed and input data identifiers Mattia with the system and method of Fahlbusch, Chen, Perumalla, and Lee resulting in a system and method in which an execution request specifies an identifier of a model to be executed and input data as in Mattia. One of ordinary skill in the art would have been motivated to make this combination for the purpose providing precise routing of the execution request to worker devices, allow any backend worker to handle the request, improving load balancing.
As per claim 16, it is a system having similar limitations as claim 7. Thus, claim 16 is rejected for the same rationale as applied to claim 7.
Claims 8 and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Fahlbusch in view of Chen, Perumalla and Lee, and further in view of Shah et al. (U.S. Pub. No. 20240022628 A1).
As per claim 8, Fahlbusch teaches: using the first cluster environment of the plurality of cluster environments (Fig. 2, shows a distributed computing environment, having a plurality of clusters 206 - 210 comprising plurality of compute nodes [workers])
Fahlbusch, Chen, Perumalla and Lee do not expressly teach: receiving periodic heartbeat requests from the first worker of the plurality of workers.
However, Shah teaches: receiving periodic heartbeat requests from the first worker of the plurality of workers (par. 0086 The multiplexer process also receives a heartbeat signal from the worker processes indicating the health of the worker process).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed inventio to combine the technique of receiving heartbeat signals from worker processes of Shah with the system and method of Fahlbusch, Chen, Perumalla and Lee resulting in a system and method which provides for receiving by a cluster controller a heartbeat signal from a worker/node implemented using a cluster environment as in Shah. One of ordinary skill in the art would have been motivated to make this combination for the purpose of indicating the health/status of a worker process (par. 0086).
As per claim 17, it is a system having similar limitations as claim 8. Thus, claim 17 is rejected for the same rationale as applied to claim 8.
Claims 9 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Fahlbusch in view of Chen, Perumalla and Lee, and further in view of Ishimura et al. (U.S. Pub. No. 20220011736 A1).
As per claim 9, Fahlbusch, Chen, Perumalla and Lee do not expressly teach: receiving a progress indicator artifact from the first worker of the plurality of workers implemented using the first cluster environment of the plurality of cluster environments.
However, Ishimura teaches: comprising receiving a progress indicator artifact from the first worker of the plurality of workers implemented using the first cluster environment of the plurality of cluster environments (par. 0028 The receiving means further receives progress information indicating progress of a remedy for the anomaly from each terminal device; par. 0079 When the information processor has received the notification of the progress indicating the completion of the work from the terminal device of worker B).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the technique of receiving a progress indication from a device of Ishimura with the system and method of Fahlbusch, Chen, Perumalla and Lee resulting in a system and method in which cluster controller receives progress indication from workers in a cluster environment. One of ordinary skill would have been motivated to make this combination for the purpose of achieving the effect of recovering from each anomaly in the event of a plurality of anomalies (par. 0032).
As per claim 18, it is a system having similar limitations as claim 9. Thus, claim 18 is rejected for the same rationale as applied to claim 9.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Willy W. Huaracha whose telephone number is (571)270-5510. The examiner can normally be reached on M-F 8:30-5:00pm.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Bradley Teets can be reached on (571) 272-3338. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/WH/
Examiner, Art Unit 2195
/BRADLEY A TEETS/Supervisory Patent Examiner, Art Unit 2197