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 .
Status of Claims
1. Claims 1, 3-6, 8-9, 11, and 13-19 are currently amended.
2. Claims 1-20 are pending.
3. Claims 1-20 are rejected.
Response to Arguments
4. Regarding 35 U.S.C. 101 Rejections:
Applicant’s amendments and arguments with respect to the 35 U.S.C. 101 rejections have been fully considered and are persuasive. The rejections under 35 U.S.C. 101 have been withdrawn.
5. Regarding 35 U.S.C. 103 Rejections:
Applicant’s amendments and arguments to claims 1,11, and 18 have been considered and are not persuasive. The rejections under 35 U.S.C. 103 are maintained. Additionally, applicant’s arguments are rejected under a new ground of rejection necessitated by the amendment.
Applicant argues in remarks:
Independent Claims 1, 11, and 18 have been amended to clarify that there are different schedulers, NOT just different schedules. In particular, that "each scheduler is of a respective different scheduler type representing a scheduling strategy or technique used by the scheduler for scheduling a task of a respective task type in a respective schedule for the respective task type," as recited in independent Claims 1, 11, and 18. The cited art has one scheduler that makes multiple schedules and, as such, fails to render obvious independent Claims 1, 11, and 18.
Since "[a] reference is only good for what it clearly and definitely discloses," a person of ordinary skill in the art would not have been led by the cited references, individually or in combination, to arrive at the claimed invention, because the references fail to disclose all of the claimed limitations. In re Hughes, 145 U.S.P.Q. 467, 471 (C.C.P.A. 1965); In re Moreton, 129 U.S.P.Q. 227, 230 (C.C.P.A. 1961). For at least these reasons, Applicant respectfully submits that independent Claims 1, 11, and 18, and any dependent claims, are patentable over the cited art. Applicant respectfully requests reconsideration of the pending claims and a notice of allowance.
In light of the foregoing, Applicant respectfully submits that independent Claims 1, 11, and 18, as well as the Claims depending therefrom, are in condition for allowance. Accordingly, reconsideration and withdrawal of the rejections are respectfully requested.
With the newly amended claims, the overall scope of the claim does not read the same way it did before. Therefore, new art and combination thereof was introduced to better suit the new scope of the claims. In prior art, Na et al. teaches of scheduling tasks based on specific characteristics of the task to cores with different scheduling policies. Despite that, Na does not explicitly teach of multiple schedulers.
However, in analogous art, Liu teaches:
[Abstract] The cloud computing system includes at least an arbiter and multiple schedulers, each scheduler is corresponding to one scheduling policy [...].
[0004] In the cloud computing system with multiple schedulers, each scheduler is corresponding to one scheduling policy, and is responsible for one type of service.
Na teaches of scheduling tasks in consideration of different characteristics. Tasks are scheduling on cores that have scheduling policies that are capable of handling the task type (Abstract; [0034]; [0035]; [0036]). Fig. 3 of Na shows how each core has a scheduling policy. Similarly, Liu teaches of determining a primary scheduler that corresponds to a scheduling policy. Each scheduler is associated with a scheduling policy (Abstract; [0007]; [0008]). Therefore, it would be obvious to one of ordinary skill in that are that scheduling policies have an associated scheduler.
Although Na and Liu teach of scheduling tasks based on specific characteristics of the task to a scheduler selected from a plurality of schedulers, Na and Liu do not explicitly teach associated with software for operating an autonomous vehicle (AV) and to navigate the AV in its environment.
However, in analogous art, Lim teaches:
[0010] According to an aspect of the present disclosure, a control apparatus of an autonomous vehicle includes a plurality of cores, and a scheduler that schedules a plurality of tasks corresponding to each operation mode of the autonomous vehicle for each of the cores, and adjusts an execution time of a task in each core based on a current operation mode of the autonomous vehicle; Fig. 2; [0058] As illustrated in FIG. 2, the scheduler 30 sequentially schedules the task A, the task D, and the task F to be executed in the driving mode to a core 0 (21), and also sequentially schedules the task 1 and the task 3 to be executed in the parking mode to the core 0 (21). Furthermore, the scheduler 30 schedules the task B to be executed in the driving mode to a core 1 (22), and sequentially schedules the task 2 and the task 4 to be executed in the parking mode to the core 1 (22). Furthermore, the scheduler 30 schedules the task C to be executed in the driving mode to a core 2 (23), and sequentially schedules the task 5 and the task 6 to be executed in the parking mode to the core 2 (23). Furthermore, the scheduler 30 sequentially schedules the task E and the task G to be executed in the driving mode to a core 3 (24), and also schedules the task 7 to be executed in the parking mode to the core 3 (24);
[0003] In general, an autonomous vehicle can recognize a road environment by itself, may determine a driving situation, and may control various systems in the vehicle, including a steering device, to move from a current position to a target position along a driving route. In the instant case, the various systems may include an Autonomous Emergency Braking (AEB), a Forward Collision Warning System (FCW), an Adaptive Cruise Control (ACC), and a Lane Departure Warning System (LDWS), a Lane Keeping Assist System (LKAS), a Blind Spot Detection (BSD), Rear-end Collision Warning System (RCW), a Smart Parking Assist System (SPAS), and the like.
Similarly to Na and Liu, Lim teaches of a plurality of cores that tasks get scheduled on. Moreover, Lim does this on an autonomous vehicle system (Fig 2; Abstract; [0010]). Therefore, it would be obvious for one of ordinary skill in the art that scheduling tasks based on specific characteristics of the task to a scheduler selected from a plurality of schedulers on a multi-core system can be done on an autonomous vehicle. Together, Na, Liu, and Lim teach of selecting a scheduler from among a plurality of schedulers, wherein each scheduler has a different scheduling strategy or technique used by the scheduler for scheduling a task, wherein the task is for operating an autonomous vehicle.
Additionally, claims 2-10, 12-17, and 19-20 depend from and further limit amended claims 1, 11, and 18 and are therefore also rejected under 35 U.S.C 103. The full rejection can be found in the 35 U.S.C. 103 rejection section below.
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.
6. Claims 1-2, 6-7, 11-12, 16-18, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Na et al. US 20150100964 A1 in view of Liu US 20190280945 A1, in further view of Lim US 20230219596 A1.
7. With regard to claim 1, Na teaches:
A computer-implemented system, comprising:
one or more processing units ([0004] That is, tasks performed in related art multi-core systems are allocated CPU resources according to a scheduling policy of the system and also scheduled according to a task migration policy for defining which core should performs a specific task, when the specific task should be migrated from the core to another, and so on. Thus performance of multi-core systems depends on such a task migration policy; [0010] For example, as shown in FIG. 2, the related art multi-core system includes four CPU cores CPU core 0, CPU core 1, CPU core 2, and CPU core 3, which include corresponding execution queues Run-queue 0, Run-queue 1, Run-queue 2, and Run-queue 3, respectively.); and
one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processing units, cause the one or more processing units to perform operations comprising ([0071] Accordingly, an embodiment of the invention may be implemented as a computer implemented method or as a non-transitory computer readable medium with computer executable instructions stored thereon. In an embodiment, when executed by the processor, the computer readable instructions may perform a method according to at least one aspect of the invention.):
receiving a plurality of requests, each request requesting execution of a respective task associated with software for operating an autonomous vehicle (AV) ([0031] The apparatus for managing migration of tasks between cores based on a scheduling policy of the present invention is an apparatus that can give any scheduling policy to each core, and includes a task characteristic analysis unit 110, a scheduling policy-based task migration management unit 120, and a core based scheduling policy setting unit 130; [0034] For example, when the characteristic of the task is changed from an input/output task that requires a user to perform input/output operations according to a specific context of the multi-core system to a computing task that performs complicated arithmetic operations, the task characteristic analysis unit 110 analyzes the change in characteristic of the task and delivers information on the analyzed change in characteristic to the scheduling policy-based task migration management unit 120 such that the performance of each task may be continuously maintained; Examiner’s Note: Analysis information regarding a task is delivered so that it may continuously be maintained. This is requesting that it is continuing to be executed on a proper core.);
for each individual task of the respective tasks:
selecting, for an individual task of the requested tasks based on an attribute of the individual task, a scheduler from among a plurality of schedulers, wherein each scheduler is of a respective different scheduler type representing a scheduling strategy or technique used by the scheduler for scheduling a task of a respective task type in a respective schedule for the respective task type ([0009] That is, tasks with various characteristics require allocation of CPU resources simultaneously: some tasks may require fast allocation of CPU resources during a short execution time; and other tasks may require allocation of CPU resources for a long time at a time; [0034] For example, when the characteristic of the task is changed from an input/output task that requires a user to perform input/output operations according to a specific context of the multi-core system to a computing task that performs complicated arithmetic operations, the task characteristic analysis unit 110 analyzes the change in characteristic of the task and delivers information on the analyzed change in characteristic to the scheduling policy-based task migration management unit 120 such that the performance of each task may be continuously maintained; [0035] The core-based scheduling policy setting unit 130 sets scheduling policies specialized for the cores CORE 0, CORE 1, . . . , CORE N such that the cores CORE 0, CORE 1, . . . , CORE N may perform the specialized scheduling policies according to the characteristic of the task; [0036] For example, the core-based scheduling policy setting unit 130 may set a scheduling policy, which is intended for a task requiring a fast user response, for CORE 0 such that the task requiring the fast user response may be performed at CORE 0; Examiner’s Note: Each distinct scheduling policy is a scheduler that has a different scheduling strategy/technique. Tasks are assigned to cores and their respective schedulers based on task characteristic/type.);
determining, by the selected scheduler, a schedule to execute the individual task on an infrastructure computing system including a plurality of resources, wherein the determining comprises scheduling one or more resources of the plurality of resources for the individual task ([0004] That is, tasks performed in related art multi-core systems are allocated CPU resources according to a scheduling policy of the system and also scheduled according to a task migration policy for defining which core should performs a specific task, when the specific task should be migrated from the core to another, and so on. Thus performance of multi-core systems depends on such a task migration policy; [0009] That is, tasks with various characteristics require allocation of CPU resources simultaneously: some tasks may require fast allocation of CPU resources during a short execution time; and other tasks may require allocation of CPU resources for a long time at a time; [0037] More specifically, the core-based scheduling policy setting unit 130 may receive information on a characteristic of each task that is classified by the scheduling policy-based task migration management unit 120 and then set a minimum guaranteed execution time and a scheduling unit time, which are core elements of the scheduling policy, on the basis of the received information on a characteristic of each task such that the cores CORE 0, CORE 1, . . . , CORE N may secure that tasks with different characteristics are provided with optimal operational environments, that is the tasks may operate at the cores having scheduling policies that are optimally suitable for the tasks, respectively.); and
transmitting an instruction to execute the individual task using the scheduled one or more resources ([0004] That is, tasks performed in related art multi-core systems are allocated CPU resources according to a scheduling policy of the system and also scheduled according to a task migration policy for defining which core should performs a specific task, when the specific task should be migrated from the core to another, and so on. Thus performance of multi-core systems depends on such a task migration policy; [0037] More specifically, the core-based scheduling policy setting unit 130 may receive information on a characteristic of each task that is classified by the scheduling policy-based task migration management unit 120 and then set a minimum guaranteed execution time and a scheduling unit time, which are core elements of the scheduling policy, on the basis of the received information on a characteristic of each task such that the cores CORE 0, CORE 1, . . . , CORE N may secure that tasks with different characteristics are provided with optimal operational environments, that is the tasks may operate at the cores having scheduling policies that are optimally suitable for the tasks, respectively ; [0057] In operation S501, the method sets scheduling policies specialized for the cores CORE 0, CORE 1, . . . , CORE N such that the cores CORE 0, CORE 1, . . . , CORE N may perform the specialized scheduling policies according to the characteristic of the tasks; Examiner’s Note: Scheduling policies are set for cores so that they may execute tasks.); and
executing the respective tasks using the scheduled one or more resources to navigate the AV in its environment ([0004] That is, tasks performed in related art multi-core systems are allocated CPU resources according to a scheduling policy of the system and also scheduled according to a task migration policy for defining which core should performs a specific task, when the specific task should be migrated from the core to another, and so on. Thus performance of multi-core systems depends on such a task migration policy; [0058] For example, a scheduling policy, which is intended for a task requiring a fast user response, may be set for CORE 0 such that the task requiring the fast user response may be performed at CORE 0; Examiner’s Note: Task is performed on the core.).
Although Na teaches of scheduling tasks based on specific characteristics of the task to cores with different scheduling policies, Na does not explicitly teach of multiple schedulers.
However, in analogous art, Liu teaches:
[Abstract] The cloud computing system includes at least an arbiter and multiple schedulers, each scheduler is corresponding to one scheduling policy [...].
[0004] In the cloud computing system with multiple schedulers, each scheduler is corresponding to one scheduling policy, and is responsible for one type of service.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Na with the teachings of Liu of multiple schedulers. Na teaches of scheduling tasks in consideration of different characteristics. Tasks are scheduling on cores that have scheduling policies that are capable of handling the task type (Abstract; [0034]; [0035]; [0036]). Fig. 3 of Na shows how each core has a scheduling policy. Similarly, Liu teaches of determining a primary scheduler that corresponds to a scheduling policy. Each scheduler is associated with a scheduling policy (Abstract; [0007]; [0008]). Therefore, it would be obvious to one of ordinary skill in that are that scheduling policies have an associated scheduler.
Although Na and Liu teach of scheduling tasks based on specific characteristics of the task to a scheduler selected from a plurality of schedulers, Na and Liu do not explicitly teach associated with software for operating an autonomous vehicle (AV) and to navigate the AV in its environment.
However, in analogous art, Lim teaches:
associated with software for operating an autonomous vehicle (AV) ([0010] According to an aspect of the present disclosure, a control apparatus of an autonomous vehicle includes a plurality of cores, and a scheduler that schedules a plurality of tasks corresponding to each operation mode of the autonomous vehicle for each of the cores, and adjusts an execution time of a task in each core based on a current operation mode of the autonomous vehicle; Fig. 2; [0058] As illustrated in FIG. 2, the scheduler 30 sequentially schedules the task A, the task D, and the task F to be executed in the driving mode to a core 0 (21), and also sequentially schedules the task 1 and the task 3 to be executed in the parking mode to the core 0 (21). Furthermore, the scheduler 30 schedules the task B to be executed in the driving mode to a core 1 (22), and sequentially schedules the task 2 and the task 4 to be executed in the parking mode to the core 1 (22). Furthermore, the scheduler 30 schedules the task C to be executed in the driving mode to a core 2 (23), and sequentially schedules the task 5 and the task 6 to be executed in the parking mode to the core 2 (23). Furthermore, the scheduler 30 sequentially schedules the task E and the task G to be executed in the driving mode to a core 3 (24), and also schedules the task 7 to be executed in the parking mode to the core 3 (24).);
to navigate the AV in its environment ([0003] In general, an autonomous vehicle can recognize a road environment by itself, may determine a driving situation, and may control various systems in the vehicle, including a steering device, to move from a current position to a target position along a driving route. In the instant case, the various systems may include an Autonomous Emergency Braking (AEB), a Forward Collision Warning System (FCW), an Adaptive Cruise Control (ACC), and a Lane Departure Warning System (LDWS), a Lane Keeping Assist System (LKAS), a Blind Spot Detection (BSD), Rear-end Collision Warning System (RCW), a Smart Parking Assist System (SPAS), and the like.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Na and Liu with the teachings of Lim wherein the process is associated with software for operating an autonomous vehicle (AV) to navigate the AV in its environment. Similarly to Na and Liu, Lim teaches of a plurality of cores that tasks get scheduled on. Moreover, Lim does this on an autonomous vehicle system (Fig 2; Abstract; [0010]). Therefore, it would be obvious for one of ordinary skill in the art that scheduling tasks based on specific characteristics of the task to a scheduler selected from a plurality of schedulers on a multi-core system can be done on an autonomous vehicle. Together, Na, Liu, and Lim teach of selecting a scheduler from among a plurality of schedulers, wherein each scheduler has a different scheduling strategy or technique used by the scheduler for scheduling a task, wherein the task is for operating an autonomous vehicle.
8. With regard to claim 2, Lim further teaches:
wherein the attribute of the individual task is associated with one of:
a simulation of a vehicle operation, a vehicle software build, or training of a machine learning model for at least one of a perception, a prediction, a planning, or a control associated with a driving decision ([0003] In general, an autonomous vehicle can recognize a road environment by itself, may determine a driving situation, and may control various systems in the vehicle, including a steering device, to move from a current position to a target position along a driving route. In the instant case, the various systems may include an Autonomous Emergency Braking (AEB), a Forward Collision Warning System (FCW), an Adaptive Cruise Control (ACC), and a Lane Departure Warning System (LDWS), a Lane Keeping Assist System (LKAS), a Blind Spot Detection (BSD), Rear-end Collision Warning System (RCW), a Smart Parking Assist System (SPAS), and the like; [0008] Various aspects of the present disclosure are directed to providing an apparatus and method for controlling an autonomous vehicle capable of operating the autonomous vehicle in a parking mode as well as a driving mode with only one hardware processor without a reboot process, by scheduling a plurality of tasks corresponding to each operation mode of the autonomous vehicle for each core and adjusting an execution time of a task in each core based on a current operation mode of the autonomous vehicle, to solve the problems of the related art as described above; [0041] FIG. 1 is a diagram illustrating a configuration of a control apparatus of an autonomous vehicle, according to an exemplary embodiment of the present disclosure, which may be implemented in a form of hardware or implemented in a form of software, or implemented in a form of a combination of hardware and software. It may be implemented as a microprocessor in a form of a single chip, but is not limited thereto.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Na and Liu with the teachings of Lim wherein the attribute of the individual task is associated with one of: a simulation of a vehicle operation, a vehicle software build, or training of a machine learning model for at least one of a perception, a prediction, a planning, or a control associated with a driving decision. Similarly to Na and Liu, Lim teaches of a plurality of cores that tasks get scheduled on. Moreover, Lim does this on an autonomous vehicle system (Fig 2; Abstract; [0010]). Therefore, it would be obvious for one of ordinary skill in the art that scheduling tasks based on specific characteristics of the task to a scheduler selected from a plurality of schedulers on a multi-core system can be done on an autonomous vehicle. Additionally, it would be obvious that the tasks are associated with implementing a driving decision. Lim teaches of controlling an autonomous vehicle in a parking mode and driving mode without a reboot process ([0008]). Doing so helps prevent a fatal problem may be caused in an autonomous driving environment that needs to respond in real time due to a time delay required for rebooting ([0005]). Together, Na, Liu, and Lim teach of selecting a scheduler from among a plurality of schedulers, wherein each scheduler has a different scheduling strategy or technique used by the scheduler for scheduling a task, wherein the task is for operating an autonomous vehicle, wherein the task attribute is associated with one of: a simulation of a vehicle operation, a vehicle software build, or training of a machine learning model for at least one of a perception, a prediction, a planning, or a control associated with a driving decision.
9. With regard to claim 6, Na further teaches:
wherein:
the plurality of resources comprises a plurality of workers, each including at least one of a compute resource, a memory resource, or a network resource ([0004] That is, tasks performed in related art multi-core systems are allocated CPU resources according to a scheduling policy of the system and also scheduled according to a task migration policy for defining which core should performs a specific task, when the specific task should be migrated from the core to another, and so on. Thus performance of multi-core systems depends on such a task migration policy; [0010] For example, as shown in FIG. 2, the related art multi-core system includes four CPU cores CPU core 0, CPU core 1, CPU core 2, and CPU core 3, which include corresponding execution queues Run-queue 0, Run-queue 1, Run-queue 2, and Run-queue 3, respectively; Examiner’s Note: Cores, which are workers, have CPU resources.), and
the scheduling of the one or more resources for the individual task comprises assigning one or more workers of the plurality of workers to execute the individual task ([0004] That is, tasks performed in related art multi-core systems are allocated CPU resources according to a scheduling policy of the system and also scheduled according to a task migration policy for defining which core should performs a specific task, when the specific task should be migrated from the core to another, and so on. Thus performance of multi-core systems depends on such a task migration policy; [0058] For example, a scheduling policy, which is intended for a task requiring a fast user response, may be set for CORE 0 such that the task requiring the fast user response may be performed at CORE 0; Examiner’s Note: Task is performed on the core.).
10. With regard to claim 7, Na further teaches:
wherein each of the plurality of schedulers is configured to utilize a different subset of the plurality of resources ([0004] That is, tasks performed in related art multi-core systems are allocated CPU resources according to a scheduling policy of the system and also scheduled according to a task migration policy for defining which core should performs a specific task, when the specific task should be migrated from the core to another, and so on. Thus performance of multi-core systems depends on such a task migration policy; [0009] That is, tasks with various characteristics require allocation of CPU resources simultaneously: some tasks may require fast allocation of CPU resources during a short execution time; and other tasks may require allocation of CPU resources for a long time at a time; Examiner’s Note: Each scheduling policy (scheduler) is allocated CPU resources according to the policy.).
11. Regarding claim 11, it is rejected under the same reasoning as claim 1 above. Therefore, it is rejected under the same rationale.
12. Regarding claim 12, it is rejected under the same reasoning as claim 2 above. Therefore, it is rejected under the same rationale.
13. Regarding claim 16, it is rejected under the same reasoning as claims 6 above. Therefore, it is rejected under the same rationale.
14. Regarding claim 17, it is rejected under the same reasoning as claims 9 above. Therefore, it is rejected under the same rationale.
15. Regarding claim 18, it is rejected under the same reasoning as claims 1 above. Therefore, it is rejected under the same rationale.
16. Regarding claim 20, it is rejected under the same reasoning as claims 7 above. Therefore, it is rejected under the same rationale.
17. Claims 3, 13, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Na et al. US 20150100964 A1; Liu US 20190280945 A1; and Lim US 20230219596 A1, as applied in claim 1, in further view of Mohan US 12079113 B1.
18. With regard to claim 3, Na, Liu, and Lim teach the computer-implemented system of claim 2 but fail to explicitly teach wherein selecting the scheduler comprises: determining that the attribute of the individual task is associated with the simulation of the vehicle operation; and selecting a first scheduler from the plurality of schedulers in response to determining that the attribute of the individual task is associated with the simulation of the vehicle operation, wherein the first scheduler schedules tasks according to an order of respective requests are received.
However, in analogous art, Mohan teaches:
wherein selecting the scheduler comprises:
determining that the attribute of the individual task is associated with the simulation of the vehicle operation (Col. 3, lines 21-34, The techniques described herein can be implemented in a number of ways. Example implementations are provided below with reference to the following figures. Although applicable to vehicles, such as autonomous vehicles, the methods, apparatuses, and systems described herein can be applied to a variety of systems and are not limited to autonomous vehicles. In another example, the techniques can be utilized in an aviation or nautical context, or in any system configured to perform task(s) by executing program(s) utilizing file(s) with software code to compile, test, and/or use the software code. Additionally, the techniques described herein can be used with real data (e.g., captured using sensor(s)), simulated data (e.g., generated by a simulator), or any combination of the two.; Examiner’s Note: System can be used for autonomous vehicle simulation.); and
selecting a first scheduler from the plurality of schedulers in response to determining that the attribute of the individual task is associated with the simulation of the vehicle operation, wherein the first scheduler schedules tasks according to an order of respective requests are received (Col. 7, lines 52-65, The tasks may be managed based on types of scheduling. The scheduling queue 108 may manage (e.g., schedule) the tasks 120 based on the different types of scheduling. The different types of scheduling utilized by the scheduling queue 108 may be associated with different modes of the scheduling queue 108. The scheduling queue 108 may have a mode (e.g., a first mode) associated with the tasks 120 being scheduled (e.g., assigned) based on a first-in, first-out (FIFO) order. An order (e.g., a first order) of the tasks 120 (e.g., the task 120(A), the task 120(B), the task 120(C), the task 120(D), etc.) in the scheduling queue 108 may be based on a time at which each of the tasks 120 is received. The first order may be determined based on the first mode (e.g., a FIFO mode); Examiner’s Note: System can use a FIFO scheduling mode, among other modes.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Na, Liu, and Lim with the teachings of Mohan wherein selecting the scheduler comprises: determining that the attribute of the individual task is associated with the simulation of the vehicle operation; and selecting a first scheduler from the plurality of schedulers in response to determining that the attribute of the individual task is associated with the simulation of the vehicle operation, wherein the first scheduler schedules tasks according to an order of respective requests are received. This allows for the tasks to be completed based on the order they come in, as discussed in Mohan (Col. 7, lines 52-65). Therefore, allowing a simple and fair ordering for tasks to be completed.
19. Regarding claim 13, it is rejected under the same reasoning as claim 3 above. Therefore, it is rejected under the same rationale.
20. Regarding claim 19, it is rejected under the same reasoning as claims 3, 4, and 5 above. Therefore, it is rejected under the same rationale.
21. Claims 4, 14, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Na et al. US 20150100964 A1; Liu US 20190280945 A1; and Lim US 20230219596 A1, as applied in claim 1, in further view of Weslosky et al. US 20190220036 A1.
22. With regard to claim 4, Na, Liu, and Lim teach the computer-implemented system of claim 2 but fail to explicitly teach wherein selecting the scheduler comprises: determining that the attribute of the individual task is associated with the vehicle software build; and selecting a first scheduler from the plurality of schedulers in response to determining that the attribute of the individual task is associated with the vehicle software code build, wherein the first scheduler prioritizes tasks according to respective completion deadlines.
However, in analogous art, Weslosky teaches:
wherein selecting the scheduler comprises:
determining that the attribute of the individual task is associated with the vehicle software code build ([0058] In some implementations, a fleet rollout assignment can include, for example, instructions for a vehicle to update one or more components (e.g., software components), replace one or more components (e.g., hardware components), add one or more components (e.g., software and/or hardware components), etc., as part of a rollout to one or more vehicles in the fleet; Examiner’s Note: The task can be software updates, which is analogous with software code building.); and
selecting a first scheduler from the plurality of schedulers in response to determining that the attribute of the individual task is associated with the vehicle software code build, wherein the first scheduler prioritizes tasks according to respective completion deadlines ([0056] In some implementations, the Vehicle API platform can provide for a service provider system to schedule a vehicle assignment in a predetermined set of vehicle assignments. A vehicle assignment can include instructions for a vehicle to perform one or more actions. The service provider system can schedule a vehicle assignment for a vehicle at one or more future times for the vehicle to implement the vehicle assignment at the one or more future times by performing the one or more actions; [0058] The fleet rollout assignment can be associated with assignment attributes including, for example, a start date/time to begin a rollout to vehicles in a fleet, a completion date/deadline to finish the rollout, locations (e.g., one or more maintenance garages that a vehicle can access to implement a fleet rollout assignment), expected durations (e.g., expected duration to update, replace, and/or add one or more components associated with the fleet rollout), required preconditions (e.g., availability of a maintenance garage to receive a vehicle at a future time, inventory at a maintenance garage of one or more vehicle components associated with the fleet rollout, bandwidth and resource availability restrictions on data associated with the fleet rollout, etc.), etc.; Examiner’s Note: The scheduling to complete a software update is done based on the deadline of the rollout.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Na, Liu, and Lim with the teachings of Weslosky wherein selecting the scheduler comprises: determining that the attribute of the individual task is associated with the vehicle software code build; and selecting a first scheduler from the plurality of schedulers in response to determining that the attribute of the individual task is associated with the vehicle software build, wherein the first scheduler prioritizes tasks according to respective completion deadlines. This ensures that necessary updates to the autonomous vehicles are completed in time before deadlines, such as fleet rollout deadlines, as discusses in Weslosky ([0058]). This ensures timely execution of tasks.
23. Regarding claim 14, it is rejected under the same reasoning as claim 4 above. Therefore, it is rejected under the same rationale.
24. Regarding claim 19, it is rejected under the same reasoning as claims 3, 4, and 5 above. Therefore, it is rejected under the same rationale.
25. Claims 5, 15, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Na et al. US 20150100964 A1; Liu US 20190280945 A1; and Lim US 20230219596 A1, as applied in claim 1, in further view of Gurel et al. US 20200364508 A1.
26. With regard to claim 5, Na, Liu, and Lim teach the computer-implemented system of claim 2 but fail to explicitly teach wherein selecting the scheduler comprises: determining that the attribute of the individual task is associated with the training of the machine learning model; and selecting a first scheduler from the plurality of schedulers in response to determining that the attribute of the individual task is associated with the training of the machine learning model, wherein the first scheduler schedules related task components for concurrent execution.
However, in analogous art, Gurel teaches:
wherein selecting the scheduler comprises:
determining that the attribute of the individual task is associated with the training of the machine learning model ([0043] Approaches in accordance with various embodiments provide for the training of machine learning, such as may involve one or more recurrent neural networks (RNNs), for tasks such as performing recursive object detection and/or frame segmentation for long data sequences (e.g., continuous video streams); [0045] At a minimum, the autonomous navigation system needs to be able to determine a navigation path of the vehicle such that the autonomous vehicle 102 can travel along the road without colliding with any of the other vehicles, as well as any other objects such as pedestrians or bicycles, etc.; Examiner’s Note: A trained ML model can be used to improve the safety of the vehicle.); and
selecting a first scheduler from the plurality of schedulers in response to determining that the attribute of the individual task is associated with the training of the machine learning model, wherein the first scheduler schedules related task components for concurrent execution ([0087] The classifier 814 can include appropriate hardware and software for processing the validation data 812 using the trained model. In some instances the classifier will include one or more computer servers each having one or more graphics processing units (GPUs) that are able to process the data. The configuration and design of GPUs can make them more desirable to use in processing machine learning data than CPUs or other such components. The trained model in some embodiments can be loaded into GPU memory and a received data instance provided to the GPU for processing. GPUs can have a much larger number of cores than CPUs, and the GPU cores can also be much less complex. Accordingly, a given GPU may be able to process thousands of data instances concurrently via different hardware threads; Examiner’s Note: When training the ML model, there might be the need to concurrently do so in order to process large amounts of training data efficiently.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Na, Liu, and Lim with the teachings of Gurel wherein selecting the scheduler comprises: determining that the attribute of the individual task is associated with the training of the machine learning model; and selecting a first scheduler from the plurality of schedulers in response to determining that the attribute of the individual task is associated with the training of the machine learning model, wherein the first scheduler schedules related task components for concurrent execution. This provides significant additional processing advantages, allowing the system to process large amounts of data efficiently, as discussed in Gurel ([0087]).
27. Regarding claim 15, it is rejected under the same reasoning as claim 5 above. Therefore, it is rejected under the same rationale.
28. Regarding claim 19, it is rejected under the same reasoning as claims 3, 4, and 5 above. Therefore, it is rejected under the same rationale.
29. Claim 8 is rejected under 35 U.S.C. 103 as being unpatentable over Na et al. US 20150100964 A1; Liu US 20190280945 A1; and Lim US 20230219596 A1, as applied in claim 1, in further view of Tao et al. US 20170195247 A1.
30. With regard to claim 8, Na, Liu, and Lim teach the computer-implemented system of claim 7 but fail to explicitly teach wherein: a first subset of the plurality of resources is configured for the selected scheduler; a second subset of the plurality of resources is configured for a different scheduler of the plurality of schedulers than the selected scheduler; and scheduling of the one or more resources for the individual task comprises scheduling the one or more resources from the second subset of the plurality of resources based on a determination that there is a lack of an available resource in the first subset of the plurality of resources.
However, in analogous art, Tao teaches:
wherein:
a first subset of the plurality of resources is configured for the selected scheduler ([0009] In some embodiments, the method may further include: evaluating, the respective performances for the candidate scheduling strategies based on a plurality of predefined metrics; and selecting an optimal candidate scheduling strategy that, is better than other candidate scheduling strategies in the plurality of predefined metrics, as the scheduling strategy; [0011] In some embodiments, the scheduling target requirement may include at least one of a minimized operation cost, minimized infrastructure resources to be used, a maximized resource allocation speed, and maximized scalability of resource allocation;; Examiner’s Note: Each candidate scheduling strategy (schedulers) have different metrics associated with it. The metrics can include a maximized scalability of resource allocation, indicated how many resources that one candidate receives.);
a second subset of the plurality of resources is configured for a different scheduler of the plurality of schedulers than the selected scheduler ([0009] In some embodiments, the method may further include: evaluating, the respective performances for the candidate scheduling strategies based on a plurality of predefined metrics; and selecting an optimal candidate scheduling strategy that, is better than other candidate scheduling strategies in the plurality of predefined metrics, as the scheduling strategy; [0011] In some embodiments, the scheduling target requirement may include at least one of a minimized operation cost, minimized infrastructure resources to be used, a maximized resource allocation speed, and maximized scalability of resource allocation; Examiner’s Note: Each candidate scheduling strategy (schedulers) have different metrics associated with it. The metrics can include a maximized scalability of resource allocation, indicated how many resources that one candidate receives.); and
the scheduling of the one or more resources for the individual task comprises scheduling the one or more resources from the second subset of the plurality of resources based on a determination that there is a lack of an available resource in the first subset of the plurality of resources ([0009] In some embodiments, the method may further include: evaluating, the respective performances for the candidate scheduling strategies based on a plurality of predefined metrics; and selecting an optimal candidate scheduling strategy that, is better than other candidate scheduling strategies in the plurality of predefined metrics, as the scheduling strategy; [0011] In some embodiments, the scheduling target requirement may include at least one of a minimized operation cost, minimized infrastructure resources to be used, a maximized resource allocation speed, and maximized scalability of resource allocation; [0012] In some embodiments, dynamically selecting a scheduling strategy from a set of candidate scheduling strategies based on available infrastructure resources and at least one resource request may include: dynamically select the scheduling strategy based on the at least one resource request, state information of the infrastructure resources, and a predefined rule. In some embodiments, the predefined rule includes a mapping between a type of the at least one resource request and the candidate scheduling strategies. In some embodiments, the method may further include: determining the predefined rule based on experience related to a type of the at least one resource request or in a learning-based manner; Examiner’s Note: The scheduling strategy is selected from a set of candidate scheduling strategies (schedulers). Each candidate scheduling strategy has different metrics, including resource allocation, associated with it as explained above. The system chooses the schedule based on resource requests. For example, if one candidate strategy does not have enough resources able to be allocated to it, it would choose another.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Na, Liu, and Lim with the teachings of Tao wherein: a first subset of the plurality of resources is configured for the selected scheduler; a second subset of the plurality of resources is configured for a different scheduler of the plurality of schedulers than the selected scheduler; and scheduling the one or more resources for the individual task comprises scheduling the one or more resources from the second subset of the plurality of resources based on a determination that there is a lack of an available resource in the first subset of the plurality of resources. This ensures the selection of an optimal candidate scheduling strategy that, is better than other candidate scheduling strategies in the plurality of predefined metrics, as the scheduling strategy, as discussed in Tao ([0009]). Therefore, providing the most efficient schedule for the system.
31. Claims 9 ,10, and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Na et al. US 20150100964 A1; Liu US 20190280945 A1; and Lim US 20230219596 A1, as applied in claim 1, in further view of Bellubbi et al. US 20230102089 A1.
32. With regard to claim 9, Na, Liu, and Lim teach the computer-implemented system of claim 1 but fail to explicitly teach wherein scheduling of the one or more resources for the individual task is based on a resource availability report.
However, in analogous art, Bellubbi teaches:
wherein scheduling of the one or more resources for the individual task is based on a resource availability report ([0318] In some embodiments, the analysis engine 642 may be configured to perform one or more modification operations based on the analysis of the runtime information included in the runtime log 640. For example, the analysis engine 642 may be configured to adjust one or more factors included in application data that is used to generate the schedule 604. For instance, the analysis engine 642 may adjust one or more respective WCETs of one or more runnables in corresponding runnable data based on the analysis. Additionally or alternatively, the analysis engine 642 may be configured to adjust one or more execution constraints such as epoch times, hyper-epoch times, compute engine utilizations, etc. In these or other embodiments, the analysis engine 642 may indicate to the compiler and/or a user direct adjustments that may be made to the schedule 604. Further, in some instances, the runtime information may indicate which runnables may be contending on resources and interfering with each other. In these or other embodiments, the modification operations may include mutually excluding the scheduling of such runnables; Examiner’s Note: Based on the runtime log, which is analogous to the resource availability report because it can include information regarding resources, scheduling decisions can be made.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Na, Liu, and Lim with the teachings of wherein scheduling of the one or more resources for the individual task is based on a resource availability report. Similarly to Na, Liu, and Lim, Bellubbi teaches of creating a schedule for execution of runnables based on execution constraints. Moreover, Bellubbi teaches of a log that contains information such as resource availability. The log helps determine execution constraints, such as compute engine utilization, which would indicate resource usage and availability. Knowledge of resource availability helps schedule runnables. As discussed in Bellubbi, the runtime information may indicate which runnables may be contending on resources and interfering with each other. In these or other embodiments, the modification operations may include mutually excluding the scheduling of such runnables ([0318]). Therefore, scheduling tasks in the most efficient way that does not have them contending for resources.
33. With regard to claim 10, Bellubbi teaches:
wherein the operations further comprise:
receiving the resource availability report including an indication of an availability of the one or more resources ([0316] Additionally or alternatively, an analysis of overruns may be performed by the runtime log 640. The overrun analysis may be used to determine whether certain compute resources have issues or whether the underlying runnables have issues. For example, a disproportionate amount of overruns that correspond to a particular compute engine may indicate that the particular compute engine is having problems. Conversely, a particular runnable having overruns when other runnables that are executed by the same compute engine do not have overruns may indicate that the particular runnable may be problematic.; [0317] In these or other embodiments, the analysis may be used to analyze the schedule 604. For example, an analysis of runnable execution times may indicate that certain runnable execution times are significantly shorter than the allocated time in the schedule 604 for such runnables. Additionally or alternatively, the analysis of runnable execution times may indicate that other runnable execution times are longer than the allocated time in many instances (e.g., in a threshold percentage of the time). Additionally as indicated in the present disclosure, the analysis may indicate that the schedule 604 may overutilize or underutilize certain compute engines. Additionally or alternatively, the analysis may indicate that certain epochs or hyper-epochs are longer than needed or not long enough.; Examiner’s Note: The analysis of the runtime log shows availability of a resource. For example, overrun analysis of the runtime log can indicate that there is insufficient memory. Additionally, the analysis of the runtime log can indicate that certain compute engines, that have certain computing resources associated with them, are being overused. These would show the availability of resources.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Na, Liu, and Lim with the teachings of receiving the resource availability report including an indication of an availability of the one or more resources. Similarly to Na, Liu, and Lim, Bellubbi teaches of creating a schedule for execution of runnables based on execution constraints. Moreover, Bellubbi teaches of a log that contains information such as resource availability. The log helps determine execution constraints, such as compute engine utilization, which would indicate resource usage and availability. Knowledge of resource availability helps schedule runnables. As discussed in Bellubbi, the runtime information may indicate which runnables may be contending on resources and interfering with each other. In these or other embodiments, the modification operations may include mutually excluding the scheduling of such runnables ([0318]). Therefore, scheduling tasks in the most efficient way that does not have them contending for resources.
34. Regarding claim 17, it is rejected under the same reasoning as claims 9 above. Therefore, it is rejected under the same rationale.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to AN-AN N NGUYEN whose telephone number is (571)272-6147. The examiner can normally be reached Monday-Friday 8:00-5:00 ET.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, AIMEE LI can be reached at (571) 272-4169. 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.
/AN-AN NGOC NGUYEN/Examiner, Art Unit 2195
/Aimee Li/Supervisory Patent Examiner, Art Unit 2195