DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 06/04/2026 has been entered.
Status of the claims
The argument received on June 4, 2026 has been acknowledged and entered. Claims 1 and 8 are amended. Thus, claims 1-11 are currently pending.
Response to Arguments
Applicant’s arguments filed on June 4, 2026 with respect to the rejection with respect to claims 1-11 under 35 U.S.C. 103 have been fully considered but they are moot in view of new ground of rejection.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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-5 and 8-11 are rejected under 35 U.S.C. 103 as being unpatentable over Wu et al. (“A self-tuning system based on application profiling and performance analysis for optimizing Hadoop MapReduce cluster configuration”, 20th annual international conference on high performance computing, IEEE, 18 December 2013, pages 89-98) cited in IDS (submitted on 11/18/2022) in view of Fraser et al. (US 9,760,399 B1, hereinafter referred to as “Fraser”).
Regarding claim 1, Wu teaches a method of configuring program parameters during run-time of a computing program for computation in a heterogeneous computing system (Abstract: automates the tuning of Hadoop configuration settings based on deduced application performance requirements), the method comprising:
receiving a transformation of the computing program, the transformation comprising one or more computing applications (page 89, second paragraph: the input job is divided and then assigned to several worker nodes by a master node….then assigns reduce tasks that do aggregating, combining, filtering or transforming functions on these key-value pairs using a user-supplied function to form the final output);
generating for each computing application one or more tuning parameters, the one or more tuning parameters being categorized into classes (abstract: a set of equivalence classes of MapReduce applications for which the most appropriate Hadoop configuration parameters that maximally improve performance for that class); and
for a computing application to be optimized, page 90, first paragraph: fine-tune the Hadoop cluster configuration for the job classes identified in the first step; page 90, second paragraph: configuration settings are automatically applied to provide significantly improved performance for the new incoming job; page 92: optimal configuration settings; page 93: we iteratively update these clusters by reassigning points to them; page 95: when the iteration ends, this algorithm returns the best solutions),
obtaining a performance metric for the execution of the computing application using the adjusted one or more tuning parameters and determining if the adjusted one or more tuning parameters provide an improvement with respect to the performance metric and whether a termination criterion has been met for ending the adjusting (page 90, first paragraph: fine-tune the Hadoop cluster configuration for the job classes identified in the first step; page 90, second paragraph: configuration settings are automatically applied to provide significantly improved performance for the new incoming job; page 92: optimal configuration settings; page 93: we iteratively update these clusters by reassigning points to them; page 95: when the iteration ends, this algorithm returns the best solutions),
Wu does not specifically teach storing, during run-time of the computing program, an indicator characteristic of a current dynamic state of the computing application being optimized, the indicator being captured during execution of the computing application and used in the optimization to determine, prior to said recurringly adjusting, whether a known optimization previously generated for the dynamic state is available for the dynamic state indicated by the stored indicator, the known optimization comprising a previously-determined adjustment of the one or more tuning parameters that satisfied said termination criterion.
However, Fraser teaches storing, during run-time of the computing program, an indicator characteristic of a current dynamic state of the computing application being optimized, the indicator being captured during execution of the computing application and used in the optimization to determine (col. 1, line 63-col. 2, line 8: In particular, various embodiments determine the values of various operational parameters of a computing device. These operational parameters can include, for example, temperature, available memory, processor usage, number of concurrently executing applications, number of open connections, and the like. If the value of any of these operational parameters falls outside a specified range, or at least approaches a threshold value, etc., an attempt can be made to maintain (or regain) a healthy operational state of the device; col. 2, line 26-36: different types of termination actions can be performed based upon state of the device or other such information; col. 15, lines 19- 27: various data and metric aggregated from various users can be used to help seed the dynamic prediction algorithms, which can be locally optimized on a user's device, note that the above feature of “the values of various operational parameters of a computing device” and “If the value of any of these operational parameters falls outside a specified range, or at least approaches a threshold value, etc., an attempt can be made to maintain (or regain) a healthy operational state of the device” in col. 1, line 63-col. 2, line 8, “different types of termination actions can be performed based upon state of the device or other such information” in col. 2, line 26-3, and “various data and metric aggregated from various users can be used to help seed the dynamic prediction algorithms, which can be locally optimized on a user's device” in col. 15, lines 19- 27 reads on “storing, during run-time of the computing program, an indicator (i.e., state of the device or other such information) characteristic of a current dynamic state of the computing application being optimized, the indicator being captured during execution of the computing application and used in the optimization to determine”),
prior to said recurringly adjusting, whether a known optimization previously generated for the dynamic state is available for the dynamic state indicated by the stored indicator (col. 2, line 26-36: different types of termination actions can be performed based upon state of the device or other such information. These can include actions of a first type that terminate, kill, or cleanup applications or processes on the device, or actions of a second type that throttle, slow, or otherwise adjust the operation of applications or processes on the device, among other such options, note that the above feature of “different types of termination actions can be performed based upon state of the device or other such information … These can include actions of a first type that terminate …otherwise adjust the operation of applications or processes on the device, among other such options” in col. 2, line 26-36 reads on “prior to said recurringly adjusting, whether a known optimization previously generated for the dynamic state is available for the dynamic state indicated by the stored indicator” because, there is a procedure checking whether optimization state is available or not before adjusting,
the known optimization comprising a previously determined adjustment of the one or more tuning parameters (col. 1, line 63-col. 2, line 8: see above; col. 2, line 26-36: see above, note that the above feature of “If the value of any of these operational parameters falls outside a specified range...an attempt can be made to maintain (or regain) a healthy operational state of the device” in col. 1, line 63-col. 2, line 8 “different types of termination actions can be performed based upon state of the device or other such information…adjust the operation of applications” in col. 2, lines 26-36 reads on “a previously determined adjustment of the one or more tuning parameters” because adjustment the operation of applications or processes on the device is one of regaining the healthy operational state).
Regarding claim 2, Wu in view of Fraser teaches all the limitation of claim 1, in addition, Wu teaches that the method further comprises generating the transformation by a compiler adapted to evaluate the computing program to determine computing applications which may be executed in parallel by different processing units (page 89, second paragraph: the input job is divided and then assigned to several worker nodes by a master node….then assigns reduce tasks that do aggregating, combining, filtering or transforming functions on these key-value pairs using a user-supplied function to form the final output; page 91: The Hadoop MapReduce module is a Hadoop YARN based system for parallel data processing).
Regarding claim 3, Wu in view of Fraser teaches all the limitation of claim 1, in addition, Wu teaches that the optimization is performed using a tuning routine selected from a model-based prediction process and an online search process (page 90, first paragraph: fine-tune the Hadoop cluster configuration for the job classes identified in the first step; page 90, second paragraph: configuration settings are automatically applied to provide significantly improved performance for the new incoming job; page 91: Our overall approach to the automated configuration management of a Hadoop cluster is based on a machine learning phase, which then is used for self-tuning. The machine learning phase requires training; 93: searching for the optimum configuration, note that the above feature of “settings are automatically applied to provide significantly improved performance for the new incoming job” in page 90, “a machine learning phase, which then is used for self-tuning” in page 91 and “searching for the optimum configuration” in page 93 reads on “the optimization is performed using a tuning routine selected from a model-based prediction process and an online search process.
Regarding claim 4, Wu in view of Fraser teaches all the limitation of claim 3, in addition, Wu teaches that the online search process is used to provide training data to update the model-based prediction process (page 91: our overall approach to the automated configuration management of a Hadoop cluster is based on a machine learning phase, which then is used for self-tuning; page 92: we have redefined the performance model and developed a new solution, which can not only eliminate this effect caused by different data sizes; page 93: searching for the optimum configuration, note that the above feature of “a machine learning phase, which then is used for self-tuning” in page 91, “developed a new solution, which can not only eliminate this effect caused by different data sizes” in page 92, and “searching for the optimum configuration” in page 93 reads on “online search process is used to provide training data to update the model-based prediction process).
Regarding claim 5, Wu in view of Fraser teaches all the limitation of claim 1, in addition, Wu teaches that the one or more tuning parameters are used to determine if the optimization procedure can be performed in a restricted search space (page 92: our investigations we have also found that different sizes of input data will affect the performance pattern differently to some degree….we have redefined the performance model and developed a new solution, which can not only eliminate this effect caused by different data sizes; page 93: decrease the size of the parameter space, note that the above feature of “decrease the size of the parameter space” reads on “a one or more tuning parameters”).
Regarding claim 8, Wu teaches a computing system programmed to optimize a computing application, the computing application adjusts one or more tuning parameters of the computing application, executes the computing application using the adjusted one or more tuning parameters (page 90, first paragraph: fine-tune the Hadoop cluster configuration for the job classes identified in the first step; page 90, second paragraph: configuration settings are automatically applied to provide significantly improved performance for the new incoming job; page 92: optimal configuration settings; page 93: we iteratively update these clusters by reassigning points to them; page 95: when the iteration ends, this algorithm returns the best solution),
obtains a performance metric for the execution of the computing application using the adjusted one or more tuning parameters and determines if the adjusted one or more tuning parameters provide an improvement with respect to the performance metric and whether a termination criterion has been met for ending the adjusting (page 90, first paragraph: fine-tune the Hadoop cluster configuration for the job classes identified in the first step; page 90, second paragraph: configuration settings are automatically applied to provide significantly improved performance for the new incoming job; page 92: optimal configuration settings; page 93: we iteratively update these clusters by reassigning points to them; page 95: when the iteration ends, this algorithm returns the best solution),
Wu does not specifically teach storing, during run-time of the computing program, an indicator characteristic of a current dynamic state of the computing application being optimized, the indicator being captured during execution of the computing application and used in the optimization to determine, prior to said recurringly adjusting, whether a known optimization previously generated for the dynamic state is available for the dynamic state indicated by the stored indicator, the known optimization comprising a previously-determined adjustment of the one or more tuning parameters that satisfied said termination criterion.
However, Fraser teaches storing, during run-time of the computing program, an indicator characteristic of a current dynamic state of the computing application being optimized, the indicator being captured during execution of the computing application and used in the optimization to determine (col. 1, line 63-col. 2, line 8: In particular, various embodiments determine the values of various operational parameters of a computing device. These operational parameters can include, for example, temperature, available memory, processor usage, number of concurrently executing applications, number of open connections, and the like. If the value of any of these operational parameters falls outside a specified range, or at least approaches a threshold value, etc., an attempt can be made to maintain (or regain) a healthy operational state of the device; col. 2, line 26-36: different types of termination actions can be performed based upon state of the device or other such information; col. 15, lines 19- 27: various data and metric aggregated from various users can be used to help seed the dynamic prediction algorithms, which can be locally optimized on a user's device, note that the above feature of “the values of various operational parameters of a computing device” and “If the value of any of these operational parameters falls outside a specified range, or at least approaches a threshold value, etc., an attempt can be made to maintain (or regain) a healthy operational state of the device” in col. 1, line 63-col. 2, line 8, “different types of termination actions can be performed based upon state of the device or other such information” in col. 2, line 26-3, and “various data and metric aggregated from various users can be used to help seed the dynamic prediction algorithms, which can be locally optimized on a user's device” in col. 15, lines 19- 27 reads on “storing, during run-time of the computing program, an indicator (i.e., state of the device or other such information) characteristic of a current dynamic state of the computing application being optimized, the indicator being captured during execution of the computing application and used in the optimization to determine”),
prior to said recurringly adjusting, whether a known optimization previously generated for the dynamic state is available for the dynamic state indicated by the stored indicator (col. 2, line 26-36: different types of termination actions can be performed based upon state of the device or other such information. These can include actions of a first type that terminate, kill, or cleanup applications or processes on the device, or actions of a second type that throttle, slow, or otherwise adjust the operation of applications or processes on the device, among other such options, note that the above feature of “different types of termination actions can be performed based upon state of the device or other such information … These can include actions of a first type that terminate …otherwise adjust the operation of applications or processes on the device, among other such options” in col. 2, line 26-36 reads on “prior to said recurringly adjusting, whether a known optimization previously generated for the dynamic state is available for the dynamic state indicated by the stored indicator” because, there is a procedure checking whether optimization state is available or not before adjusting),
the known optimization comprising a previously determined adjustment of the one or more tuning parameters (col. 1, line 63-col. 2, line 8: see above; col. 2, line 26-36: see above, note that the above feature of “If the value of any of these operational parameters falls outside a specified range...an attempt can be made to maintain (or regain) a healthy operational state of the device” in col. 1, line 63-col. 2, line 8 “different types of termination actions can be performed based upon state of the device or other such information…adjust the operation of applications” in col. 2, lines 26-36 reads on “a previously determined adjustment of the one or more tuning parameters” because adjustment the operation of applications or processes on the device is one of regaining the healthy operational state).
Regarding claim 9, Wu in view of Fraser teaches all the limitation of claim 8, in addition, Wu teaches that the computing system is adapted to perform the optimization using a tuning routine selected from a model-based prediction process and an online search process (page 90, first paragraph: fine-tune the Hadoop cluster configuration for the job classes identified in the first step; page 90, second paragraph: configuration settings are automatically applied to provide significantly improved performance for the new incoming job; page 91: Our overall approach to the automated configuration management of a Hadoop cluster is based on a machine learning phase, which then is used for self-tuning. The machine learning phase requires training; 93: searching for the optimum configuration, note that the above feature of “settings are automatically applied to provide significantly improved performance for the new incoming job” in page 90, “a machine learning phase, which then is used for self-tuning” in page 91 and “searching for the optimum configuration” in page 93 reads on “the optimization is performed using a tuning routine selected from a model-based prediction process and an online search process).
Regarding claim 10, Wu in view of Fraser teaches all the limitation of claim 9, in addition, Wu teaches that the computing system is adapted to use the online search process to provide training data to update the model-based prediction process (page 91: our overall approach to the automated configuration management of a Hadoop cluster is based on a machine learning phase, which then is used for self-tuning; page 92: we have redefined the performance model and developed a new solution, which can not only eliminate this effect caused by different data sizes; page 93: searching for the optimum configuration, note that the above feature of “a machine learning phase, which then is used for self-tuning” in page 91, “developed a new solution, which can not only eliminate this effect caused by different data sizes” in page 92, and “searching for the optimum configuration” in page 93 reads on “online search process is used to provide training data to update the model-based prediction process).
Regarding claim 11, Wu in view of Fraser teaches all the limitation of claim 8, in addition, Wu teaches that the computing system is adapted to use one or more tuning parameters to determine if the optimization procedure can be performed in a restricted search space ( page 92: our investigations we have also found that different sizes of input data will affect the performance pattern differently to some degree….we have redefined the performance model and developed a new solution, which can not only eliminate this effect caused by different data sizes; page 93: decrease the size of the parameter space, note that the above feature of “decrease the size of the parameter space” reads on “a one or more tuning parameters”).
Claims 6 and 7 are rejected under 35 U.S.C. 103 as being unpatentable over Wu in view of Fraser further in view of Rudolf et al. (“Efficient hierarchical online-autotuning: a case study on polyhedral accelerator mapping,” proceedings of the ACM international conference on supercomputing, 26 June 2019, pages 354-366, hereinafter referred to as “Rudolf”) cited in IDS (submitted on 11/18/2022).
Regarding claim 6, Wu in view of Fraser teaches all the limitation of claim 2. Wu and Fraser do not specifically teach that the transformation is generated using a polyhedral parallelization compiler.
However, Rudolf teaches that the transformation is generated using a polyhedral parallelization compiler (abstract: a polyhedral parallelizing compiler for; page 356: polyhedral compilation techniques are determined).
Wu and Rudolf are both considered to be analogous to the claimed invention because they are in the same filed of identifying the optimal program variants. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the polyhedral parallelization compiler such as is described in Padilla into Rudolf, in order to allow for hierarchical tuning of dependent subspaces using individual search algorithms, thus reducing the complexity of the space by orders of magnitude (Rudolf, page 355).
Regarding claim 7, Wu in view of Fraser and Rudolf teaches all the limitation of claim 6. Wu and Fraser do not specifically teach that the polyhedral parallelization compiler transforms source code into an intermediate representation and further transforms the intermediate representation into binary code suitable for execution on computing platforms forming the heterogeneous computing system.
However, Rudolf teaches that the polyhedral parallelization compiler transforms source code into an intermediate representation (abstract: a polyhedral parallelizing compiler for; page 356: polyhedral compilation techniques are determined) and
further transforms the intermediate representation into binary code suitable for execution on computing platforms forming the heterogeneous computing system (page 358: generating a few hundred or thousand different versions of the code enormously increases compile time and binary size).
Wu and Rudolf are both considered to be analogous to the claimed invention because they are in the same filed of identifying the optimal program variants. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the polyhedral parallelization compiler such as is described in Padilla into Rudolf, in order to allow for hierarchical tuning of dependent subspaces using individual search algorithms, thus reducing the complexity of the space by orders of magnitude (Rudolf, page 355).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SANGKYUNG LEE whose telephone number is (571)272-3669. The examiner can normally be reached Monday-Friday 8:30am-5:00pm.
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, LEE RODAK can be reached at 571-270-5628. 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.
/SANGKYUNG LEE/Examiner, Art Unit 2858
/LEE E RODAK/Supervisory Patent Examiner, Art Unit 2858