Prosecution Insights
Last updated: October 02, 2026
Application No. 18/596,713

ADVANCED EXPLOITATION OF MULTITHREADING TO BOOST MACHINE LEARNING INFERENCE PERFORMANCE FOR DECISION-TREE BASED ENSEMBLES

Non-Final OA §101§103§112
Filed
Mar 06, 2024
Examiner
ALAM, SHIHAB
Art Unit
Tech Center
Assignee
International Business Machines Corporation
OA Round
1 (Non-Final)
Grant Probability
Favorable
1-2
OA Rounds

Examiner Intelligence

Grants only 0% of cases
0%
Career Allowance Rate
0 granted / 0 resolved
-60.0% vs TC avg
Minimal +0% lift
Without
With
+0.0%
Interview Lift
resolved cases with interview
Typical timeline
Avg Prosecution
15 currently pending
Career history
13
Total Applications
across all art units
This examiner has no resolved cases yet (career too new); statute-level performance unavailable. The Grant Probability card shows Tech Center averages instead.

Office Action

§101 §103 §112
DETAILED ACTION The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA This Office Action is in response to claims filed 03/06/2024. Claims 1-20 are pending. Claim Interpretation The following is a quotation of 35 U.S.C. 112(f): (f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof. The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph: An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof. The claims in this application are given their broadest reasonable interpretation using the plain meaning of the claim language in light of the specification as it would be understood by one of ordinary skill in the art. The broadest reasonable interpretation of a claim element (also commonly referred to as a claim limitation) is limited by the description in the specification when 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is invoked. As explained in MPEP § 2181, subsection I, claim limitations that meet the following three-prong test will be interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph: (A) the claim limitation uses the term “means” or “step” or a term used as a substitute for “means” that is a generic placeholder (also called a nonce term or a non-structural term having no specific structural meaning) for performing the claimed function; (B) the term “means” or “step” or the generic placeholder is modified by functional language, typically, but not always linked by the transition word “for” (e.g., “means for”) or another linking word or phrase, such as “configured to” or “so that”; and (C) the term “means” or “step” or the generic placeholder is not modified by sufficient structure, material, or acts for performing the claimed function. Use of the word “means” (or “step”) in a claim with functional language creates a rebuttable presumption that the claim limitation is to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites sufficient structure, material, or acts to entirely perform the recited function. Absence of the word “means” (or “step”) in a claim creates a rebuttable presumption that the claim limitation is not to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is not interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites function without reciting sufficient structure, material or acts to entirely perform the recited function. Claim limitations in this application that use the word “means” (or “step”) are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Conversely, claim limitations in this application that do not use the word “means” (or “step”) are not being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. This application includes one or more claim limitations that do not use the word “means,” but are nonetheless being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because the claim limitation(s) uses a generic placeholder that is coupled with functional language without reciting sufficient structure to perform the recited function and the generic placeholder is not preceded by a structural modifier. Such claim limitation(s) is/are: “a machine learning system” in Claim 8. Claims 9-14, which are dependent on Claim 8 inherit the invocation. Because this/these claim limitation(s) is/are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, it/they is/are being interpreted to cover the corresponding structure described in the specification as performing the claimed function, and equivalents thereof. A review of the disclosure as originally filed, hereafter "disclosure", does not disclose any “machine learning system”, therefore its unclear what the corresponding structure is. In accordance with MPEP § 2181 (ll)(B), when the corresponding structure of computer implemented mean plus function limitations corresponds to a general purpose computer, an algorithm is required to transform the general purpose computer into a special purpose computer to be sufficient as corresponding structure. Upon further review of the disclosure, Applicant has failed to define the algorithm for each of the claimed functions and has instead only provided either verbatim support for the claimed function (which is insufficient as a steps of steps of a corresponding algorithm) or exemplary language that does not make clear the metes and bounds of the algorithm. As such, see rejections under 35 U.S.C. § 112(a) and (b) below. If applicant does not intend to have this/these limitation(s) interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, applicant may: (1) amend the claim limitation(s) to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitation(s) recite(s) sufficient structure to perform the claimed function so as to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. Claim Rejections - 35 USC § 112 The following is a quotation of the first paragraph of 35 U.S.C. 112(a): (a) IN GENERAL.—The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor or joint inventor of carrying out the invention. The following is a quotation of the first paragraph of pre-AIA 35 U.S.C. 112: The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor of carrying out his invention. Claims 8-14 are rejected under 35 U.S.C. 112(a) or 35 U.S.C. 112 (pre-AIA ), first paragraph, as failing to comply with the written description requirement. The claim(s) contains subject matter which was not described in the specification in such a way as to reasonably convey to one skilled in the relevant art that the inventor or a joint inventor, or for applications subject to pre-AIA 35 U.S.C. 112, the inventor(s), at the time the application was filed, had possession of the claimed invention. Claims 8 recites “machine learning system” which invokes 35 U.S.C. § 112(f), see claim interpretation above. The disclosure does not recite sufficient corresponding structure (in this instance computer + algorithm), again see claim interpretation above. As such, and in accordance with MPEP § 2181 (ll)(B), last paragraph "When a claim containing a computer-implemented 35 U.S.C. 112(f) claim limitation is found to be indefinite under 35 U.S.C. 112(b) for failure to disclose sufficient corresponding structure (e.g., the computer and the algorithm) in the specification that performs the entire claimed function, it will also lack written description under 35 U.S.C. 112(a)." 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. Claim limitations “a machine learning system” in Claim 8 invoke 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. However, the written description fails to disclose the corresponding structure, material, or acts for performing the entire claimed function and to clearly link the structure, material, or acts to the function. The disclosure fails to disclose sufficient corresponding structure (in this instance computer+ algorithm), see claim interpretation above. As such, and in accordance with MPEP § 2181 (ll)(B) "For a computer-implemented 35 U.S.C. 112(f) claim limitation, the specification must disclose an algorithm for performing the claimed specific computer function, or else the claim is indefinite under 35 U.S.C. 112(b).".Therefore, the claim is indefinite and is rejected under 35 U.S.C. 112(b) or pre-AIA 35 U.S.C. 112, second paragraph. Applicant may: (a) Amend the claim so that the claim limitation will no longer be interpreted as a limitation under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph; (b) Amend the written description of the specification such that it expressly recites what structure, material, or acts perform the entire claimed function, without introducing any new matter (35 U.S.C. 132(a)); or (c) Amend the written description of the specification such that it clearly links the structure, material, or acts disclosed therein to the function recited in the claim, without introducing any new matter (35 U.S.C. 132(a)). If applicant is of the opinion that the written description of the specification already implicitly or inherently discloses the corresponding structure, material, or acts and clearly links them to the function so that one of ordinary skill in the art would recognize what structure, material, or acts perform the claimed function, applicant should clarify the record by either: (a) Amending the written description of the specification such that it expressly recites the corresponding structure, material, or acts for performing the claimed function and clearly links or associates the structure, material, or acts to the claimed function, without introducing any new matter (35 U.S.C. 132(a)); or (b) Stating on the record what the corresponding structure, material, or acts, which are implicitly or inherently set forth in the written description of the specification, perform the claimed function. For more information, see 37 CFR 1.75(d) and MPEP §§ 608.01(o) and 2181. Claims 1, 3, 5, 8, 10, 12, 15, 17 and 19 all recite multiple instances of “an inference request”, it is unclear if these all refer to the same or different instances of “an inference request”. For the purposes of compact prosecution, Examiner will interpret each instance of “an inference request” as referring to the same instance. Claims 1, 6-8, 13-15 and 20 all recite multiple instances of “a stop thread request”, it is unclear if these all refer to the same or different instances of “a stop thread request”. For the purposes of compact prosecution, Examiner will interpret each instance of “a stop thread request” as referring to the same instance. Claims 6, 13 and 20 all recite “the stop thread request”, it is unclear which instance of “a stop thread request” is being referred to. For the purposes of compact prosecution, Examiner will interpret each instance of “the stop thread request” as referring to the interpreted same instances of “a stop thread request”. Claims 1, 3-5, 7-8, 10-12, 14-15, 17-19 and 20 recite the limitation "the CPU thread(s)". There is insufficient antecedent basis for this limitation in the claim. For the purposes of compact prosecution examiner will interpret “the CPU threads” to mean “the multiple CPU threads” and a singular “the CPU thread” to mean a single thread of that plurality. Claims 2, 9 and 16 all recite multiple instances “an inference function server”, it is unclear if these all refer to the same or different instances of “an inference server”. For the purposes of compact prosecution, Examiner will interpret each instance of “an inference function server” as referring to the same instance. Claims 2, 9 and 16 all recite “the inference function server”, it is unclear which instances of “an inference request” is being referred to. For the purposes of compact prosecution, Examiner will interpret each instance of “the inference function server” as referring to the interpreted same instances of “an inference request”. Claims 4, 11 and 18 all recite multiple instances “a tree traversal operation”, it is unclear if these all refer to the same or different instances of “a tree traversal operation”. For the purposes of compact prosecution, Examiner will interpret each instance of “a tree traversal operation” as referring to the same instance. Claims 5, 12 and 19 all recite “the tree traversal operation”, it is unclear which instance of “a tree traversal operation” is being referred to. For the purposes of compact prosecution, Examiner will interpret each instance of “the tree traversal operation” as referring to the interpreted same instances of “a tree traversal operation”. Claims 6, 13 and 20 recite the limitation "the CPU". There is insufficient antecedent basis for this limitation in the claim. For the purposes of compact prosecution examiner will interpret “the CPU” to mean “a CPU”. Claims 2-7, 9-14 and 16-20 are further rejected for their inherited deficiencies of the Claims from which they depend, by virtue of their dependency, without resolving those deficiencies. 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 recites a judicial exception, is directed to that judicial exception, an abstract idea, as it has not been integrated into practical application and the claims further do not recite significantly more than the judicial exception. Examiner has evaluated the claims under the framework provided in the 2019 Patent Eligibility Guidance published in the Federal Register 01/07/2019 and has provided such analysis below. Step 1: Claims 1-7 are directed to methods and fall within the statutory category of processes; Claims 8-14 are directed to a system and falls within the statutory category of machines; Claims 15-20 are directed to a computer program product and falls within the statutory category of manufacture. Therefore, “Are the claims to a process, machine, manufacture or composition of matter?” Yes. In order to evaluate the Step 2A inquiry “Is the claim directed to a law of nature, a natural phenomenon or an abstract idea?” we must determine, at Step 2A Prong 1, whether the claim recites a law of nature, a natural phenomenon or an abstract idea and further whether the claim recites additional elements that integrate the judicial exception into a practical application. Step 2A Prong 1: Claims 1, 8, 15: The limitations of “determining if an inference request which requires a tree traversal operation has been received”, “if an inference request which requires the tree traversal operation has been received”, and “if an inference request which requires the tree traversal operation has not been received, then determining if a stop thread request has been received”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, but for the recitation of generic computing components being used as a tool to perform the functionality, a person can not only observe if a request has been received but may also make a mental evaluation about whether the request requires action. Therefore, yes, Claims 1, 8 and 15 recite judicial exceptions. The claims have been identified to recite judicial exceptions, Step 2A Prong 2 will evaluate whether the claims are directed to the judicial exception. Step 2A Prong 2: Claims 1, 8 and 15: The judicial exception are not integrated into practical applications. In particular, the claims recite the following additional elements – “generating multiple CPU threads on an inference function server;”, “then immediately executing the tree traversal operation;”, and “wherein if a stop thread request has been received, then stopping the CPU thread”, is a recitation of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)). Therefore, “Do the claims recite additional elements that integrate the judicial exception into a practical application? No, these additional elements do not integrate the abstract idea into a practical application and they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea. After having evaluating the inquires set forth in Steps 2A Prong 1 and 2, it has been concluded that the Claims 1, 8 and 15 not only recite a judicial exception but that the claims are directed to a judicial exception as a judicial exception has not been integrated into a practical application. Step 2B: Claims 1, 8 and 15: The claims do not include additional elements, alone or in combination, that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements amount to no more than generic computing components which do not amount to significantly more than the abstract idea. Therefore, “Do the claims recite additional elements that amount to significantly more than the judicial exception? No, these additional elements, alone or in combination, do not amount to significantly more than the judicial exception. Having concluded analysis within the provided framework, Claims 1, 8 and 15 do not recite patent eligible subject matter under 35 U.S.C. § 101. Claims 2, 9 and 16: “generating multiple CPU threads includes starting an inference function server to generate the multiple CPU threads, wherein the multiple CPU threads are configured to execute decision tree traversal operations upon starting the inference function server”, is a recitation of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)). With regard to integration into practical application and whether additional elements amount to significantly more, Claims 2, 9 and 16 fail both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 2, 9 and 16 do not recite patent eligible subject matter under 35 U.S.C. § 101. Claims 3, 10 and 17: “determining if an inference request has been received includes the CPU threads acquiring a spinlock function for each of the multiple CPU threads to determine if one or more inference requests which require the tree traversal operation has been received”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, but for the recitation of generic computing components being used as a tool to perform the functionality, a person can not only observe if a request has been received but may also make a mental evaluation about whether the request requires action. With regard to integration into practical application and whether additional elements amount to significantly more, Claims 3, 10 and 17 fail both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 3, 10 and 17 do not recite patent eligible subject matter under 35 U.S.C. § 101. Claims 4, 11 and 18: “if no inference requests which requires a tree traversal operation or stop thread requests have been received, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, but for the recitation of generic computing components being used as a tool to perform the functionality, a person can observe if a request has been received. Further. “then the each of the multiple CPU threads will execute short sequences of lower-priority operations prior to the CPU threads attempting to reacquire the spinlock function”, is a recitation of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)). With regard to integration into practical application and whether additional elements amount to significantly more, Claims 4, 11 and 18 fail both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 4, 11 and 18 do not recite patent eligible subject matter under 35 U.S.C. § 101. Claims 5, 12 and 19: “the CPU thread is configured to immediately perform the tree traversal operation”, is a recitation of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)). Further, “upon determining if an inference request has been received”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, but for the recitation of generic computing components being used as a tool to perform the functionality, a person can observe if a request has been received. With regard to integration into practical application and whether additional elements amount to significantly more, Claims 5, 12 and 19 fail both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 5, 12 and 19 do not recite patent eligible subject matter under 35 U.S.C. § 101. Claims 6-7, 13-14 and 20: “determining if a stop thread request has been received includes the CPU checking to see if the stop thread request has been received.”, as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, but for the recitation of generic computing components being used as a tool to perform the functionality, a person can observe if a request has been received. Further, “if a stop thread request has been received, the CPU thread exits the spinlock function to allow the CPU thread to be stopped”, is a recitation of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)). With regard to integration into practical application and whether additional elements amount to significantly more, Claims 6-7, 13-14 and 20 fail both prongs of Step 2A, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 6-7, 13-14 and 20 do not recite patent eligible subject matter under 35 U.S.C. § 101. Therefore, for the reasons above, claims 1-20 are rejected under 35 U.S.C. § 101. 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-2, 5-6, 8-9, 12-13, 15-16, and 19 are rejected under 35 U.S.C. 103(a) as being unpatentable over Lee et al. (US 20150379429 A1) (hereinafter Lee), in further view of Negishi et al. (US 20130103840 A1) (hereinafter Negishi). Regarding Claim 1, Lee teaches: A method for performing machine learning decision-tree based inferences, “a decision tree that may be generated for predictions at a machine learning service, according to at least some embodiments”, (Lee: ¶39, Fig 33), “Determine, at a provider network's machine learning service, a set of run-time Optimization goals (e.g., memory usage/footprint goals, other resource utilization goals, prediction time variation goals, prediction quality goals) for a prediction-tree based model M1 to be trained using a training data set TDS, TDS and some/all goals may be based on client-Submitted API parameters”, (Lee: Fig 39, Part 3901), “In real-time mode, a network endpoint (e.g., an IP address) may be assigned as a destination to which input data records for a specified model are to be submitted, and model predictions may be generated on groups of streaming data records as the records are received”, (Lee: ¶119), “help bridge the gaps that may exist between the back-end computational and inference capabilities of the MLS resources”, (Lee: ¶307). the method comprising: generating multiple CPU threads on an inference function server; “The jobs of the tree-creation pass may be performed in parallel in at least some embodiments, e.g., using respective servers of an MLS server pool, or using multiple threads of execution (or processes) at the same MLS server”, (Lee: ¶217), “Jobs for any of the different tasks illustrated (e.g., tree generation, tree pruning or model execution) that have met their dependencies may be executed in parallel at the thread level (e.g., different threads of execution may be used for the jobs on the same server), the process level (e.g., respective processes may be launched for multiple jobs to be run concurrently on the same server or different servers), or the server level (e.g., each job of a set of concurrently-schedulable jobs may be executed at a different thread/process at a respective MLS server) in various embodiments”, (Lee: ¶218), “a job object may be generated upon receiving the execution request 812 as described earlier, indicating any dependencies on other jobs (such as the execution of a recipe for feature processing), and the job may be placed in a queue”, (Lee: ¶120). determining if an inference request which requires a tree traversal operation has been received, wherein: if an inference request which requires the tree traversal operation has been received, then immediately executing the tree traversal operation; “a client 164 of the MLS may submit a model execution request 812 to the MLS control plane 180 via a programmatic interface 861. The model execution request may specify the execution mode (batch, online or local), the input data to be used for the model run (which may be produced using a specified data source or recipe in some cases), the type of output (e.g., a prediction or an evaluation) that is desired, and/or optional parameters (such as desired model quality targets, minimum input record group sizes to be used for online predictions, and so on)”, (Lee: ¶120), “If the job does not have any dependencies that have yet to be met, and meets other criteria for immediate or in-line execution (as also determined in element 907), the requested operation may be performed without creating a job object (element 910) and the results may optionally be provided to the requesting client”, (Lee: ¶123), “Each non-leaf node of a decision tree 3320, such as root node 3322, may indicate one or more conditions or predicates to be evaluated on one or more independent variables, and the results of evaluating the predicate may determine the path to be taken next towards a leaf node of the tree at which a prediction for the DV is made for the OR” … “Similar decisions would be taken at various non-leaf nodes until a leaf node is reached, at which point a value for DV would be predicted based on the combination of predicates checked along the path” … “A similar traversal would be performed for all the records of a test data set 3330 by a decision tree based model 3335, resulting in a set of predictions 3340 of DV values”, (Lee: ¶204). Further regarding Claim 1, Lee fails to teach: and if an inference request which requires the tree traversal operation has not been received, then determining if a stop thread request has been received, wherein if a stop thread request has been received, then stopping the CPU thread. However, Negishi teaches: “the main thread 120 enters a wait state waiting for a request (such as an activation request, a connection request, or a termination request) from the resident module 11b (step S301)”, (Negishi: ¶56), “The resident module 11b sends a communication thread termination notification ("termination notification") to the main thread 120 according to the received disconnection request, and the main thread 120 instructs an associated communication thread (the communication thread 124, for example) to terminate the same”, (Negishi: ¶86), “the main thread 120 of the device server communication module 11c determines whether or not the request notification is a "termination notification" (step S908). If the request notification is a "termination notification" (YES to the step S908), the main thread 120 terminates the corresponding communication thread (step S909)”, (Negishi: ¶104). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine and if an inference request which requires the tree traversal operation has not been received, then determining if a stop thread request has been received, wherein if a stop thread request has been received, then stopping the CPU thread of Negishi with the methods and systems of Lee resulting in a system that can terminate threads when requested. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “when data transmission and reception with a device is terminated” … “it is possible to reduce consumption of resources of the information processing apparatus by a device stack in the non-data transmission and reception state”, (Negishi: ¶93). Regarding Claim 2, Lee teaches: generating multiple CPU threads includes starting an inference function server to generate the multiple CPU threads, wherein the multiple CPU threads are configured to execute decision tree traversal operations upon starting the inference function server. “In response the MLS may generate a plan for model execution and select the appropriate resources to implement the plan” … “a job object may be generated upon receiving the execution request 812” … “the job may be placed in a queue” … “one or more servers may be identified to run the model” … “the model may be mounted (e.g., configured with a network address) to which data records may be streamed, and from which results including predictions 868 and/or evaluations 869 can be retrieved”, (Lee: ¶120), “The jobs of the tree-creation pass may be performed in parallel in at least some embodiments, e.g., using respective servers of an MLS server pool, or using multiple threads of execution (or processes) at the same MLS server”, (Lee: ¶217), “Jobs for any of the different tasks illustrated (e.g., tree generation, tree pruning or model execution) that have met their dependencies may be executed in parallel at the thread level (e.g., different threads of execution may be used for the jobs on the same server), the process level (e.g., respective processes may be launched for multiple jobs to be run concurrently on the same server or different servers), or the server level (e.g., each job of a set of concurrently-schedulable jobs may be executed at a different thread/process at a respective MLS server) in various embodiments”, (Lee: ¶218). Examiner notes: Jobs, which may be traversal operations are queued for processing by the MLS which uses an MLS server pool, therefore jobs are processed upon initialization of an MLS server. Regarding Claim 5, Lee teaches: the CPU thread is configured to immediately perform the tree traversal operation upon determining if an inference request has been received. “a client 164 of the MLS may submit a model execution request 812 to the MLS control plane 180 via a programmatic interface 861. The model execution request may specify the execution mode (batch, online or local), the input data to be used for the model run (which may be produced using a specified data source or recipe in some cases), the type of output (e.g., a prediction or an evaluation) that is desired, and/or optional parameters (such as desired model quality targets, minimum input record group sizes to be used for online predictions, and so on)”, (Lee: ¶120), “If the job does not have any dependencies that have yet to be met, and meets other criteria for immediate or in-line execution (as also determined in element 907), the requested operation may be performed without creating a job object (element 910) and the results may optionally be provided to the requesting client”, (Lee: ¶123), “Each non-leaf node of a decision tree 3320, such as root node 3322, may indicate one or more conditions or predicates to be evaluated on one or more independent variables, and the results of evaluating the predicate may determine the path to be taken next towards a leaf node of the tree at which a prediction for the DV is made for the OR” … “Similar decisions would be taken at various non-leaf nodes until a leaf node is reached, at which point a value for DV would be predicted based on the combination of predicates checked along the path” … “A similar traversal would be performed for all the records of a test data set 3330 by a decision tree based model 3335, resulting in a set of predictions 3340 of DV values”, (Lee: ¶204). Regarding Claim 6, Lee fails to teach: determining if a stop thread request has been received includes the CPU checking to see if the stop thread request has been received. However, Negishi teaches: “the main thread 120 enters a wait state waiting for a request (such as an activation request, a connection request, or a termination request) from the resident module 11b (step S301)”, (Negishi: ¶56), “The resident module 11b sends a communication thread termination notification ("termination notification") to the main thread 120 according to the received disconnection request, and the main thread 120 instructs an associated communication thread (the communication thread 124, for example) to terminate the same”, (Negishi: ¶86), “the main thread 120 of the device server communication module 11c determines whether or not the request notification is a "termination notification" (step S908). If the request notification is a "termination notification" (YES to the step S908), the main thread 120 terminates the corresponding communication thread (step S909)”, (Negishi: ¶104). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine determining if a stop thread request has been received, wherein if a stop thread request has been received, then stopping the CPU thread of Negishi with the methods and systems of Lee resulting in a system that can terminate threads when requested. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “when data transmission and reception with a device is terminated” … “it is possible to reduce consumption of resources of the information processing apparatus by a device stack in the non-data transmission and reception state”, (Negishi: ¶93). Regarding Claim 8, Lee teaches: A computing system, comprising: a machine learning system for implementing a method for performing machine learning decision-tree based inferences, “a decision tree that may be generated for predictions at a machine learning service, according to at least some embodiments”, (Lee: ¶39, Fig 33), “Determine, at a provider network's machine learning service, a set of run-time Optimization goals (e.g., memory usage/footprint goals, other resource utilization goals, prediction time variation goals, prediction quality goals) for a prediction-tree based model M1 to be trained using a training data set TDS, TDS and some/all goals may be based on client-Submitted API parameters”, (Lee: Fig 39, Part 3901), “In real-time mode, a network endpoint (e.g., an IP address) may be assigned as a destination to which input data records for a specified model are to be submitted, and model predictions may be generated on groups of streaming data records as the records are received”, (Lee: ¶119), “help bridge the gaps that may exist between the back-end computational and inference capabilities of the MLS resources”, (Lee: ¶307). wherein the method includes: generating multiple CPU threads on an inference function server; “The jobs of the tree-creation pass may be performed in parallel in at least some embodiments, e.g., using respective servers of an MLS server pool, or using multiple threads of execution (or processes) at the same MLS server”, (Lee: ¶217), “Jobs for any of the different tasks illustrated (e.g., tree generation, tree pruning or model execution) that have met their dependencies may be executed in parallel at the thread level (e.g., different threads of execution may be used for the jobs on the same server), the process level (e.g., respective processes may be launched for multiple jobs to be run concurrently on the same server or different servers), or the server level (e.g., each job of a set of concurrently-schedulable jobs may be executed at a different thread/process at a respective MLS server) in various embodiments”, (Lee: ¶218), “a job object may be generated upon receiving the execution request 812 as described earlier, indicating any dependencies on other jobs (such as the execution of a recipe for feature processing), and the job may be placed in a queue”, (Lee: ¶120). determining if an inference request which requires a tree traversal operation has been received, wherein: if an inference request which requires the tree traversal operation has been received, then immediately executing the tree traversal operation; “a client 164 of the MLS may submit a model execution request 812 to the MLS control plane 180 via a programmatic interface 861. The model execution request may specify the execution mode (batch, online or local), the input data to be used for the model run (which may be produced using a specified data source or recipe in some cases), the type of output (e.g., a prediction or an evaluation) that is desired, and/or optional parameters (such as desired model quality targets, minimum input record group sizes to be used for online predictions, and so on)”, (Lee: ¶120), “If the job does not have any dependencies that have yet to be met, and meets other criteria for immediate or in-line execution (as also determined in element 907), the requested operation may be performed without creating a job object (element 910) and the results may optionally be provided to the requesting client”, (Lee: ¶123), “Each non-leaf node of a decision tree 3320, such as root node 3322, may indicate one or more conditions or predicates to be evaluated on one or more independent variables, and the results of evaluating the predicate may determine the path to be taken next towards a leaf node of the tree at which a prediction for the DV is made for the OR” … “Similar decisions would be taken at various non-leaf nodes until a leaf node is reached, at which point a value for DV would be predicted based on the combination of predicates checked along the path” … “A similar traversal would be performed for all the records of a test data set 3330 by a decision tree based model 3335, resulting in a set of predictions 3340 of DV values”, (Lee: ¶204). Further regarding Claim 8, Lee fails to teach: and if an inference request which requires the tree traversal operation has not been received, then determining if a stop thread request has been received, wherein if a stop thread request has been received, then stopping the CPU thread. However, Negishi teaches: “the main thread 120 enters a wait state waiting for a request (such as an activation request, a connection request, or a termination request) from the resident module 11b (step S301)”, (Negishi: ¶56), “The resident module 11b sends a communication thread termination notification ("termination notification") to the main thread 120 according to the received disconnection request, and the main thread 120 instructs an associated communication thread (the communication thread 124, for example) to terminate the same”, (Negishi: ¶86), “the main thread 120 of the device server communication module 11c determines whether or not the request notification is a "termination notification" (step S908). If the request notification is a "termination notification" (YES to the step S908), the main thread 120 terminates the corresponding communication thread (step S909)”, (Negishi: ¶104). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine and if an inference request which requires the tree traversal operation has not been received, then determining if a stop thread request has been received, wherein if a stop thread request has been received, then stopping the CPU thread of Negishi with the methods and systems of Lee resulting in a system that can terminate threads when requested. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “when data transmission and reception with a device is terminated” … “it is possible to reduce consumption of resources of the information processing apparatus by a device stack in the non-data transmission and reception state”, (Negishi: ¶93). Regarding Claim 9, Lee teaches: generating multiple CPU threads includes starting an inference function server to generate the multiple CPU threads, wherein the multiple CPU threads are configured to execute decision tree traversal operations upon starting the inference function server. “In response the MLS may generate a plan for model execution and select the appropriate resources to implement the plan” … “a job object may be generated upon receiving the execution request 812” … “the job may be placed in a queue” … “one or more servers may be identified to run the model” … “the model may be mounted (e.g., configured with a network address) to which data records may be streamed, and from which results including predictions 868 and/or evaluations 869 can be retrieved”, (Lee: ¶120), “The jobs of the tree-creation pass may be performed in parallel in at least some embodiments, e.g., using respective servers of an MLS server pool, or using multiple threads of execution (or processes) at the same MLS server”, (Lee: ¶217), “Jobs for any of the different tasks illustrated (e.g., tree generation, tree pruning or model execution) that have met their dependencies may be executed in parallel at the thread level (e.g., different threads of execution may be used for the jobs on the same server), the process level (e.g., respective processes may be launched for multiple jobs to be run concurrently on the same server or different servers), or the server level (e.g., each job of a set of concurrently-schedulable jobs may be executed at a different thread/process at a respective MLS server) in various embodiments”, (Lee: ¶218). Examiner notes: Jobs, which may be traversal operations are queued for processing by the MLS which uses an MLS server pool, therefore jobs are processed upon initialization of an MLS server. Regarding Claim 12, Lee teaches: the CPU thread is configured to immediately perform the tree traversal operation upon determining if an inference request has been received. “a client 164 of the MLS may submit a model execution request 812 to the MLS control plane 180 via a programmatic interface 861. The model execution request may specify the execution mode (batch, online or local), the input data to be used for the model run (which may be produced using a specified data source or recipe in some cases), the type of output (e.g., a prediction or an evaluation) that is desired, and/or optional parameters (such as desired model quality targets, minimum input record group sizes to be used for online predictions, and so on)”, (Lee: ¶120), “If the job does not have any dependencies that have yet to be met, and meets other criteria for immediate or in-line execution (as also determined in element 907), the requested operation may be performed without creating a job object (element 910) and the results may optionally be provided to the requesting client”, (Lee: ¶123), “Each non-leaf node of a decision tree 3320, such as root node 3322, may indicate one or more conditions or predicates to be evaluated on one or more independent variables, and the results of evaluating the predicate may determine the path to be taken next towards a leaf node of the tree at which a prediction for the DV is made for the OR” … “Similar decisions would be taken at various non-leaf nodes until a leaf node is reached, at which point a value for DV would be predicted based on the combination of predicates checked along the path” … “A similar traversal would be performed for all the records of a test data set 3330 by a decision tree based model 3335, resulting in a set of predictions 3340 of DV values”, (Lee: ¶204). Regarding Claim 13, Lee fails to teach: determining if a stop thread request has been received includes the CPU checking to see if the stop thread request has been received. However, Negishi teaches: “the main thread 120 enters a wait state waiting for a request (such as an activation request, a connection request, or a termination request) from the resident module 11b (step S301)”, (Negishi: ¶56), “The resident module 11b sends a communication thread termination notification ("termination notification") to the main thread 120 according to the received disconnection request, and the main thread 120 instructs an associated communication thread (the communication thread 124, for example) to terminate the same”, (Negishi: ¶86), “the main thread 120 of the device server communication module 11c determines whether or not the request notification is a "termination notification" (step S908). If the request notification is a "termination notification" (YES to the step S908), the main thread 120 terminates the corresponding communication thread (step S909)”, (Negishi: ¶104). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine determining if a stop thread request has been received, wherein if a stop thread request has been received, then stopping the CPU thread of Negishi with the methods and systems of Lee resulting in a system that can terminate threads when requested. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “when data transmission and reception with a device is terminated” … “it is possible to reduce consumption of resources of the information processing apparatus by a device stack in the non-data transmission and reception state”, (Negishi: ¶93). Regarding Claim 15, Lee teaches: A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform operations for implementing method for performing machine learning decision-tree based inferences, “ A non-transitory computer-accessible storage medium may also include any volatile or non-volatile media such as RAM (e.g. SDRAM, DDR SDRAM, RDRAM, SRAM, etc.), (Lee: ¶346), “A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors”, (Lee: ¶464), “a decision tree that may be generated for predictions at a machine learning service, according to at least some embodiments”, (Lee: ¶39, Fig 33), “Determine, at a provider network's machine learning service, a set of run-time Optimization goals (e.g., memory usage/footprint goals, other resource utilization goals, prediction time variation goals, prediction quality goals) for a prediction-tree based model M1 to be trained using a training data set TDS, TDS and some/all goals may be based on client-Submitted API parameters”, (Lee: Fig 39, Part 3901), “In real-time mode, a network endpoint (e.g., an IP address) may be assigned as a destination to which input data records for a specified model are to be submitted, and model predictions may be generated on groups of streaming data records as the records are received”, (Lee: ¶119), “help bridge the gaps that may exist between the back-end computational and inference capabilities of the MLS resources”, (Lee: ¶307). the method comprising: generating multiple CPU threads on an inference function server; “The jobs of the tree-creation pass may be performed in parallel in at least some embodiments, e.g., using respective servers of an MLS server pool, or using multiple threads of execution (or processes) at the same MLS server”, (Lee: ¶217), “Jobs for any of the different tasks illustrated (e.g., tree generation, tree pruning or model execution) that have met their dependencies may be executed in parallel at the thread level (e.g., different threads of execution may be used for the jobs on the same server), the process level (e.g., respective processes may be launched for multiple jobs to be run concurrently on the same server or different servers), or the server level (e.g., each job of a set of concurrently-schedulable jobs may be executed at a different thread/process at a respective MLS server) in various embodiments”, (Lee: ¶218), “a job object may be generated upon receiving the execution request 812 as described earlier, indicating any dependencies on other jobs (such as the execution of a recipe for feature processing), and the job may be placed in a queue”, (Lee: ¶120). determining if an inference request which requires a tree traversal operation has been received, wherein: if an inference request which requires the tree traversal operation has been received, then immediately executing the tree traversal operation; “a client 164 of the MLS may submit a model execution request 812 to the MLS control plane 180 via a programmatic interface 861. The model execution request may specify the execution mode (batch, online or local), the input data to be used for the model run (which may be produced using a specified data source or recipe in some cases), the type of output (e.g., a prediction or an evaluation) that is desired, and/or optional parameters (such as desired model quality targets, minimum input record group sizes to be used for online predictions, and so on)”, (Lee: ¶120), “If the job does not have any dependencies that have yet to be met, and meets other criteria for immediate or in-line execution (as also determined in element 907), the requested operation may be performed without creating a job object (element 910) and the results may optionally be provided to the requesting client”, (Lee: ¶123), “Each non-leaf node of a decision tree 3320, such as root node 3322, may indicate one or more conditions or predicates to be evaluated on one or more independent variables, and the results of evaluating the predicate may determine the path to be taken next towards a leaf node of the tree at which a prediction for the DV is made for the OR” … “Similar decisions would be taken at various non-leaf nodes until a leaf node is reached, at which point a value for DV would be predicted based on the combination of predicates checked along the path” … “A similar traversal would be performed for all the records of a test data set 3330 by a decision tree based model 3335, resulting in a set of predictions 3340 of DV values”, (Lee: ¶204). Further regarding Claim 15, Lee fails to teach: and if an inference request which requires the tree traversal operation has not been received, then determining if a stop thread request has been received, wherein if a stop thread request has been received, then stopping the CPU thread. However, Negishi teaches: “the main thread 120 enters a wait state waiting for a request (such as an activation request, a connection request, or a termination request) from the resident module 11b (step S301)”, (Negishi: ¶56), “The resident module 11b sends a communication thread termination notification ("termination notification") to the main thread 120 according to the received disconnection request, and the main thread 120 instructs an associated communication thread (the communication thread 124, for example) to terminate the same”, (Negishi: ¶86), “the main thread 120 of the device server communication module 11c determines whether or not the request notification is a "termination notification" (step S908). If the request notification is a "termination notification" (YES to the step S908), the main thread 120 terminates the corresponding communication thread (step S909)”, (Negishi: ¶104). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine and if an inference request which requires the tree traversal operation has not been received, then determining if a stop thread request has been received, wherein if a stop thread request has been received, then stopping the CPU thread of Negishi with the methods and systems of Lee resulting in a system that can terminate threads when requested. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “when data transmission and reception with a device is terminated” … “it is possible to reduce consumption of resources of the information processing apparatus by a device stack in the non-data transmission and reception state”, (Negishi: ¶93). Regarding Claim 16, Lee teaches: generating multiple CPU threads includes starting an inference function server to generate the multiple CPU threads, wherein the multiple CPU threads are configured to execute decision tree traversal operations upon starting the inference function server. “In response the MLS may generate a plan for model execution and select the appropriate resources to implement the plan” … “a job object may be generated upon receiving the execution request 812” … “the job may be placed in a queue” … “one or more servers may be identified to run the model” … “the model may be mounted (e.g., configured with a network address) to which data records may be streamed, and from which results including predictions 868 and/or evaluations 869 can be retrieved”, (Lee: ¶120), “The jobs of the tree-creation pass may be performed in parallel in at least some embodiments, e.g., using respective servers of an MLS server pool, or using multiple threads of execution (or processes) at the same MLS server”, (Lee: ¶217), “Jobs for any of the different tasks illustrated (e.g., tree generation, tree pruning or model execution) that have met their dependencies may be executed in parallel at the thread level (e.g., different threads of execution may be used for the jobs on the same server), the process level (e.g., respective processes may be launched for multiple jobs to be run concurrently on the same server or different servers), or the server level (e.g., each job of a set of concurrently-schedulable jobs may be executed at a different thread/process at a respective MLS server) in various embodiments”, (Lee: ¶218). Examiner notes: Jobs, which may be traversal operations are queued for processing by the MLS which uses an MLS server pool, therefore jobs are processed upon initialization of an MLS server. Regarding Claim 19, Lee teaches: the CPU thread is configured to immediately perform the tree traversal operation upon determining if an inference request has been received. “a client 164 of the MLS may submit a model execution request 812 to the MLS control plane 180 via a programmatic interface 861. The model execution request may specify the execution mode (batch, online or local), the input data to be used for the model run (which may be produced using a specified data source or recipe in some cases), the type of output (e.g., a prediction or an evaluation) that is desired, and/or optional parameters (such as desired model quality targets, minimum input record group sizes to be used for online predictions, and so on)”, (Lee: ¶120), “If the job does not have any dependencies that have yet to be met, and meets other criteria for immediate or in-line execution (as also determined in element 907), the requested operation may be performed without creating a job object (element 910) and the results may optionally be provided to the requesting client”, (Lee: ¶123), “Each non-leaf node of a decision tree 3320, such as root node 3322, may indicate one or more conditions or predicates to be evaluated on one or more independent variables, and the results of evaluating the predicate may determine the path to be taken next towards a leaf node of the tree at which a prediction for the DV is made for the OR” … “Similar decisions would be taken at various non-leaf nodes until a leaf node is reached, at which point a value for DV would be predicted based on the combination of predicates checked along the path” … “A similar traversal would be performed for all the records of a test data set 3330 by a decision tree based model 3335, resulting in a set of predictions 3340 of DV values”, (Lee: ¶204). Claims 3, 10 and 17 are rejected under 35 U.S.C. 103(a) as being unpatentable over Lee in view of Negishi, in further view of Jiang et al. (US 20190073243 A1) (hereinafter Jiang) Regarding Claim 3, Lee teaches: determining if an inference request has been received includes the CPU threads acquiring a spinlock function for each of the multiple CPU threads to determine if one or more inference requests which require the tree traversal operation has been received. “a client 164 of the MLS may submit a model execution request 812 to the MLS control plane 180 via a programmatic interface 861. The model execution request may specify the execution mode (batch, online or local), the input data to be used for the model run (which may be produced using a specified data source or recipe in some cases), the type of output (e.g., a prediction or an evaluation) that is desired, and/or optional parameters (such as desired model quality targets, minimum input record group sizes to be used for online predictions, and so on)”, (Lee: ¶120), “Each non-leaf node of a decision tree 3320, such as root node 3322, may indicate one or more conditions or predicates to be evaluated on one or more independent variables, and the results of evaluating the predicate may determine the path to be taken next towards a leaf node of the tree at which a prediction for the DV is made for the OR” … “Similar decisions would be taken at various non-leaf nodes until a leaf node is reached, at which point a value for DV would be predicted based on the combination of predicates checked along the path” … “A similar traversal would be performed for all the records of a test data set 3330 by a decision tree based model 3335, resulting in a set of predictions 3340 of DV values”, (Lee: ¶204). Further regarding Claim 3, Lee in view of Negishi fails to teach: determining if an inference request has been received includes the CPU threads acquiring a spinlock function for each of the multiple CPU threads to determine if one or more inference requests which require the tree traversal operation has been received. However, Jiang teaches: “As such, threads need to compete to acquire the lock before they can enter the critical section” … “Once acquired, spinlocks will usually be held until they are explicitly released, although in some implementations they may be automatically released if the thread being waited on (that which holds the lock) blocks, or goes to sleep”, (Jiang: ¶21), “thread T.sub.0 attempts to acquire the lock at A.sub.1 and is successful at B.sub.1. At the same time, threads T.sub.1-T.sub.N continue to attempt acquire the lock at A.sub.2-A.sub.N+1…”, (Jiang: ¶25), “Returning to FIG. 4, thread T.sub.0 tries to acquire the lock at A.sub.1 and is successful at B.sub.1. At the same time, threads T.sub.1-T.sub.N are also trying to acquire the lock at A.sub.2-A.sub.N+1. Since thread T.sub.0 is successful, at B.sub.1, threads T.sub.1-T.sub.N enter a power saving state P.sub.1-P.sub.N, where they wait for thread T.sub.0 to complete its task”, (Jiang: ¶39), “After initial start step 505, one or more threads (e.g., threads T.sub.1-T.sub.N of FIG. 4) vie for the lock at step 510. Next, at step 515 a first thread (e.g., thread T.sub.0 of FIG. 4) acquires the lock (e.g., at block A.sub.1 of FIG. 4)”, (Jiang: ¶42). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine determining if an inference request has been received includes the CPU threads acquiring a spinlock function for each of the multiple CPU threads to determine if one or more inference requests which require the tree traversal operation has been received of Jiang with the methods and systems of Lee in view of Negishi resulting in a system with threads capable of entering acquiring a spinlock upon request. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “a mechanism within a spinlock allows reduction of the performance and power interference associated with the improved spinlock” … “The improved spinlock allows a thread to enter a power saving state and the critical section to instruct a PCU to allocate a headroom power budget exclusively to the core that executed the instruction. The improved spinlock also provides saving in dynamic power during clock gated of the CPU resources and dynamic and static power during power gated of the CPU resources”, (Jiang: Abstract), “reduce the effective power consumption of the entire CPU package, which in turn creates headroom that enables the currently running core to enter a higher P-State (or Turbo Boost) by increasing the input voltage of the running core”, (Jiang: ¶38). Regarding Claim 10, Lee teaches: determining if an inference request has been received includes the CPU threads acquiring a spinlock function for each of the multiple CPU threads to determine if one or more inference requests which require the tree traversal operation has been received. “a client 164 of the MLS may submit a model execution request 812 to the MLS control plane 180 via a programmatic interface 861. The model execution request may specify the execution mode (batch, online or local), the input data to be used for the model run (which may be produced using a specified data source or recipe in some cases), the type of output (e.g., a prediction or an evaluation) that is desired, and/or optional parameters (such as desired model quality targets, minimum input record group sizes to be used for online predictions, and so on)”, (Lee: ¶120), “Each non-leaf node of a decision tree 3320, such as root node 3322, may indicate one or more conditions or predicates to be evaluated on one or more independent variables, and the results of evaluating the predicate may determine the path to be taken next towards a leaf node of the tree at which a prediction for the DV is made for the OR” … “Similar decisions would be taken at various non-leaf nodes until a leaf node is reached, at which point a value for DV would be predicted based on the combination of predicates checked along the path” … “A similar traversal would be performed for all the records of a test data set 3330 by a decision tree based model 3335, resulting in a set of predictions 3340 of DV values”, (Lee: ¶204). Further regarding Claim 10, Lee in view of Negishi fails to teach: determining if an inference request has been received includes the CPU threads acquiring a spinlock function for each of the multiple CPU threads to determine if one or more inference requests which require the tree traversal operation has been received. However, Jiang teaches: “As such, threads need to compete to acquire the lock before they can enter the critical section” … “Once acquired, spinlocks will usually be held until they are explicitly released, although in some implementations they may be automatically released if the thread being waited on (that which holds the lock) blocks, or goes to sleep”, (Jiang: ¶21), “thread T.sub.0 attempts to acquire the lock at A.sub.1 and is successful at B.sub.1. At the same time, threads T.sub.1-T.sub.N continue to attempt acquire the lock at A.sub.2-A.sub.N+1…”, (Jiang: ¶25), “Returning to FIG. 4, thread T.sub.0 tries to acquire the lock at A.sub.1 and is successful at B.sub.1. At the same time, threads T.sub.1-T.sub.N are also trying to acquire the lock at A.sub.2-A.sub.N+1. Since thread T.sub.0 is successful, at B.sub.1, threads T.sub.1-T.sub.N enter a power saving state P.sub.1-P.sub.N, where they wait for thread T.sub.0 to complete its task”, (Jiang: ¶39), “After initial start step 505, one or more threads (e.g., threads T.sub.1-T.sub.N of FIG. 4) vie for the lock at step 510. Next, at step 515 a first thread (e.g., thread T.sub.0 of FIG. 4) acquires the lock (e.g., at block A.sub.1 of FIG. 4)”, (Jiang: ¶42). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine determining if an inference request has been received includes the CPU threads acquiring a spinlock function for each of the multiple CPU threads to determine if one or more inference requests which require the tree traversal operation has been received of Jiang with the methods and systems of Lee in view of Negishi resulting in a system with threads capable of entering acquiring a spinlock upon request. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “a mechanism within a spinlock allows reduction of the performance and power interference associated with the improved spinlock” … “The improved spinlock allows a thread to enter a power saving state and the critical section to instruct a PCU to allocate a headroom power budget exclusively to the core that executed the instruction. The improved spinlock also provides saving in dynamic power during clock gated of the CPU resources and dynamic and static power during power gated of the CPU resources”, (Jiang: Abstract), “reduce the effective power consumption of the entire CPU package, which in turn creates headroom that enables the currently running core to enter a higher P-State (or Turbo Boost) by increasing the input voltage of the running core”, (Jiang: ¶38). Regarding Claim 17, Lee teaches: determining if an inference request has been received includes the CPU threads acquiring a spinlock function for each of the multiple CPU threads to determine if one or more inference requests which require the tree traversal operation has been received. “a client 164 of the MLS may submit a model execution request 812 to the MLS control plane 180 via a programmatic interface 861. The model execution request may specify the execution mode (batch, online or local), the input data to be used for the model run (which may be produced using a specified data source or recipe in some cases), the type of output (e.g., a prediction or an evaluation) that is desired, and/or optional parameters (such as desired model quality targets, minimum input record group sizes to be used for online predictions, and so on)”, (Lee: ¶120), “Each non-leaf node of a decision tree 3320, such as root node 3322, may indicate one or more conditions or predicates to be evaluated on one or more independent variables, and the results of evaluating the predicate may determine the path to be taken next towards a leaf node of the tree at which a prediction for the DV is made for the OR” … “Similar decisions would be taken at various non-leaf nodes until a leaf node is reached, at which point a value for DV would be predicted based on the combination of predicates checked along the path” … “A similar traversal would be performed for all the records of a test data set 3330 by a decision tree based model 3335, resulting in a set of predictions 3340 of DV values”, (Lee: ¶204). Further regarding Claim 17, Lee in view of Negishi fails to teach: determining if an inference request has been received includes the CPU threads acquiring a spinlock function for each of the multiple CPU threads to determine if one or more inference requests which require the tree traversal operation has been received. However, Jiang teaches: “As such, threads need to compete to acquire the lock before they can enter the critical section” … “Once acquired, spinlocks will usually be held until they are explicitly released, although in some implementations they may be automatically released if the thread being waited on (that which holds the lock) blocks, or goes to sleep”, (Jiang: ¶21), “thread T.sub.0 attempts to acquire the lock at A.sub.1 and is successful at B.sub.1. At the same time, threads T.sub.1-T.sub.N continue to attempt acquire the lock at A.sub.2-A.sub.N+1…”, (Jiang: ¶25), “Returning to FIG. 4, thread T.sub.0 tries to acquire the lock at A.sub.1 and is successful at B.sub.1. At the same time, threads T.sub.1-T.sub.N are also trying to acquire the lock at A.sub.2-A.sub.N+1. Since thread T.sub.0 is successful, at B.sub.1, threads T.sub.1-T.sub.N enter a power saving state P.sub.1-P.sub.N, where they wait for thread T.sub.0 to complete its task”, (Jiang: ¶39), “After initial start step 505, one or more threads (e.g., threads T.sub.1-T.sub.N of FIG. 4) vie for the lock at step 510. Next, at step 515 a first thread (e.g., thread T.sub.0 of FIG. 4) acquires the lock (e.g., at block A.sub.1 of FIG. 4)”, (Jiang: ¶42). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine determining if an inference request has been received includes the CPU threads acquiring a spinlock function for each of the multiple CPU threads to determine if one or more inference requests which require the tree traversal operation has been received of Jiang with the methods and systems of Lee in view of Negishi resulting in a system with threads capable of entering acquiring a spinlock upon request. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “a mechanism within a spinlock allows reduction of the performance and power interference associated with the improved spinlock” … “The improved spinlock allows a thread to enter a power saving state and the critical section to instruct a PCU to allocate a headroom power budget exclusively to the core that executed the instruction. The improved spinlock also provides saving in dynamic power during clock gated of the CPU resources and dynamic and static power during power gated of the CPU resources”, (Jiang: Abstract), “reduce the effective power consumption of the entire CPU package, which in turn creates headroom that enables the currently running core to enter a higher P-State (or Turbo Boost) by increasing the input voltage of the running core”, (Jiang: ¶38). Claims 4, 7, 11, 14, 18 and 20 are rejected under 35 U.S.C. 103(a) as being unpatentable over Lee in view of Negishi and Jiang, in further view of Harris et al. (US 20200026568 A1) (hereinafter Harris) Regarding Claim 4, Lee in view of Negishi and Jiang fails to teach: if no inference requests which requires a tree traversal operation or stop thread requests have been received, then the each of the multiple CPU threads will execute short sequences of lower-priority operations prior to the CPU threads attempting to reacquire the spinlock function. However, Harris teaches: “each combiner 310 has a lock (combiner lock 312) which needs to be held by a thread that is collecting requests” … “In some embodiments, the combiner lock 312 may be implemented as a simple spin lock;”, (Harris: ¶86), “for others of the worker threads that do not succeed in acquiring the combiner lock 312 (and thus that are not currently the representative thread), the method proceeds to element 460. At 460, the worker thread(s) wait for the combiner lock 312 to be released. Note that one or more worker threads may be performing work asynchronously as indicated at 454”, (Harris: ¶106), “may begin or continue executing work asynchronously as indicated at 454 while waiting for additional work to be allocated via the combiner 310”, (Harris: ¶107), “worker thread ( s ) set respective slots to a reserved value that indicates a request for work 452” … “work pending ? 453” … “worker thread ( s ) execute previously assigned work 454” … “worker thread ( s ) attempt to acquire the combiner lock 456”, (Harris: Fig 4B). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine if no inference requests which requires a tree traversal operation or stop thread requests have been received, then the each of the multiple CPU threads will execute short sequences of lower-priority operations prior to the CPU threads attempting to reacquire the spinlock function of Harris with the methods and systems of Lee in view of Negishi and Jiang resulting in waiting threads being able to execute tasks. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “the techniques described herein for combining requests may (1) increase the likelihood that the thread will have received new work before its current work runs dry, and (2) decrease the contention on the shared counter from which work is obtained”, (Harris: ¶36), “may reduce contention on the lock 312 used within the combiner 310 since, if most threads are receiving work immediately after finishing their current batches, then the threads may seldom or never need to acquire the lock 312” … “avoid fences or atomic read-modify-write instructions”, (Harris: ¶100), “resource management components and resource-management-enabled runtime systems may be configured to work together to use the hardware contexts of the machine efficiently, while reducing load imbalances between multiple parallel applications and avoiding the preempting of threads at inconvenient times”, (Harris: ¶111). Regarding Claim 7, Lee in view of Negishi and Jiang fails to teach: a stop thread request has been received, the CPU thread exits the spinlock function to allow the CPU thread to be stopped. However, Harris teaches: “process termination may be signally by the leader thread publishing a designated “finished” work item”, (Harris: ¶61), “a worker thread can watch the single shared location both for new work and for termination”, (Harris: ¶62), “if the representative thread determines there is no more work for the threads (e.g., from the response to the aggregate request sent to the shared counter 300), the representative thread may set the Start/request field for the other threads in the slots 314 to a reserved value that indicates there is no more work for the threads to perform (which may be referred to as a termination or “finished” flag)” … “, (Harris: ¶98), “more work ? 414” … “no” … “done”, (Harris: Fig 4A). Examiner notes: if no more work is assigned to the thread then the thread is given a termination flag, as seen in Fig 4A the thread stops looping through and the lock is released exiting the spinlock. It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine a stop thread request has been received, the CPU thread exits the spinlock function to allow the CPU thread to be stopped of Harris with the methods and systems of Lee in view of Negishi and Jiang resulting in threads exiting spinlock with requested to stop. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “the techniques described herein for combining requests may (1) increase the likelihood that the thread will have received new work before its current work runs dry, and (2) decrease the contention on the shared counter from which work is obtained”, (Harris: ¶36), “may reduce contention on the lock 312 used within the combiner 310 since, if most threads are receiving work immediately after finishing their current batches, then the threads may seldom or never need to acquire the lock 312” … “avoid fences or atomic read-modify-write instructions”, (Harris: ¶100), “resource management components and resource-management-enabled runtime systems may be configured to work together to use the hardware contexts of the machine efficiently, while reducing load imbalances between multiple parallel applications and avoiding the preempting of threads at inconvenient times”, (Harris: ¶111). Regarding Claim 11, Lee in view of Negishi and Jiang fails to teach: if no inference requests which requires a tree traversal operation or stop thread requests have been received, then the each of the multiple CPU threads will execute short sequences of lower-priority operations prior to the CPU threads attempting to reacquire the spinlock function. However, Harris teaches: “each combiner 310 has a lock (combiner lock 312) which needs to be held by a thread that is collecting requests” … “In some embodiments, the combiner lock 312 may be implemented as a simple spin lock;”, (Harris: ¶86), “for others of the worker threads that do not succeed in acquiring the combiner lock 312 (and thus that are not currently the representative thread), the method proceeds to element 460. At 460, the worker thread(s) wait for the combiner lock 312 to be released. Note that one or more worker threads may be performing work asynchronously as indicated at 454”, (Harris: ¶106), “may begin or continue executing work asynchronously as indicated at 454 while waiting for additional work to be allocated via the combiner 310”, (Harris: ¶107), “worker thread ( s ) set respective slots to a reserved value that indicates a request for work 452” … “work pending ? 453” … “worker thread ( s ) execute previously assigned work 454” … “worker thread ( s ) attempt to acquire the combiner lock 456”, (Harris: Fig 4B). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine if no inference requests which requires a tree traversal operation or stop thread requests have been received, then the each of the multiple CPU threads will execute short sequences of lower-priority operations prior to the CPU threads attempting to reacquire the spinlock function of Harris with the methods and systems of Lee in view of Negishi and Jiang resulting in waiting threads being able to execute tasks. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “the techniques described herein for combining requests may (1) increase the likelihood that the thread will have received new work before its current work runs dry, and (2) decrease the contention on the shared counter from which work is obtained”, (Harris: ¶36), “may reduce contention on the lock 312 used within the combiner 310 since, if most threads are receiving work immediately after finishing their current batches, then the threads may seldom or never need to acquire the lock 312” … “avoid fences or atomic read-modify-write instructions”, (Harris: ¶100), “resource management components and resource-management-enabled runtime systems may be configured to work together to use the hardware contexts of the machine efficiently, while reducing load imbalances between multiple parallel applications and avoiding the preempting of threads at inconvenient times”, (Harris: ¶111). Regarding Claim 14, Lee in view of Negishi and Jiang fails to teach: if a stop thread request has been received, the CPU thread exits the spinlock function to allow the CPU thread to be stopped. However, Harris teaches: “process termination may be signally by the leader thread publishing a designated “finished” work item”, (Harris: ¶61), “a worker thread can watch the single shared location both for new work and for termination”, (Harris: ¶62), “if the representative thread determines there is no more work for the threads (e.g., from the response to the aggregate request sent to the shared counter 300), the representative thread may set the Start/request field for the other threads in the slots 314 to a reserved value that indicates there is no more work for the threads to perform (which may be referred to as a termination or “finished” flag)” … “, (Harris: ¶98), “more work ? 414” … “no” … “done”, (Harris: Fig 4A). Examiner notes: if no more work is assigned to the thread then the thread is given a termination flag, as seen in Fig 4A the thread stops looping through and the lock is released exiting the spinlock. It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine a stop thread request has been received, the CPU thread exits the spinlock function to allow the CPU thread to be stopped of Harris with the methods and systems of Lee in view of Negishi and Jiang resulting in threads exiting spinlock with requested to stop. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “the techniques described herein for combining requests may (1) increase the likelihood that the thread will have received new work before its current work runs dry, and (2) decrease the contention on the shared counter from which work is obtained”, (Harris: ¶36), “may reduce contention on the lock 312 used within the combiner 310 since, if most threads are receiving work immediately after finishing their current batches, then the threads may seldom or never need to acquire the lock 312” … “avoid fences or atomic read-modify-write instructions”, (Harris: ¶100), “resource management components and resource-management-enabled runtime systems may be configured to work together to use the hardware contexts of the machine efficiently, while reducing load imbalances between multiple parallel applications and avoiding the preempting of threads at inconvenient times”, (Harris: ¶111). Regarding Claim 18, Lee in view of Negishi and Jiang fails to teach: if no inference requests which requires a tree traversal operation or stop thread requests have been received, then the each of the multiple CPU threads will execute short sequences of lower-priority operations prior to the CPU threads attempting to reacquire the spinlock function. However, Harris teaches: “each combiner 310 has a lock (combiner lock 312) which needs to be held by a thread that is collecting requests” … “In some embodiments, the combiner lock 312 may be implemented as a simple spin lock;”, (Harris: ¶86), “for others of the worker threads that do not succeed in acquiring the combiner lock 312 (and thus that are not currently the representative thread), the method proceeds to element 460. At 460, the worker thread(s) wait for the combiner lock 312 to be released. Note that one or more worker threads may be performing work asynchronously as indicated at 454”, (Harris: ¶106), “may begin or continue executing work asynchronously as indicated at 454 while waiting for additional work to be allocated via the combiner 310”, (Harris: ¶107), “worker thread ( s ) set respective slots to a reserved value that indicates a request for work 452” … “work pending ? 453” … “worker thread ( s ) execute previously assigned work 454” … “worker thread ( s ) attempt to acquire the combiner lock 456”, (Harris: Fig 4B). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine if no inference requests which requires a tree traversal operation or stop thread requests have been received, then the each of the multiple CPU threads will execute short sequences of lower-priority operations prior to the CPU threads attempting to reacquire the spinlock function of Harris with the methods and systems of Lee in view of Negishi and Jiang resulting in waiting threads being able to execute tasks. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “the techniques described herein for combining requests may (1) increase the likelihood that the thread will have received new work before its current work runs dry, and (2) decrease the contention on the shared counter from which work is obtained”, (Harris: ¶36), “may reduce contention on the lock 312 used within the combiner 310 since, if most threads are receiving work immediately after finishing their current batches, then the threads may seldom or never need to acquire the lock 312” … “avoid fences or atomic read-modify-write instructions”, (Harris: ¶100), “resource management components and resource-management-enabled runtime systems may be configured to work together to use the hardware contexts of the machine efficiently, while reducing load imbalances between multiple parallel applications and avoiding the preempting of threads at inconvenient times”, (Harris: ¶111). Regarding Claim 20, Lee in view of Jiang fails to teach: wherein determining if a stop thread request has been received includes the CPU checking to see if the stop thread request has been received, However, Negishi teaches: “the main thread 120 enters a wait state waiting for a request (such as an activation request, a connection request, or a termination request) from the resident module 11b (step S301)”, (Negishi: ¶56), “The resident module 11b sends a communication thread termination notification ("termination notification") to the main thread 120 according to the received disconnection request, and the main thread 120 instructs an associated communication thread (the communication thread 124, for example) to terminate the same”, (Negishi: ¶86), “the main thread 120 of the device server communication module 11c determines whether or not the request notification is a "termination notification" (step S908). If the request notification is a "termination notification" (YES to the step S908), the main thread 120 terminates the corresponding communication thread (step S909)”, (Negishi: ¶104). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein determining if a stop thread request has been received, wherein if a stop thread request has been received, then stopping the CPU thread of Negishi with the methods and systems of Lee resulting in a system that can terminate threads when requested. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “when data transmission and reception with a device is terminated” … “it is possible to reduce consumption of resources of the information processing apparatus by a device stack in the non-data transmission and reception state”, (Negishi: ¶93). Further regarding Claim 20, Lee in view of Negishi and Jiang fails to teach: and if a stop thread request has been received, the CPU thread exits the spinlock function to allow the CPU thread to be stopped. However, Harris teaches: “process termination may be signally by the leader thread publishing a designated “finished” work item”, (Harris: ¶61), “a worker thread can watch the single shared location both for new work and for termination”, (Harris: ¶62), “if the representative thread determines there is no more work for the threads (e.g., from the response to the aggregate request sent to the shared counter 300), the representative thread may set the Start/request field for the other threads in the slots 314 to a reserved value that indicates there is no more work for the threads to perform (which may be referred to as a termination or “finished” flag)” … “, (Harris: ¶98), “more work ? 414” … “no” … “done”, (Harris: Fig 4A). Examiner notes: if no more work is assigned to the thread then the thread is given a termination flag, as seen in Fig 4A the thread stops looping through and the lock is released exiting the spinlock. It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine a stop thread request has been received, the CPU thread exits the spinlock function to allow the CPU thread to be stopped of Harris with the methods and systems of Lee in view of Negishi and Jiang resulting in threads exiting spinlock with requested to stop. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “the techniques described herein for combining requests may (1) increase the likelihood that the thread will have received new work before its current work runs dry, and (2) decrease the contention on the shared counter from which work is obtained”, (Harris: ¶36), “may reduce contention on the lock 312 used within the combiner 310 since, if most threads are receiving work immediately after finishing their current batches, then the threads may seldom or never need to acquire the lock 312” … “avoid fences or atomic read-modify-write instructions”, (Harris: ¶100), “resource management components and resource-management-enabled runtime systems may be configured to work together to use the hardware contexts of the machine efficiently, while reducing load imbalances between multiple parallel applications and avoiding the preempting of threads at inconvenient times”, (Harris: ¶111). Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to SHIHAB ALAM whose telephone number is (571)272-8705. The examiner can normally be reached Mon - Fri 7:30am-5pm. 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, Bradley Teets can be reached at (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 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. /S.A./Examiner, Art Unit 2197 /BRADLEY A TEETS/Supervisory Patent Examiner, Art Unit 2197
Read full office action

Prosecution Timeline

Mar 06, 2024
Application Filed
Sep 16, 2026
Non-Final Rejection mailed — §101, §103, §112 (current)

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

1-2
Expected OA Rounds
Grant Probability
Low
PTA Risk
Based on 0 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month