DETAILED ACTION
Claims 1-20 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 .
Examiner Notes
Examiner cites particular columns and line numbers in the references as applied
to the claims below for convenience of the applicant. Although the specified citations are
representative of the teachings in the art and are applied to the specific limitations within
the individual claim, other passages and figures may apply as well. It is respectfully
requested that, in preparing responses, the applicant fully consider the references cited
in their entirety as potentially teaching all or part of the claimed invention, as well as the
context of the passage as taught by the prior art or disclosed by the examiner.
Claim Rejections - 35 USC § 112
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.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), 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 applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claims 1, 12, and 20 recite the limitation determine that a first dependency of the set of dependencies is satisfied by a core of the plurality of cores in the GPU. It is unclear whether “determine that a first dependency of the set of dependencies is satisfied” is in reference to a core in the GPU or the one or more processors of claim 1. Under the most reasonable interpretation, given the specification, the examiner comes to understand this limitation as follows: “determine, by the one or more processors, that a first dependency of the set of dependencies is satisfied by a core of the plurality of cores in the GPU”. Corrections to this limitation of the claims are required to more accurately represent the interpretation above. If the interpretation above is inaccurate, corrections to this limitation of the claims are required to more clearly define the scope of the claims. Claims 2-11 and 13-19 depend on claims 1 and 12 and inherit this rejection.
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 (abstract idea) without significantly more.
Step 1:
Claim 1 is directed to One or more processors comprising: a series of parts, and is therefore directed to a machine, which is one of the four statutory categories.
Step 2A, Prong One:
Claim 1 recites the limitations:
based at least in part on a topological ordering associated with the processing operations;
determine that a first dependency of the set of dependencies is satisfied all of which can be performed in the human mind through observation, evaluation, judgement and opinion, with the aid of pen and paper, and are therefore reciting a
mental process.
Accordingly, claim 1 recites a judicial exception (i.e., an abstract idea).
Examiner notes that the interpretation of the recited system as a “mental
process” is reasonable, because the broadest reasonable interpretation of the claim
language recites an embodiment with one compute operation, one component, and one
compute instance— a human can mentally replicate this embodiment since no functions
specific to computer technology are recited.
Step 2A, Prong Two:
The additional elements recited in claim 1 include:
One or more processors comprising: one or more circuits to:
receive data associated with a request to perform one or more processing operations
using a graphics processing unit (GPU) comprising a plurality of cores
the request associated with a plurality of dependencies comprising a first dependency and a second dependency
cause the plurality of cores involved in processing the request to perform the one or more processing operations in parallel
by a core of the plurality of cores in the GPU
and cause the core associated with the first dependency to provide an indication that the first dependency is satisfied to a core associated with a second dependency.
Regarding the additional elements (i), (iii), (v) and (vi), the limitations recited are mere instructions to implement the limitations which can be performed in the human mind, i.e., the judicial exception, on a computer, which is not indicative of integration into a practical application. See MPEP 2106.04(d) and 2106.05(f)
Regarding the additional elements (ii) and (iv), the limitations recited amount to insignificant extra-solution activity of mere data gathering, as it is merely gathering the data for the judicial exception, which is not indicative of integration into a practical application. See MPEP 2106.04(d) and 2106.05(g).
Regarding the additional element (vii), the limitation recited amounts to insignificant extra-solution activity of insignificant application, as it is merely instructions to perform based upon the judicial exception, which is not indicative of integration into a practical application. See MPEP 2106.04(d) and 2106.05(g).
Furthermore, the combination of additional elements results in mere instructions to implement the exception on a computer, gathering the data for the exception, responding to the exception, which is insignificant extra-solution activity. This combination of additional elements fails to integrate the judicial exception into a practical application. See MPEP 2106.04(d).
Step 2B:
Regarding the additional elements (i), (iii), (v) and (vi), the limitations are reciting generic computing components to perform the steps which can be performed in the human mind, which is mere instructions to apply the exception. The courts have found adding mere instructions to apply the exception is not enough to amount to significantly more than the recited judicial exception. See MPEP 2106.05(b) and 2106.05(g).
Regarding the additional elements (ii) and (iv), the limitations recited are insignificant extra-solution activity which amounts to mere data gathering. Further, the additional element (ii) is receiving or transmitting data over a network, which has been identified by the courts as well-understood, routine, and conventional activity. See MPEP 2106.05(d). The courts have found adding insignificant extra-solution activity and well-understood, routine, and conventional activity is not enough to amount to significantly more than the recited judicial exception. See MPEP 2106.05(a) and 2106.05(g).
Regarding the additional element (vii), the limitation recited is insignificant extra-solution activity which amounts to insignificant application and mere instructions to apply the exception. The courts have found adding insignificant extra-solution activity and mere instructions to apply the exception do not amount to significantly more than the recited judicial exception. See MPEP 2106.05(a) and 2106.05(g).
The combination of these additional elements amounts to a machine comprising parts which can be performed mentally implemented by generic computing components, and comprising a step of insignificant extra-solution and well-understood, routine and
conventional activity. Therefore, the additional elements, when considered individually
and in combination, fail to add an inventive concept to the claim.
Consequently, claim 1 as a whole does not amount to significantly more than the
recited judicial exceptions and the claim is not eligible.
Claim 2 is dependent on claim 1, and therefore inherits the same judicial exception recited in claim 1. Further, claim 2 recites the limitation determine that one or more operations associated with the first dependency were executed by the one or more circuits, and that execution of the one or more operations was successful which can be performed in the human mind through observation, evaluation, judgement and opinion, with the aid of pen and paper, and are therefore reciting a mental process.
Claim 2 does not recite any additional elements beyond those recited in claim 1. Accordingly, for the same reasons presented with respect to claim 1, the additional elements are not indicative of integration into a practical application, nor do they amount to significantly more than the recited judicial exceptions. Thus, claim 2 is not eligible.
Claim 3 is dependent on claim 1, and therefore inherits the same judicial exception recited in claim 1. Further, claim 3 recites the limitation determine that a precondition associated with the second dependency is not satisfied; and forgo satisfying the second dependency based at least on determining that the precondition associated with the second dependency is not satisfied which can be performed in the human mind through observation, evaluation, judgement and opinion, with the aid of pen and paper, and are therefore reciting a mental process.
Claim 3 does not recite any additional elements beyond those recited in claim 1. Accordingly, for the same reasons presented with respect to claim 1, the additional elements are not indicative of integration into a practical application, nor do they amount to significantly more than the recited judicial exceptions. Thus, claim 3 is not eligible.
Claim 4 is dependent on claim 3, and therefore inherits the same judicial exceptions recited in claims 1 and 3. Claim 4 recites the limitation associated with satisfaction of the first dependency and a third dependency which can be performed in the human mind through observation, evaluation, judgement and opinion, with the aid of pen and paper, and are therefore reciting a mental process.
Claim 4 does not recite any additional elements beyond those recited in claim 1. Accordingly, for the same reasons presented with respect to claim 1, the additional elements are not indicative of integration into a practical application, nor do they amount to significantly more than the recited judicial exceptions. Thus, claim 4 is not eligible.
Claim 5 is dependent on claim 3, and therefore inherits the same judicial exceptions recited in claims 1 and 3. Claim 5 recites the limitations determine that the precondition associated with the second dependency is satisfied based on receiving the indication that the third dependency is satisfied; and based at least on determining that the precondition associated with the second dependency is satisfied which can be performed in the human mind through observation, evaluation, judgement and opinion, with the aid of pen and paper, and are therefore reciting a mental process.
Claim 5 recites the additional element receive an indication that a third dependency is satisfied after forgoing satisfying the second dependency which
amounts to mere data gathering, and is therefore insignificant extra-solution activity. Claim 5 also recites the additional element execute one or more operations associated with the second dependency, which amounts to mere instructions to apply the exception. These additional elements of mere instructions to apply the exception and insignificant extra-solution activity are not indicative of integration into a practical application. Even when considered in combination with the additional elements of claim 1, the additional elements comprise mere instructions to apply the exception and insignificant extra-solution activity, which are not indicative of integration into a practical application.
This additional element of insignificant extra-solution activity is further considered to be the well-understood, routine and conventional activity identified by the courts of receiving and transmitting data over a network. See MPEP 2106.05(d). These additional elements are not enough to amount to significantly more than the recited judicial exceptions. Even when considered in combination with the additional elements of claim 1, the additional elements do not provide an inventive concept and do not amount to significantly more than the recited judicial exceptions. Thus, claim 5 is not eligible.
Claim 6 is dependent on claim 5, and therefore inherits the same judicial exceptions recited in claims 1, 3 and 5. The additional elements recited in claims 1, 3, and 5 were not indicative of integration into a practical application as they recite mere instructions to apply the exception and steps of insignificant extra-solution activity.
Claim 6 recites the additional element receive the indication that the third dependency is satisfied from a core that is the same as the core corresponding to the second dependency which amounts to mere data gathering, and is therefore insignificant extra-solution activity. This additional element of insignificant extra-solution activity is not indicative of integration into a practical application. Even when considered in combination with the additional elements of claim 1, the additional elements comprise mere instructions to apply the exception and insignificant extra-solution activity, which are not indicative of integration into a practical application.
This additional element of insignificant extra-solution activity is further considered to be the well-understood, routine and conventional activity identified by the court of receiving or transmitting data over a network. See MPEP 2106.05(d). This additional element is not enough to amount to significantly more than the recited judicial exceptions. Even when considered in combination with the additional elements of claim 1, the additional elements do not provide an inventive concept and do not amount to significantly more than the recited judicial exceptions. Thus, claim 6 is not eligible.
Claim 7 is dependent on claim 5, and therefore inherits the same judicial exceptions recited in claims 1, 3 and 5. The additional elements recited in claims 1, 3, and 5 were not indicative of integration into a practical application as they recite mere instructions to apply the exception and steps of insignificant extra-solution activity.
Claim 7 recites the additional element receive the indication that the third dependency is satisfied from a core that is different as the core corresponding to the second dependency which amounts to mere data gathering, and is therefore insignificant extra-solution activity. This additional element of insignificant extra-solution activity is not indicative of integration into a practical application. Even when considered in combination with the additional elements of claim 1, the additional elements comprise mere instructions to apply the exception and insignificant extra-solution activity, which are not indicative of integration into a practical application.
This additional element of insignificant extra-solution activity is further considered to be the well-understood, routine and conventional activity identified by the court of receiving or transmitting data over a network. See MPEP 2106.05(d). This additional element is not enough to amount to significantly more than the recited judicial exceptions. Even when considered in combination with the additional elements of claim 1, the additional elements do not provide an inventive concept and do not amount to significantly more than the recited judicial exceptions. Thus, claim 7 is not eligible.
Claim 8 is dependent on claim 5, and therefore inherits the same judicial exceptions recited in claims 1, 3 and 5. The additional elements recited in claims 1, 3, and 5 were not indicative of integration into a practical application as they recite mere instructions to apply the exception and steps of insignificant extra-solution activity.
Claim 8 recites the additional element communicate each indication to respective cores in accordance with a predetermined network architecture which amounts to merely indicating a field of use or technological environment in which to apply the exception. This additional element of linking the exception to a technological environment is not indicative of integration into a practical application. Even when considered in combination with the additional elements of claims 1, 3, and 5, the additional elements comprise mere instructions to apply the exception, insignificant extra-solution activity, and an attempt to limit the exception to a technological environment, which are not indicative of integration into a practical application.
This additional element, even when limiting the use of the idea to one particular environment, is not enough to amount to significantly more than the recited judicial exceptions. Even when considered in combination with the additional elements of claims 1, 3, and 5, the additional elements do not provide an inventive concept and do not amount to significantly more than the recited judicial exceptions. Thus, claim 8 is not eligible.
Claim 9 is dependent on claim 8, and therefore inherits the same judicial exceptions recited in claims 1, 3 and 5. The additional elements recited in claims 1, 3, and 5 were not indicative of integration into a practical application as they recite mere instructions to apply the exception and steps of insignificant extra-solution activity.
Claim 9 recites the additional element the predetermined network architecture is associated with a butterfly network which amounts to merely indicating a field of use or technological environment in which to apply the exception. This additional element of linking the exception to a technological environment is not indicative of integration into a practical application. Even when considered in combination with the additional elements of claims 1, 3, and 5, the additional elements comprise mere instructions to apply the exception, insignificant extra-solution activity, and an attempt to limit the exception to a technological environment, which are not indicative of integration into a practical application.
This additional element, even when limiting the use of the idea to one particular environment, is not enough to amount to significantly more than the recited judicial exceptions. Even when considered in combination with the additional elements of claims 1, 3, and 5, the additional elements do not provide an inventive concept and do not amount to significantly more than the recited judicial exceptions. Thus, claim 9 is not eligible.
Claim 10 is dependent on claim 5, and therefore inherits the same judicial exceptions recited in claims 1, 3 and 5. Further, claim 10 recites the limitations determine that the plurality of dependencies associated with the request are satisfied based at least on executing the one or more operations associated with the second dependency; and based at least on determining that the plurality of dependencies associated with the request are satisfied which can be performed in the human mind through observation, evaluation, judgement and opinion, with the aid of pen and paper, and are therefore reciting a mental process.
Claim 10 recites the additional limitation satisfy the request which amounts to mere data gathering and outputting, and is therefore insignificant extra-solution activity. This additional element of insignificant extra-solution activity is not indicative of integration into a practical application. Even when considered in combination with the additional elements of claims 1, 3, and 5, the additional elements comprise mere instructions to apply the exception and insignificant extra-solution activity, which are not indicative of integration into a practical application.
This additional element of insignificant extra-solution activity is further considered to be the well-understood, routine and conventional activity identified by the court of receiving or transmitting data over a network. See MPEP 2106.05(d). This additional element is not enough to amount to significantly more than the recited judicial exceptions. Even when considered in combination with the additional elements of claims 1, 3, and 5, the additional elements do not provide an inventive concept and do not amount to significantly more than the recited judicial exceptions. Thus, claim 10 is not eligible.
Claim 11 is dependent on claim 1, and therefore inherits the same judicial exceptions recited in claim 1. The additional elements recited in claim 1 were not indicative of integration into a practical application as they recite mere instructions to apply the exception and steps of insignificant extra-solution activity.
Claim 11 recites the additional element a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system implemented using a robot; an aerial system; a medical system; a boating system; a smart area monitoring system; a system for performing deep learning operations; a system for performing simulation operations; a system for generating or presenting virtual reality (VR) content, augmented reality (AR) content, or mixed reality (MR) content; a system for performing digital twin operations; a system implemented using an edge device; a system incorporating one or more virtual machines (VMs); a system for generating synthetic data; a system implemented at least partially in a data center; a system for performing conversational artificial intelligence (AI) operations; a system for performing generative AI operations; a system implementing language models; a system implementing large language models (LLMs); a system implementing vision language models (VLMs); a system for hosting one or more real-time streaming applications; a system for performing light transport simulation; a system for performing collaborative content creation for 3D assets; or a system implemented at least partially using cloud computing resources which amounts to merely indicating a field of use or technological environment in which to apply the exception. This additional element of linking the exception to a technological environment is not indicative of integration into a practical application. Even when considered in combination with the additional elements of claim 1, the additional elements comprise mere instructions to apply the exception, insignificant extra-solution activity, and an attempt to limit the exception to a technological environment, which are not indicative of integration into a practical application.
This additional element, even when limiting the use of the idea to one particular environment, is not enough to amount to significantly more than the recited judicial exceptions. Even when considered in combination with the additional elements of claim 1, the additional elements do not provide an inventive concept and do not amount to significantly more than the recited judicial exceptions. Thus, claim 11 is not eligible.
Claim 12 recites A system comprising: one or more processors to perform operations comprising: the parts of the machine of claim 1. Thus, for the same reasons presented with respect to claim 1, claim 12 is rejected because the claimed invention is directed to an abstract idea without significantly more.
For clarity of the record, the additional elements recited above amount to mere instructions to apply the exception, which is neither indicative of integration into a practical application more amounts to significantly more than the recited judicial exceptions.
Claims 13-19 recite substantially the same limitations as those recited in claims 2-7 and 11, respectively, applied to the system of claim 12. Thus, for the same reasons presented with respect to claims 2-7 and 11, claims 13-19 are directed to an abstract idea without significantly more and are not eligible.
Claim 20 recites A method comprising: the steps of the machine of claim 1. Thus, for the same reasons presented with respect to claim 1, claim 20 is rejected because the claimed invention is directed to an abstract idea without significantly more.
For clarity of the record, the additional elements recited above amount to mere instructions to apply the exception, which is neither indicative of integration into a practical application more amounts to significantly more than the recited judicial exceptions.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1-2, 11-13, and19-20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Hosmani et al. (U.S. Pub. No. 2018/0276040 A1), hereinafter Hosmani.
Regarding claim 1, Hosmani teaches One or more processors ([0015] – “The client 110 may represent one or more computing devices that are configured to submit one or more job definitions 111 to the job scheduler 100.”; [0053] – “computing device 3000 includes one or more processors 3010A-3010N”) comprising: one or more circuits to:
receive data associated with a request to perform one or more processing operations using a graphics processing unit (GPU) comprising a plurality of cores ([0016] – “A job definition may describe one or more tasks to be performed by computing resources 191 in the provider network 190. […] a job definition may include or reference program instructions to be executed in processing the task […] A job definition may include or reference a set of input data to be processed using the program instructions, potentially using multiple copies of an application or set of program code to process different elements of the input data sequentially or concurrently”; [0029] “The provider network 190 may include a plurality of computing resources 191. […] The configuration of a computing resource may include its instance type, hardware capabilities (e.g., […] presence or absence of specialized coprocessors such as a graphics processing unit (GPU) […]”), the request associated with a plurality of dependencies ([0017] – “graph 130 may include nodes representing jobs and edges representing dependency relationships from job to job. In the graph 130, the dependency relationships may indicate which nodes depend on other nodes and which nodes are depended on by other nodes.”) comprising a first dependency (FIG. 2, Job 112D) and a second dependency (FIG. 2, Job 112F);
cause the plurality of cores involved in processing the request to perform the one or more processing operations in parallel ([0043] – “the job […] may be executed using a job execution component 192A of a computing resource 191A of the provider network 190”) based at least in part on a topological ordering associated with the processing operations ([0018] – “The graph 130 may be constructed initially using any suitable algorithm for topological sorting, e.g., Kahn's algorithm.”);
determine that a first dependency of the set of dependencies is satisfied by a core of the plurality of cores in the GPU ([0038] – “Satisfaction of a dependency may be determined based (at least in part) on an event (such as event 194) associated with a job that the dependency involves. For example, if a particular job was dependent on completion of an earlier-submitted job, and that earlier-submitted job has completed execution, then the particular job may be deemed runnable by evaluation of its corresponding node in the graph 130 in response to an execution event associated with the earlier-submitted job.”; [0041] – “As also shown in the example of FIG. 2, in light of the event 194, the node corresponding to job 112B may be evaluated to determine whether it is runnable (i.e., for runnability). The evaluation and analysis may be performed automatically (e.g., without necessarily requiring user input) and programmatically (e.g., by execution of program instructions). The job 112B may be evaluated for runnability in response to the event 194 that is relevant to that job 112B, such as an execution event involving a job on which the job 112B depends”);
and cause the core associated with the first dependency to provide an indication that the first dependency is satisfied to a core associated with a second dependency ([0019] – “The various functions of the job scheduler 100 may be performed in response to events that are generated internally or externally with respect to the scheduler. […] when execution of a job completes using the computing resources 191, any jobs dependent on that executed job may be updated in the graph 130 to remove the dependency relationship with the executed job and may also be evaluated for runnability, without evaluating unrelated nodes in the graph. Events […] may include submission of a new job, initiation of execution of a job, successful execution of a job, failed execution of a job, successful execution of a threshold percentage of a job, and so on”).
Regarding claim 2, Hosmani teaches The one or more processors of claim 1. Hosmani further teaches wherein, when determining the first dependency is satisfied, the one or more circuits are to:
determine that one or more operations associated with the first dependency were executed by the one or more circuits, and that execution of the one or more operations was successful ([0043] – “The execution event 195 may indicate a condition such as the initiation of job execution, the successful completion of job execution, the failed completion of job execution, the successful or failed completion of job execution, the successful completion of a threshold percentage (e.g., 60%) of the tasks in a job, and so on”).
Regarding claim 11, Hosmani teaches The one or more processors of claim 1. Hosmani further teaches wherein the one or more circuits is comprised in at least one of:
a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system implemented using a robot; an aerial system; a medical system; a boating system; a smart area monitoring system; a system for performing deep learning operations; a system for performing simulation operations; a system for generating or presenting virtual reality (VR) content, augmented reality (AR) content, or mixed reality (MR) content; a system for performing digital twin operations; a system implemented using an edge device; a system incorporating one or more virtual machines (VMs); a system for generating synthetic data; a system implemented at least partially in a data center ([0030] – “The provider network 190 may include numerous data centers hosting various resource pools, such as collections of physical and/or virtualized computer servers, storage devices, networking equipment and the like, that are used to implement and distribute the infrastructure and services offered by the provider.”); a system for performing conversational artificial intelligence (AI) operations; a system for performing generative AI operations; a system implementing language models; a system implementing large language models (LLMs); a system implementing vision language models (VLMs); a system for hosting one or more real-time streaming applications; a system for performing light transport simulation; a system for performing collaborative content creation for 3D assets; or a system implemented at least partially using cloud computing resources ([0026] – “In various embodiments, the job scheduler 100, data store 150, and/or computing resources 191 may reside “in the cloud” and may be accessed over a publicly accessible network such as the Internet.”)
Regarding claim 12, Hosmani teaches A system comprising:
one or more processors ([0015] – “The client 110 may represent one or more computing devices that are configured to submit one or more job definitions 111 to the job scheduler 100.”; [0053] – “computing device 3000 includes one or more processors 3010A-3010N”) to perform operations comprising:
receiving data associated with a request to perform one or more processing operations ([0016] – “A job definition may describe one or more tasks to be performed by computing resources 191 in the provider network 190. […] a job definition may include or reference program instructions to be executed in processing the task […] A job definition may include or reference a set of input data to be processed using the program instructions, potentially using multiple copies of an application or set of program code to process different elements of the input data sequentially or concurrently”), the request associated with a plurality of dependencies ([0017] – “graph 130 may include nodes representing jobs and edges representing dependency relationships from job to job. In the graph 130, the dependency relationships may indicate which nodes depend on other nodes and which nodes are depended on by other nodes.”), the plurality of dependencies comprising a first dependency (FIG. 2, Job 112D) and a second dependency (FIG. 2, Job 112F);
causing a plurality of systems in a distributed computing environment involved in processing the request to perform the one or more processing operations in parallel ([0043] – “the job […] may be executed using a job execution component 192A of a computing resource 191A of the provider network 190”) based at least in part on a topological ordering associated with the processing operations ([0018] – “The graph 130 may be constructed initially using any suitable algorithm for topological sorting, e.g., Kahn's algorithm.”);
determining that a first dependency of the set of dependencies is satisfied by a system of the plurality of systems in the distributed computing environment ([0038] – “Satisfaction of a dependency may be determined based (at least in part) on an event (such as event 194) associated with a job that the dependency involves. For example, if a particular job was dependent on completion of an earlier-submitted job, and that earlier-submitted job has completed execution, then the particular job may be deemed runnable by evaluation of its corresponding node in the graph 130 in response to an execution event associated with the earlier-submitted job.”; [0041] – “As also shown in the example of FIG. 2, in light of the event 194, the node corresponding to job 112B may be evaluated to determine whether it is runnable (i.e., for runnability). The evaluation and analysis may be performed automatically (e.g., without necessarily requiring user input) and programmatically (e.g., by execution of program instructions). The job 112B may be evaluated for runnability in response to the event 194 that is relevant to that job 112B, such as an execution event involving a job on which the job 112B depends”);
and causing the system associated with the first dependency to provide an indication that the first dependency is satisfied to a system associated with a second dependency ([0019] – “The various functions of the job scheduler 100 may be performed in response to events that are generated internally or externally with respect to the scheduler. […] when execution of a job completes using the computing resources 191, any jobs dependent on that executed job may be updated in the graph 130 to remove the dependency relationship with the executed job and may also be evaluated for runnability, without evaluating unrelated nodes in the graph. Events […] may include submission of a new job, initiation of execution of a job, successful execution of a job, failed execution of a job, successful execution of a threshold percentage of a job, and so on”).
Regarding claim 20, Hosmani teaches A method comprising:
receiving data associated with a request to perform one or more processing operations ([0016] – “A job definition may describe one or more tasks to be performed by computing resources 191 in the provider network 190. […] a job definition may include or reference program instructions to be executed in processing the task […] A job definition may include or reference a set of input data to be processed using the program instructions, potentially using multiple copies of an application or set of program code to process different elements of the input data sequentially or concurrently”), the request associated with a plurality of dependencies ([0017] – “graph 130 may include nodes representing jobs and edges representing dependency relationships from job to job. In the graph 130, the dependency relationships may indicate which nodes depend on other nodes and which nodes are depended on by other nodes.”), the plurality of dependencies comprising a first dependency (FIG. 2, Job 112D) and a second dependency (FIG. 2, Job 112F);
causing a plurality of systems in a distributed computing environment involved in processing the request to perform the one or more processing operations in parallel ([0043] – “the job […] may be executed using a job execution component 192A of a computing resource 191A of the provider network 190”) based at least in part on a topological ordering associated with the processing operations ([0018] – “The graph 130 may be constructed initially using any suitable algorithm for topological sorting, e.g., Kahn's algorithm.”);
determining that a first dependency of the set of dependencies is satisfied by a system of the plurality of systems in the distributed computing environment ([0038] – “Satisfaction of a dependency may be determined based (at least in part) on an event (such as event 194) associated with a job that the dependency involves. For example, if a particular job was dependent on completion of an earlier-submitted job, and that earlier-submitted job has completed execution, then the particular job may be deemed runnable by evaluation of its corresponding node in the graph 130 in response to an execution event associated with the earlier-submitted job.”; [0041] – “As also shown in the example of FIG. 2, in light of the event 194, the node corresponding to job 112B may be evaluated to determine whether it is runnable (i.e., for runnability). The evaluation and analysis may be performed automatically (e.g., without necessarily requiring user input) and programmatically (e.g., by execution of program instructions). The job 112B may be evaluated for runnability in response to the event 194 that is relevant to that job 112B, such as an execution event involving a job on which the job 112B depends”);
and causing the system associated with the first dependency to provide an indication that the first dependency is satisfied to a system associated with a second dependency ([0019] – “The various functions of the job scheduler 100 may be performed in response to events that are generated internally or externally with respect to the scheduler. […] when execution of a job completes using the computing resources 191, any jobs dependent on that executed job may be updated in the graph 130 to remove the dependency relationship with the executed job and may also be evaluated for runnability, without evaluating unrelated nodes in the graph. Events […] may include submission of a new job, initiation of execution of a job, successful execution of a job, failed execution of a job, successful execution of a threshold percentage of a job, and so on”).
Claims 13 and 19 recite substantially the same limitations as those in claims 2 and 11 respectively. As such, claims 13 and 19 are rejected as being anticipated by Hosmani for the same reasons presented with respect to claims 2 and 11.
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 3-8, 10, 14-18 are rejected under 35 U.S.C. 103 as being unpatentable over Hosmani (U.S. Pub. No.2018/0276040 A1 ) in view of Shahim et al. (U.S. Pub. No. 2021/0303346 A1), hereinafter Shahim.
Regarding claim 3, Hosmani teaches The one or more processors of claim 1. Hosmani further teaches wherein the one or more circuits are to:
determine that a precondition associated with the second dependency is not satisfied ([0043] – “The execution event 195 may indicate a condition such as the initiation of job execution, the successful completion of job execution, the failed completion of job execution, the successful or failed completion of job execution, the successful completion of a threshold percentage (e.g., 60%) of the tasks in a job, and so on”);
Hosmani fails to expressly teach and forgo satisfying the second dependency based at least on determining that the precondition associated with the second dependency is not satisfied.
However, Shahim teaches and forgo satisfying the second dependency based at least on determining that the precondition associated with the second dependency is not satisfied ([0016] – “While generating the command streams, the scheduler can insert signal and wait primitives to represent dependencies between streams. For example, a wait primitive in a first stream can indicate a dependency upon a signal primitive in another command stream, thereby preventing the queue processor 100 from proceeding to the next command in the command queue 110. Therefore, upon execution of a signal primitive, the queue processor 100 that is decoding and routing the command streams can release corresponding wait primitives in other command queues 110.”).
Hosmani and Shahim are considered to be analogous art to the claimed invention because they are in the same field as the claimed invention of command scheduling and work management. Therefore, it would have been obvious to one of ordinary skill in the art to have modified the methods of Hosmani to incorporate the paused satisfaction of a command with unmet dependencies of Shahim such that a command is not satisfied until the precondition is met as taught by Shahim. Incorporating the methods of Shahim may prevent latency and improve the power efficiency and speed of the processor system (see Shahim: [0014]).
Regarding claim 4, the combination of Hosmani in view of Shahim teaches The one or more processors of claim 3.
Hosmani further teaches wherein the precondition associated with the second dependency (FIG. 2 Job 112F) is further associated with satisfaction of the first dependency (FIG. 2 Job 112D) and a third dependency (Fig. 2 Job 112E; [0040] – "the graph 130 may also include a dependency relationship of job 112F upon both job 112D and job 112E, such that conditions (e.g., for successful execution) must be met for both jobs 112D and 112E before job 112F may be deemed runnable and added to the execution schedule 140”).
Regarding claim 5, the combination of Hosmani in view of Shahim teaches The one or more processors of claim 3.
Hosmani further teaches wherein the one or more circuits are to:
receive an indication that a third dependency is satisfied after forgoing satisfying the second dependency ([0041] – “in light of the event 194, the node [...] may be evaluated to determine whether it is runnable (i.e., for runnability). The evaluation and analysis may be performed automatically (e.g., without necessarily requiring user input) and programmatically (e.g., by execution of program instructions).”);
determine that the precondition associated with the second dependency is satisfied based on receiving the indication that the third dependency is satisfied ([0038] – “Satisfaction of a dependency may be determined based (at least in part) on an event (such as event 194) associated with a job that the dependency involves.”);
and execute one or more operations associated with the second dependency based at least on determining that the precondition associated with the second dependency is satisfied ([0041] – “if the evaluation of the node determines that job 112B has no more unmet DependsOn relationships, then the scheduler 100 may move the job into the execution schedule 140”).
Regarding claim 6, the combination of Hosmani in view of Shahim teaches The one or more processors of claim 5.
Hosmani further teaches wherein, when receiving the indication that the third dependency is satisfied, the one or more circuits are to:
receive the indication that the third dependency is satisfied from a core that is the same as the core corresponding to the second dependency ([0036] – “portions of the described functionality of the job scheduler 100 may be provided by the same computing device or by any suitable number of different computing devices. If any of the components of the job scheduler 100 are implemented using different computing devices, then the components and their respective computing devices may be communicatively coupled, e.g., via a network”).
Regarding claim 7, the combination of Hosmani in view of Shahim teaches The one or more processors of claim 5.
Hosmani further teaches wherein, when receiving the indication that the third dependency is satisfied, the one or more circuits are to:
receive the indication that the third dependency is satisfied from a core that is different from the core corresponding to the second dependency ([0036] – “portions of the described functionality of the job scheduler 100 may be provided by the same computing device or by any suitable number of different computing devices. If any of the components of the job scheduler 100 are implemented using different computing devices, then the components and their respective computing devices may be communicatively coupled, e.g., via a network”).
Regarding claim 8, the combination of Hosmani in view of Shahim teaches The one or more processors of claim 5.
Hosmani further teaches wherein the one or more circuits are to:
communicate each indication to respective cores in accordance with a predetermined network architecture ([0027] – “the client device(s) 110 may be configured to generate network-based service requests according to a Representational State Transfer (REST)-style network-based services architecture, a document- or message-based network-based services architecture, or another suitable network-based services architecture.”).
Regarding claim 10, the combination of Hosmani in view of Shahim teaches The one or more processors of claim 5.
Hosmani further teaches wherein the second dependency is a precondition to the request, and wherein the one or more circuits are to:
determine that the plurality of dependencies associated with the request are satisfied based at least on executing the one or more operations associated with the second dependency ([0040] – “the graph 130 may also include a dependency relationship of job 112F upon both job 112D and job 112E, such that conditions (e.g., for successful execution) must be met for both jobs 112D and 112E before job 112F may be deemed runnable”; [0041] – “if the evaluation of the node determines that job 112B has no more unmet DependsOn relationships, then the scheduler 100 may move the job into the execution schedule 140”);
and satisfy the request based at least on determining that the plurality of dependencies associated with the request are satisfied ([0038] – “Satisfaction of a dependency may be determined based (at least in part) on an event (such as event 194) associated with a job that the dependency involves. For example, if a particular job was dependent on completion of an earlier-submitted job, and that earlier-submitted job has completed execution, then the particular job may be deemed runnable by evaluation of its corresponding node in the graph 130 in response to an execution event associated with the earlier-submitted job.”).
Claims 14-18 recite substantially the same limitations as those recited in claims 3-7. As such, claims 14-18 are rejected as being unpatentable over Hosmani in view of Shahim for the same reasons presented with respect to claims 3-7.
Claim 9 is rejected under 35 U.S.C. 103 as being unpatentable over Hosmani in view of Shahim, and further in view of Klausler (U.S. Pub. No. 2011/0149981 A1).
Regarding claim 9, the combination of Hosmani in view of Shahim teaches The one or more processors of claim 8.
The combination of Hosmani in view of Shahim fails to expressly teach wherein the predetermined network architecture is associated with a butterfly network.
However, Klausler teaches wherein the predetermined network architecture is associated with a butterfly network ([0013] – “the computer network is a butterfly network architecture”; [0021] – “the computer system has a butterfly network architecture”).
Hosmani and Klausler are considered to be analogous art to the claimed invention because they are in the same field as the claimed invention of routing data in computer networks. Therefore, it would have been obvious to one of ordinary skill in the art to have modified the methods of Hosmani to incorporate the butterfly network of Klausler such that the network architecture used is a butterfly network as taught by Klausler. Incorporating the methods of Klausler may prevent against deadlock, provide high throughput, and lower latency (see Klausler: [0008]-[0009]).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Rastogi (U.S. Pub. No. 2011/0321051 A1) teaches software that schedules work based on a task dependency model (see Abstract, [0015], [0017])
Klyuchevskyy et al. (U.S. Pub. No. 2014/0101673 A1) teaches a method for dynamically evaluating dependencies between computing tasks and updated self-healing processes (see [0015], [0016], [0023])
MOITA et al. (U.S. Pub. No. 2021/0004263 A1) teaches a method for choosing an execution order for tasks with dependencies to reduce resource conflicts (see Abstract, [0012])
Gadre (U.S. Pub. No. 2022/0091883 A1) teaches a method for scheduling work in a substrate processing system based on task dependencies using a machine learning model (see Abstract, [0020], [0037])
Wang et al. (U.S. Pub. No. 2024/0004706 A1) teaches a method for scheduling real-time dependency acyclic graph tasks on a multi-core processor in an energy-efficient manner (see Abstract, [0011], [0012], [0017])
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Julianne C. LaPointe whose telephone number is (571) 270-5457. The examiner can normally be reached M - T: 7:30am - 5pm ET.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Kevin Young can be reached at (571) 270-3180. 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.
/JULIANNE CATHERINE LAPOINTE/Examiner, Art Unit 2194 /KEVIN L YOUNG/Supervisory Patent Examiner, Art Unit 2194