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 .
Claims 1 – 20 are pending for examination.
Priority
Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 08/14/24 and 04/23/25 are in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 20, 23, 27 – 28, 31 and 38 - 39 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1 – 2, 8 – 9, 11, and 17 - 18 of U.S. Patent No. 11,609,799 (hereinafter 799).
Claims 20, 23, 27 – 28, 31 and 38 - 39 of current application 18/5689,050 (hereinafter 050).
Claims 1 – 2, 8 – 9, 11, and 17 - 18 of Patent Application 11,609,799 (herein after 799).
20. A method for distributing data processing jobs to a plurality of compute devices in a distributed computing environment, the method performed by a computer platform comprising at least one computer system, the method comprising the steps of:
receiving at the computer platform a job payload comprising a compute model and job data to be processed by the compute model;
dividing the job data into a plurality of data chunks;
sending the compute model and a benchmark data set extracted from the job data to a benchmark compute platform;
receiving from the benchmark compute platform an indication of benchmark job computation speed for processing of the benchmark data by the compute model;
(Note: step of “which can be separately processed by the compute model and determining step can read on sending and receiving step);
selecting a cluster of compute devices from the plurality of compute devices and allocating each of the plurality of data chunks to a respective compute device in the cluster such that for each respective compute device in the cluster, an estimated duration to complete processing of allocated data chunks with the compute model is less than a first predefined duration, and wherein the estimated duration is determined based on the benchmark job computation speed;
sending each respective compute device in the cluster the compute model and the data chunks allocated to the respective compute device in the cluster; and
receiving from respective compute devices in the cluster compute result data sets, each compute result data set associated with a respective data chunk.
23. (NEW) The method of claim 20, wherein the step of sending each respective compute device in the cluster the compute model and the data chunks allocated to that respective compute device comprises the steps of:
sending the compute model to the respective compute devices using a first data transfer process; and sending the data chunks to the respective compute devices using a second data transfer process different from the first data transfer process.
27. (NEW) The method of claim 20, further comprising the step of:
in response to a health alert condition for a first compute device in the cluster reassigning the data chunks allocated to the first compute device and for which compute results have not been received to a replacement compute device selected from the plurality of compute devices.
28. (NEW) The method of claim 27, further comprising the step of periodically requesting from each respective compute devices in the cluster a response message indicating health status of the respective compute device.
31. (NEW) A system for distributing data processing jobs to a plurality of compute devices in a distributed computing environment, the system comprising:
a computer platform comprising at least one programmable computer system having a computer memory storing instructions that are executable to configure the computer platform to:
the memory having computer instructions stored therein which, when executed, configure the processor to: receive a job payload comprising a compute model and job data to be processed by the compute model; divide the job data into a plurality of data chunks;
send the compute model and a benchmark data set extracted from the job data to a benchmark compute platform;
receive from the benchmark compute platform an indication of benchmark job computation speed for processing of the benchmark data by the compute model
(Note: step of “which can be separately processed by the compute model and determining step can read on sending and receiving step);
select a cluster of compute devices from the plurality of compute devices and allocate each of the plurality of data chunks to a respective compute device in the cluster such that for each respective compute device in the cluster, an estimated duration to complete processing of allocated data chunks with the compute model is less than a first predefined duration, and wherein the estimated duration is determined based on the benchmark job computation speed;
send to each respective compute device in the cluster the compute model and the data chunks allocated to the respective compute device in the cluster; and receive from respective compute devices in the cluster compute result data sets, each compute result data set associated with a respective data chunk.
38. (NEW) The system of claim 31, wherein the computer instructions are executable to further configure the computer platform to:
in response to receipt of a health alert condition for a first compute device in the cluster, reassign the data chunks allocated to the first compute device and for which compute results have not been received to a replacement compute device selected from the plurality of compute devices.
39. (NEW) The system of claim 38, wherein the computer instructions are executable to further configure the computer platform to periodically request from each respective compute device in the cluster a response message indicating health status of the respective compute device.
1. A method for distributing data processing jobs in a heterogeneous distributed computing environment to compute devices, each compute device being of a respective device type, having a respective network address and available devices resources, the available devices resources comprising processing resources and storage resources, the method comprising the steps of:
receiving at a central server a job payload comprising an executable compute model and job data to be processed by the compute model, the job data dividable into a plurality of data chunks each of which can be separately processed by the compute model;
determining a benchmark job computation speed by executing the received compute model on a first portion of the received job data using a benchmark compute platform;
identifying a plurality of compute devices having available device resources sufficient to execute the compute model on at least one data chunk;
determine for each of the plurality of compute devices based on the benchmark job computation speed a respective estimated job execution speed;
selecting from the plurality of compute devices a cluster of compute devices to execute the compute model on the plurality of data chunks;
allocating each of the data chunks to a respective compute device in the cluster, wherein each device in the cluster has at least one data chunk allocated to it, and each respective compute device, based on the respective estimated job execution speed, has an estimated duration to complete processing of allocated data chunks by the compute model less than a predefined value;
sending each respective compute device in the cluster the compute model and the data chunks allocated to that respective compute device; and
receiving from respective compute devices compute result data sets, each compute result data set associated with a respective data chunk.
2. The method of claim 1, wherein the step of sending each respective compute device in the cluster the compute model and the data chunks allocated to that respective compute device comprises the steps of:
sending the compute model to the respective compute devices using a first software engine; and sending the data chunks to the respective compute devices using a second software engine separate from the first software engine.
8. The method of claim 1, further comprising the step of receiving from a first compute device in the cluster a health status message; in response to a determination that the health status message contains a health alert, reassigning the data chunks allocated to the first compute device and for which compute results have not been received to a different compute device selected from the plurality of compute devices.
9. The method of claim 8, further comprising the step of periodically requesting from each respective compute devices in the cluster a response message indicating health status of the respective compute device.
11. A system for distributing data processing jobs in a heterogeneous distributed computing environment the system comprising: a computer management platform comprising a processor in communication with a computer memory and connected to a network through which the management platform can communicate with a plurality of compute devices;
the memory having data stored therein specifying for each respective compute device a respective network address, device type, and available devices resources, the available devices resources comprising processing resources and storage resources;
the memory having computer instructions stored therein which, when executed, configure the processor to: receive a job payload comprising an executable compute model and job data to be processed by the compute model, the job data dividable into a plurality of data chunks each of which can be separately processed by the compute model; determine a benchmark job computation speed based on an execution of the received compute model on a first portion of the received job data by a benchmark compute platform;
identify a plurality of compute devices having available device resources sufficient to execute the compute model on at least one data chunk;
determine for each of the plurality of compute devices based on the benchmark job computation speed a respective estimated job execution speed;
select from the plurality of compute devices a cluster of compute devices to execute the compute model on the plurality of data chunks;
allocate each of the data chunks to a respective compute device in the cluster, wherein each device in the cluster has at least one data chunk allocated to it, and each respective compute device, based on the respective estimated job execution speed, has an estimated duration to complete processing of allocated data chunks by the compute model less than a predefined value;
send each respective compute device in the cluster the compute model and the data chunks allocated to that respective compute device; and
receive from respective compute devices compute result data sets, each compute result data set associated with a respective data chunk.
17. The system of claim 11, the computer instructions further configuring the processor to: receive from a first compute device in the cluster a health status message; in response to a determination that the health status message contains a health alert, reassign the data chunks allocated to the first compute device and for which compute results have not been received to a different compute device selected from the plurality of compute devices.
18. The system of claim 17, the computer instructions further configuring the processor to periodically request from each respective compute devices in the cluster a response message indicating health status of the respective compute device.
This is a provisional nonstatutory double patenting rejection.
Conclusion
The prior art made of record but not relied upon request is considered to be pertinent to applicant’s disclosure.
Chess, (US PUB 2012/0222042), discloses a method for managing a system of heterogeneous workloads by applying a single micro-benchmark web application for calculating CPU sleep times for jobs and build a model to predict the performance of a flow (title, abstract and figures 1 – 13).
Manolescu, (US PUB 2010/0223212), discloses a method for providing for task-related electronic feedback based on user interaction (title, abstract and figures 1 – 4).
Prakash, (US PUB US 2019/0220703), discloses a method for loading partitioning in distributed machine learning (ML) training for computations respecting load partitions (title, abstract and figures 1 – 15).
Coleman, (EP 3 865 056), discloses methods for collecting, analyzing and providing feedback of bio-signal data (title, abstract and figures 1 - 19).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to PHUONG N HOANG whose telephone number is (571)272-3763. The examiner can normally be reached 9:5-30.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, KEVIN YOUNG can be reached at 571-270-3180. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/PHUONG N HOANG/Examiner, Art Unit 2194 /KEVIN L YOUNG/Supervisory Patent Examiner, Art Unit 2194