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 .
This office action is in response to claims filed 10/20/2023. Claims 1-20 are pending.
Priority
Applicant’s claim for priority from foreign application no. CN202211355598.7, filed 11/01/2022, is acknowledged.
Claim Interpretation
The following is a quotation of 35 U.S.C. 112(f):
(f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
This application includes one or more claim limitations that do not use the word “means,” but are nonetheless being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because the claim limitation(s) uses a generic placeholder that is coupled with functional language without reciting sufficient structure to perform the recited function and the generic placeholder is not preceded by a structural modifier. Such claim limitations are:
“a target computing unit, and the target computing unit is a computing unit for processing the initial task set; the target computing unit is configured to acquire a target upgrade program corresponding to the currently pending task that has the correspondence with the target computing unit from a preset database” and “the target computing unit is further configured to acquire a target task to be processed, process the target task after the upgrade, and send a corresponding processing result to the processing unit” in Claim 1.
Because these claim limitations are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, they are being interpreted to cover the corresponding structure described in the specification as performing the claimed function, and equivalents thereof.
If applicant does not intend to have this/these limitation(s) interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, applicant may: (1) amend the claim limitation(s) to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitation(s) recite(s) sufficient structure to perform the claimed function so as to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph.
Claim Rejections - 35 USC § 112
The following is a quotation of the first paragraph of 35 U.S.C. 112(a):
(a) IN GENERAL.—The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor or joint inventor of carrying out the invention.
The following is a quotation of the first paragraph of pre-AIA 35 U.S.C. 112:
The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor of carrying out his invention.
Claims 1-20 are rejected under 35 U.S.C. 112(a) or pre-AIA 35 U.S.C. 112, first paragraph, because the claim purports to invoke 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, but fails to recite a combination of elements as required by that statutory provision and thus cannot rely on the specification to provide the structure, material or acts to support the claimed function. As such, the claim recites a function that has no limits and covers every conceivable means for achieving the stated function, while the specification discloses at most only those means known to the inventor. Accordingly, the disclosure is not commensurate with the scope of the claim.
Regarding Claim 1, the claim recites “a target computing unit” configured to “acquire a target upgrade program corresponding to the currently pending task that has the correspondence with the target computing unit from a preset database” and “acquire a target task to be processed, process the target task after the upgrade, and send a corresponding processing result to the processing unit.”
The specification discloses non-limiting steps the target computing unit may take in [0073], “The target computing unit may actively acquire the target upgrade program from the database, or the task scheduling system writes the target upgrade program into the target computing unit, that is, the target computing unit passively receives the target upgrade program, which is not limited herein. In different solutions, the target tasks may be assigned to the target computing unit at different moments. In the embodiment of the present application, the target task is assigned to the target computing unit first, and then the target computing unit is upgraded”, in [0076] “After acquiring the target upgrade program, the target computing unit is upgraded based on the target upgrade program, so that the upgraded target computing unit can process the corresponding target task. Optionally, when the target computing unit cannot process the currently pending task corresponding to the target computing unit (that is, when the target computing unit cannot process the assigned target task), the above step S204 is performed. On the contrary, if the target computing unit can currently process the target task, for example, the upgrade program currently used by the target computing unit is the target upgrade program, the target computing unit neither acquire the target upgrade program repeatedly nor is upgrade repeatedly, “ and in [0077,] “In step S206, the target computing unit sends the corresponding processing result to the processing unit.” The phrases "may," “or,” “optionally,” and “for example” are unbounded functional language, because it is possible that the description following the phrases are not required as part of the specific structure used to implement the target computing unit. Therefore, it does not provide a sufficient description of the specific structure used to implement the target computing unit nor the specific algorithm(s) used to acquire a target upgrade program and a target task to be processed beyond the aforementioned unbounded functional language.
Claims 2-20 disclose additional limitations utilizing the target computing unit and depend on Claim 1, and therefore are rejected under 35 U.S.C. 112 (a) as well.
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-20 are rejected under 35 U.S.C. 112(b) or pre-AIA 35 U.S.C. 112, second paragraph. Claim limitations “a target computing unit, and the target computing unit is a computing unit for processing the initial task set; the target computing unit is configured to acquire a target upgrade program corresponding to the currently pending task that has the correspondence with the target computing unit from a preset database” and “the target computing unit is further configured to acquire a target task to be processed, process the target task after the upgrade, and send a corresponding processing result to the processing unit” of Claim 1 invokes 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. However, the written description fails to disclose the corresponding structure, material, or acts for performing the entire claimed function and to clearly link the structure, material, or acts to the function and to clearly link the structure, material, or acts to the function.
The term “a target computing unit” is a nonce word that does not connote specific structure to a person of ordinary skill in the art. In the absence of clear structural limitations or well-defined corresponding structure in the specification, the scope of the claimed terms are unclear. Additionally, from [0073], [0076-0077] in Applicant’s Specification, it only identifies non-limiting examples of the aforementioned terms, as previously stated. As the specification states that the target computing unit merely may acquire the target upgrade program as part of its operations, it is unclear what specific structure or algorithm is encompassed by the claims.
Therefore, the claim is indefinite and is rejected under 35 U.S.C. 112(b) or pre-AIA 35 U.S.C. 112, second paragraph.
Claims 2-20 disclose additional limitations utilizing the target computing unit and depend on Claim 1, and therefore are rejected under 35 U.S.C. 112 (b) as well.
Applicant may:
(a) Amend the claim so that the claim limitation will no longer be interpreted as a limitation under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph;
(b) Amend the written description of the specification such that it expressly recites what structure, material, or acts perform the entire claimed function, without introducing any new matter (35 U.S.C. 132(a)); or
(c) Amend the written description of the specification such that it clearly links the structure, material, or acts disclosed therein to the function recited in the claim, without introducing any new matter (35 U.S.C. 132(a)).
If applicant is of the opinion that the written description of the specification already implicitly or inherently discloses the corresponding structure, material, or acts and clearly links them to the function so that one of ordinary skill in the art would recognize what structure, material, or acts perform the claimed function, applicant should clarify the record by either:
(a) Amending the written description of the specification such that it expressly recites the corresponding structure, material, or acts for performing the claimed function and clearly links or associates the structure, material, or acts to the claimed function, without introducing any new matter (35 U.S.C. 132(a)); or
(b) Stating on the record what the corresponding structure, material, or acts, which are implicitly or inherently set forth in the written description of the specification, perform the claimed function. For more information, see 37 CFR 1.75(d) and MPEP §§ 608.01(o) and 2181.
Additionally, Claims 1-20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Regarding Claim 1, it recites the limitation "process the target task after the upgrade" on Line 18. There is insufficient antecedent basis for this limitation in the claim, as there is no recited step for performing an upgrade; the Claim merely states that target computing unit is “to be upgrade[d]” after acquiring a target upgrade program. For examination, the Examiner is interpreting this as referring to the target computing unit having the upgrade carried out on it and subsequently processing the target task.
Additionally, it recites “the computing unit corresponds to a plurality of upgrade programs each corresponding to a category of tasks” on Line 15. This is unclear, as it earlier states “an upgrade program corresponding to the computing unit” on Lines 14-15. It thus appears the Claim states the computing unit simultaneously corresponds to a plurality of upgrade programs as well as just one upgrade program, which is contradictory. For examination purposes, the Examiner is interpreting this as “the upgrade program that corresponds to the computing unit corresponds to a category of tasks.”
Regarding Claim 2, it recites the limitations “establishing a correspondence between currently pending tasks equal in number to current target computing units and the current target computing units based on an optimal matching algorithm, in a case that the number of the currently pending tasks is greater than or equal to the number of the current target computing units.” This is unclear, as it is possible for there to be an embodiment of this Claim in which “currently pending tasks [are] equal in number to current target computing units” but simultaneously be “in a case that the number of the currently pending tasks is greater than the number of the current target computing units.” These limitations are contradictory, as the number of the currently pending tasks cannot simultaneously be equal to and greater than the number of the current target computing units.
Regarding Claim 3, it recites the limitation "the assigned target task" on Line 4. There is insufficient antecedent basis for this limitation in the claim. For examination, the Examiner is interpreting this as referring to the same “target task to be processed” as recited in Claim 1.
Additionally, it recites “determine a part of a currently unfinished task in other target computing unit” on Lines 2-3. For examination, the Examiner is interpreting this as determine a part of a currently unfinished task in another target computing unit from the plurality of target computing units”
Regarding Claim 5, it recites the limitations “establishing a correspondence between currently pending tasks and current target computing units repeatedly until the number of the currently pending tasks is greater than or equal to the number of the current target computing units, in a case that the number of the currently pending tasks is less than the number of the current target computing units.” This is unclear, as it is possible for there to be an embodiment of this Claim in which “the number of the currently pending tasks is greater than the number of the current target computing units” but simultaneously be “in a case that the number of the currently pending tasks is less than the number of the current target computing units.” These limitations are contradictory, as the number of the currently pending tasks cannot simultaneously be greater than and less than the number of the current target computing units.
Regarding Claim 6, it recites the limitation "the assigned target task" on Line 4. There is insufficient antecedent basis for this limitation in the claim. For examination, the Examiner is interpreting this as referring to the same “target task to be processed” as recited in Claim 1.
Additionally, it recites “determine a part of a currently unfinished task in other target computing unit” on Lines 2-3. For examination, the Examiner is interpreting this as determine a part of a currently unfinished task in another target computing unit from the plurality of target computing units”
Regarding Claim 9, it recites the limitation "the assigned target task" on Line 4. There is insufficient antecedent basis for this limitation in the claim. For examination, the Examiner is interpreting this as referring to the same “target task to be processed” as recited in Claim 1.
Additionally, it recites “determine a part of a currently unfinished task in other target computing unit” on Lines 2-3. For examination, the Examiner is interpreting this as determine a part of a currently unfinished task in another target computing unit from the plurality of target computing units”
Regarding Claim 11, it recites the limitation "the same currently pending task" on Lines 3-4. There is insufficient antecedent basis for this limitation in the claim. For examination, the Examiner is interpreting this as referring to the same “currently pending task” as recited in Claim 1.
Additionally, “the subtask” as recited on Line 5 has insufficient antecedent basis. For examination, the Examiner is interpreting this as referring to “each subtask of the subtasks,” corresponding to “the subtasks” previously defined in the Claim.
Regarding Claim 12, it recites the limitation "the assigned target task" on Line 4. There is insufficient antecedent basis for this limitation in the claim. For examination, the Examiner is interpreting this as referring to the same “target task to be processed” as recited in Claim 1.
Additionally, it recites “determine a part of a currently unfinished task in other target computing unit” on Lines 2-3. For examination, the Examiner is interpreting this as determine a part of a currently unfinished task in another target computing unit from the plurality of target computing units”
Regarding Claim 14, it recites the limitations "the optimized performance parameters" and “the unoptimized performance parameters” on Lines 4-6. There is insufficient antecedent basis for these limitations in the claim. For examination, the Examiner is interpreting the "optimizing performance parameters of the plurality of target computing units, wherein the optimized performance parameters have a higher degree of discrimination than the unoptimized performance parameters" limitations as “optimizing performance parameters of the plurality of target computing units, resulting in the creation of optimized performance parameters having a higher degree of discrimination than the performance parameters prior to optimization.”
Additionally, “the performance parameter of the computing unit and the performance value of the computing unit” as recited on Lines 9-10 has insufficient antecedent basis. For examination, the Examiner is interpreting this as referring to “a respective optimized performance parameter of the optimized performance parameters that corresponds to a target computing unit and the respective performance value of the performance values that corresponds to a target computing unit for each of the plurality of target computing units.”
Lastly, “the subtask” as recited on Line 15 has insufficient antecedent basis. For examination, the Examiner is interpreting this as referring to “each subtask of the subtasks,” corresponding to “the subtasks” previously defined in the Claim.
Regarding Claim 15, it recites the limitation "the assigned target task" on Line 4. There is insufficient antecedent basis for this limitation in the claim. For examination, the Examiner is interpreting this as referring to the same “target task to be processed” as recited in Claim 1.
Additionally, it recites “determine a part of a currently unfinished task in other target computing unit” on Lines 2-3. For examination, the Examiner is interpreting this as determine a part of a currently unfinished task in another target computing unit from the plurality of target computing units”
Regarding Claim 17, it recites the limitation "the assigned target task" on Line 4. There is insufficient antecedent basis for this limitation in the claim. For examination, the Examiner is interpreting this as referring to the same “target task to be processed” as recited in Claim 1.
Additionally, it recites “determine a part of a currently unfinished task in other target computing unit” on Lines 2-3. For examination, the Examiner is interpreting this as determine a part of a currently unfinished task in another target computing unit from the plurality of target computing units”
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1, 2, 5, 8, 19 are rejected under 35 U.S.C. 103 as being unpatentable over Bernardin et al. (US 20030191795 A1) in view of Lin (CN112965800A, published 2021-06-15), hereinafter referred to as Bernardin and Lin, respectively.
Regarding Claim 1, Bernardin discloses A heterogeneous computing terminal ([0014] objective of Grid Computing is to pool together heterogeneous resources of all types (e.g., storage, processors, instruments, displays, etc.), anywhere on the network, and make them available to all users. Please note that the heterogenous computing resources pooled together and made available to users corresponds to Applicant’s heterogenous computing terminal.) for task scheduling, comprising: a processing unit and a plurality of computing units ([0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines. Please note that the Broker in the computing system accounting for heterogenous processing capabilities in the system of corresponding Engines corresponds to Applicant’s heterogenous computing terminal for task scheduling comprising a processing unit, i.e., the task execution system, and a plurality of computing units, i.e., the Engines.),
wherein the heterogeneous computing terminal is configured to acquire an initial task set comprising at least one initial task, and generate a task scheduling strategy based on a currently pending task, wherein the currently pending task is a task to be processed at a current moment, and at an initial moment the initial task is the currently pending task ([0030] adaptive scheduling of tasks in a coarse-grained parallel or grid-based computing framework; [0031] According to one aspect of adaptive scheduling, Drivers submit Jobs to a Broker. Each Job consists of one or more Tasks, which may be executed in any order. The Broker maintains a queue for Tasks within each active Job. When a Driver submits the first Task within a Job, the Broker creates a Waiting Task List for that Job, then adds this list to the appropriate Job List. Please note that adaptive scheduling where a job containing tasks is submitted, with a waiting list for a job performing tasks in a queue, corresponds to Applicant’s acquiring an initial task set comprising an initial task and generating a task scheduling strategy based on it as the pending task, where the currently pending task is a task to be processed at a current moment, and at an initial moment the initial task is the currently pending task, i.e., at the time the first task is acquired, it is the currently pending task to be processed.);
and the task scheduling strategy comprises a correspondence between the currently pending task and a target computing unit, and the target computing unit is a computing unit for processing the initial task set ([0032] Whenever an Engine becomes available, it polls the Broker to request work. The Broker determines which Job should receive service (using priorities and/or discriminators, as described below), then assigns the Task at the front of that Job's Waiting Task List to the Engine. Once it has been assigned to an Engine, the Broker moves the Task from the Waiting Task List to the Pending Task List. Please note that the Task being assigned to the Engine from the Waiting Task List corresponds to Applicant’s task scheduling strategy comprising a correspondence between the currently pending task and a target computing unit, i.e., the Engine, and the target computing unit being a computing unit for processing the initial task set.);
the target computing unit is configured to acquire a target upgrade program corresponding to the currently pending task that has the correspondence with the target computing unit, and to be upgrade based on the target upgrade program ([0292] the Task that constructs the resource on the Engine also installs an Engine Discriminator that imposes the requirement that subsequent Tasks that run on the Engine define an associated property to indicate that they require the corresponding resource. Please note that the installing of an Engine Discriminator that imposes the requirement that subsequent Tasks that run on the Engine define an associated property to indicate that they require the corresponding resource corresponds to Applicant’s target computing unit acquiring a target upgrade program corresponding to the currently pending task that has the correspondence with the target computing unit and upgrading based on the target upgrade program, as it acquires an engine discriminator to be installed on a particular engine, i.e., the target computing unit, for a current Task of a Job that has correspondence with the engine, thus upgrading it.);
wherein for each of the plurality of computing units, an upgrade program corresponding to the computing unit ([0063] Properties associated with Engines, Tasks, and Jobs may be "built-in," that is, defined or detected automatically by the remote system components (Drivers and Engines) or assigned automatically by the Broker. The list of Properties associated with each entity may be implemented as a hash table, i.e., a collection of key/value pairs. [0078] discriminators, configured for use by a broker in determining assignments of tasks to available resources, such discriminators embodied on a computer-readable medium. Please note that implementing the properties associated with engines, tasks, and jobs in a hash table, where the discriminators are embodied on a computer-readable medium, corresponds to Applicant’s having an upgrade program corresponding to each computing unit, as the properties such as the Discriminator corresponding to the upgrade program may be stored in the hash table data structure for each entity including each task/engine pairing, which is then stored in a computer-readable medium.)
and the computing unit corresponds to a plurality of upgrade programs each corresponding to a category of tasks that the computing unit is to process ([0062] defining Discriminators and attaching them to Tasks, Jobs, or Engines […] define a Discriminator to act on all or a subset of Task/Engine pairings and register it directly with the Broker. Please note defining Discriminators to act on specific subset of Task/Engine pairings corresponds to Applicant’s plurality of upgrade programs each corresponding to a category of tasks that the computing unit is to process, since each Discriminator is stored into memory by being defined to apply to a category of Tasks to be processed by Engines.);
the target computing unit is further configured to acquire a target task to be processed, process the target task after the upgrade ([0032] Whenever an Engine becomes available, it polls the Broker to request work. The Broker determines which Job should receive service (using priorities and/or discriminators, as described below), then assigns the Task at the front of that Job's Waiting Task List to the Engine. Once it has been assigned to an Engine, the Broker moves the Task from the Waiting Task List to the Pending Task List. Please note that the Engine polling the Broker to request work, and having the Task assigned to the Engine corresponds to Applicant’s target computing being further configured to acquire a target task to be processed and processing the task after the upgrade, i.e., based on its associated discriminator.);
and send a corresponding processing result to the processing unit ([0050] Engines poll the Broker whenever they are available to perform work. The polling request is either successful, and the Broker assigns a Task to the Engine, or it is not. Similarly, Drivers poll the Broker after they have submitted Jobs, to collect results. The request is either successful, and the Broker returns one or more results. Please note that the Drivers polling the Broker after they have submitted Jobs to collect results corresponds to Applicant’s sending a corresponding processing result to the processing unit, as the Broker returns a result after it has assigned a Task to the Engine and it has processed it.)
Bernardin does not explicitly disclose from a preset database;
and the processing unit is configured to combine processing results sent by a plurality of target computing units to obtain a processing result of the initial task set
However, Lin discloses from a preset database ([0024] the scheduling information database is used to record background data of the scheduling service process; the data recorded in the scheduling information database includes: the usage and allocation of heterogeneous resources, the allocation of computing and storage, the mapping relationship between nodes and tasks. Please note that the scheduling information database including the allocation of computing and the mapping relationship between nodes and tasks corresponds to the preset database for each of the plurality of computing units. );
and the processing unit is configured to combine processing results sent by a plurality of target computing units to obtain a processing result of the initial task set ([0031] the tasks in the scheduling service process have the states and transitions shown in Figure 4. After the task is completed, the result is reported by the task assignment process and collected by the scheduling service process. [0032] Here, exception handling needs to handle the following exceptions: (1) Completion: The collection or instance completes normally (also known as "success"). Please note that reporting the results after the tasks are completed and collected by the scheduling service process corresponds to Applicant’s processing unit combining processing results sent by a plurality of target computing units to obtain a processing result of the initial task set.).
Bernardin and Lin are both considered to be analogous to the claimed invention because they are in the same field of optimizing task scheduling in computing systems. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Bernardin to incorporate the teachings of Lin to modify the heterogeneous computing terminal for task scheduling that acquires an initial task set and a target upgrade program corresponding to the currently pending task and generates a task scheduling strategy with result collection to have a preset database with the upgrade programs and combine processing results sent by a plurality of target computing units to utilize a preset database and to obtain a combined processing result of the task set, allowing for improved processing efficiency and utilization in the heterogenous computing system, as described in Lin.
Regarding Claim 2, Bernardin-Lin as described in Claim 1, Lin further discloses wherein the generation of the task scheduling strategy based on the currently pending task comprises: establishing a correspondence between currently pending tasks equal in number to current target computing units and the current target computing units based on an optimal matching algorithm, in a case that the number of the currently pending tasks is greater than or equal to the number of the current target computing units ([0041]For example, the subtasks of a task do not necessarily reside on a single machine; they can be distributed across the entire cluster.; [0042] In some embodiments, during the resource mapping phase, the scheduling local service works in conjunction to split resources according to the task splitting situation.; [0043] For example, resource mapping involves splitting resources based on task breakdown.; [0045] it can solve the problem of optimal matching of tasks and resources in heterogeneous environments. Please note that the scheduling local service splitting resources according to the task splitting situation during resource mapping to distribute subtasks of a task across a cluster to solve the optimal matching problem of tasks and resources correspond to Applicant’s establishing a correspondence between currently pending tasks equal in number to current target computing units and the current target computing units based on an optimal matching algorithm, in a case that the number of the currently pending tasks is greater than or equal to the number of the current target computing units. This is because the mapping of subtasks to resources corresponds to establishing a correspondence based on an optimal matching algorithm, and it is possible for there to be a situation in this system where the number of pending tasks are equal to the number of current target computing units, i.e., the number of pending subtasks being the same as each processing unit of the cluster, and this is a case where the number of pending tasks is equal to the number of current target computing units. As applicant states “greater than or equal to”, the numbers being equal is interpreted as fulfilling the requirements of the claim.),
Bernardin further discloses wherein the current target computing unit is a target computing unit that is idle at the current moment and has no correspondence with any of currently pending task ([0119] Engines are typically installed on network processors, where they utilize intermittently available processing capacity that would otherwise go unused. This is accomplished by running an extremely lightweight background process on the Engine. This invocation process monitors the operating system and launches an Engine when it detects an appropriate idle condition. Please note that launching an Engine when it detects an appropriate idle condition to utilize intermittently available processing capacity of network processors corresponds to Applicant’s current target computing unit being a target computing unit that is idle at the current moment and has no correspondence with any of the currently pending tasks.).
Regarding Claim 5, Bernardin-Lin as described in Claim 1, Lin further discloses wherein the generation of the task scheduling strategy based on the currently pending task comprises: establishing a correspondence between currently pending tasks and current target computing units repeatedly until the number of the currently pending tasks is greater than or equal to the number of the current target computing units, in a case that the number of the currently pending tasks is less than the number of the current target computing units ([0041]For example, the subtasks of a task do not necessarily reside on a single machine; they can be distributed across the entire cluster.; [0042] In some embodiments, during the resource mapping phase, the scheduling local service works in conjunction to split resources according to the task splitting situation.; [0043] For example, resource mapping involves splitting resources based on task breakdown.; [0044] For example, when a task has multiple subtasks, some tasks are parallel and some are pipelined. Please note that the scheduling local service splitting resources according to the task splitting situation during resource mapping to distribute subtasks of a task across a cluster corresponds to Applicant’s establishing a correspondence between currently pending tasks and current target computing units repeatedly until the number of the currently pending tasks is greater than or equal to the number of the current target computing units, in a case that the number of the currently pending tasks is less than the number of the current target computing units. This is because the mapping of subtasks to resources corresponds to establishing a correspondence based on an optimal matching algorithm, and it is possible for there to be a situation in this system where the number of pending tasks is less than the number of current target computing units. Therefore, the system would be able to split the tasks repeatedly in such a manner as to distribute the tasks to all of the computing units as subtasks to fully utilize the system for parallel processing, resulting in a case where the number of pending tasks becomes equal to the number of current target computing units. As applicant states “greater than or equal to”, the numbers being equal is interpreted as fulfilling the requirements of the claim.),
and establishing the correspondence between the currently pending tasks equal in number to the current target computing units and the current target computing units based on an optimal matching algorithm, wherein the establishing a correspondence between currently pending tasks and current target computing units comprises: establishing the correspondence between all the currently pending tasks and the current target computing units equal in number to all the currently pending tasks ([0041]For example, the subtasks of a task do not necessarily reside on a single machine; they can be distributed across the entire cluster.; [0042] In some embodiments, during the resource mapping phase, the scheduling local service works in conjunction to split resources according to the task splitting situation.; [0043] For example, resource mapping involves splitting resources based on task breakdown.; [0045] it can solve the problem of optimal matching of tasks and resources in heterogeneous environments. Please note that the scheduling local service splitting resources according to the task splitting situation during resource mapping to distribute subtasks of a task across a cluster to solve the optimal matching problem of tasks and resources correspond to Applicant’s establishing the correspondence between the currently pending tasks equal in number to the current target computing units and the current target computing units based on an optimal matching algorithm, wherein the establishing a correspondence between currently pending tasks and current target computing units comprises establishing the correspondence between all the currently pending tasks and the current target computing units equal in number to all the currently pending tasks. This is because the mapping of subtasks to resources, after the subtasks have been split as previously described, corresponds to establishing a correspondence based on an optimal matching algorithm, with the number of pending subtasks being the same as each processing unit of the cluster, and this is a case where the number of pending tasks is equal to the number of current target computing units.).
Bernardin further discloses wherein the current target computing unit is a target computing unit that is idle at the current moment and has no correspondence with any of currently pending task ([0119] Engines are typically installed on network processors, where they utilize intermittently available processing capacity that would otherwise go unused. This is accomplished by running an extremely lightweight background process on the Engine. This invocation process monitors the operating system and launches an Engine when it detects an appropriate idle condition. Please note that launching an Engine when it detects an appropriate idle condition to utilize intermittently available processing capacity of network processors corresponds to Applicant’s current target computing unit being a target computing unit that is idle at the current moment and has no correspondence with any of the currently pending tasks.).
Regarding Claim 8, Bernardin-Lin as described in Claim 1, Lin further discloses wherein the generation of the task scheduling strategy based on the currently pending task comprises: establishing a correspondence between the currently pending task and each current target computing unit in a case that the currently pending task is 1 in number ([0041]For example, the subtasks of a task do not necessarily reside on a single machine; they can be distributed across the entire cluster.; [0042] In some embodiments, during the resource mapping phase, the scheduling local service works in conjunction to split resources according to the task splitting situation.; [0043] For example, resource mapping involves splitting resources based on task breakdown. Please note that the scheduling local service splitting resources according to the task splitting situation during resource mapping to distribute subtasks of a task across a cluster corresponds to Applicant’s establishing a correspondence between the currently pending task and each current target computing unit in a case that the currently pending task is 1 in number. This is because the mapping of subtasks to resources corresponds to establishing a correspondence, and it is possible for there to be a situation in this system where there is 1 currently pending task, corresponding to the currently pending task being 1 in number.),
Bernardin further discloses wherein the current target computing unit is a target computing unit that is idle at the current moment and has no correspondence with any of currently pending task ([0119] Engines are typically installed on network processors, where they utilize intermittently available processing capacity that would otherwise go unused. This is accomplished by running an extremely lightweight background process on the Engine. This invocation process monitors the operating system and launches an Engine when it detects an appropriate idle condition. Please note that launching an Engine when it detects an appropriate idle condition to utilize intermittently available processing capacity of network processors corresponds to Applicant’s current target computing unit being a target computing unit that is idle at the current moment and has no correspondence with any of the currently pending tasks.).
Regarding Claim 19, Bernardin-Lin as described in Claim 1, Bernardin further discloses wherein the target computing unit is further configured to: determine whether the target upgrade program is to be solidified; write the target upgrade program into a storage unit of the target computing unit if the target upgrade program is to be solidified; ([0063] Properties associated with Engines, Tasks, and Jobs may be "built-in," that is, defined or detected automatically by the remote system components (Drivers and Engines) or assigned automatically by the Broker. The list of Properties associated with each entity may be implemented as a hash table, i.e., a collection of key/value pairs. Please note that implementing the properties associated with engines, tasks, and jobs in a hash table upon determining that they may be built-in corresponds to Applicant’s determining whether the target upgrade program is to be solidified and writing the target upgrade program into a storage unit of the target computing unit if the target upgrade program is to be solidified, as the properties such as the Discriminator corresponding to the upgrade program may become “built-in” by being stored in the hash table data structure for each entity including each task/engine pairing in one embodiment. Since [0075] of the Specification states that “ If the target upgrade program is to be solidified, the target computing unit writes the target upgrade program into a storage unit of the target computing unit;” therefore, when the property is built-in and defined automatically to be implemented as a hash table for the task/engine pairing, this corresponds to being solidified, as in order for the properties to built-in they must be written into storage.)
and write the target upgrade program into a memory of the target computing unit if the target upgrade program is not to be solidified ([0062] defining Discriminators and attaching them to Tasks, Jobs, or Engines […] define a Discriminator to act on all or a subset of Task/Engine pairings and register it directly with the Broker. Please note registering Discriminators directly with the Broker corresponds to writing the target upgrade program into a memory of the target computing unit if the target upgrade program is not to be modified, since each Discriminator is stored into memory by being defined to apply to a category of Tasks to be processed by Engines, as an alternative to being built-in.)
Claims 3-4, 6-7, 9-10, and 17-18 are rejected under 35 U.S.C. 103 as being unpatentable over Bernardin et al. (US 20030191795 A1) in view of Lin (CN112965800A, published 2021-06-15), and further in view of Volos et al. (US 20200110676 A1), hereinafter referred to as Bernardin, Lin, and Volos, respectively.
Regarding Claim 3, Bernardin-Lin as described in Claim 2 does not explicitly disclose determine a part of a currently unfinished task in other target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment
However, Volos discloses determine a part of a currently unfinished task in other target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment ([0063] In accordance with the model and framework described herein, work stealing for dynamic load balancing is performed as follows. If a worker process is in an idle state, meaning that it is available (e.g., not executing other tasks and/or not scheduled to execute other tasks), that worker process can steal tasks from other worker processes that have tasks in their queues remaining to be executed. Please note that the worker process being in an available idle state not executing other tasks and stealing a task from other worker processes that have tasks in their queues remaining to be executed corresponds to Applicant’s determining a part of a currently unfinished task in another target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment. This is because the worker process, corresponding to the target computing unit, that carries out the stealing is idle and not executing a task, corresponding to having finished processing the assigned target task, and in order to steal the task, it is determining a part of a currently unfinished task in another target computing unit, i.e., another worker process, as a newly target task, and the unfinished task has not been processed among target tasks processed by the other target computing unit at the current moment, i.e., is still in the queue of the other worker process remaining to be executed.)
Bernardin-Lin and Volos are both considered to be analogous to the claimed invention because they are in the same field of optimizing task scheduling in computing systems. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Bernardin-Lin to incorporate the teachings of Volos to modify the system as disclosed in Claim 2 to determine a part of a currently unfinished task in another target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, i.e., to carry out task stealing , allowing for reduced failure rates resulting in a more robust system and improved resource utilization and load balancing in the heterogenous computing system, as described in Volos.
Regarding Claim 4, Bernardin-Lin-Volos as described in Claim 3, Bernardin further discloses normalizing performance values of the other target computing unit and n target computing units that have finished processing to determine weights of the other target computing unit and the n target computing units ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines.; [0069] Periodically computing statistical information may involve computing […] (ii) mean normalized time-to-completion for completed task(s) associated with each active job, preferably normalized to account for the capabilities of the processing resources on which the completed tasks execute. Please note that obtaining normalized time-to-completion for completed tasks associated with each active job accounting for the capabilities of the processing resources on which the completed tasks execute corresponds to Applicant’s normalizing performance values of the other target computing unit and n target computing units that have finished processing. Furthermore, the processing times being weighted by a measure of the processing power of the corresponding Engines corresponds to determining weights of the other target computing unit and the n target computing units);
and dividing the currently unfinished task into n+1 subtasks based on the weights of the other target computing unit and the n target computing units, as newly target tasks of the target computing units that have finished processing, wherein processing amount of the subtask has a positive correlation with the corresponding weight ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines. Please note that the broker allocating service to a priority list based on priority weights, where the weighting may be based on a measure of the processing power of the corresponding Engines corresponds to Applicant’s dividing the currently unfinished task into n+1 subtasks based on the weights of the other target computing unit and the n target computing units, as newly target tasks of the target computing units that have finished processing, wherein processing amount of the subtask has a positive correlation with the corresponding weight.).
Regarding Claim 6, Bernardin-Lin as described in Claim 5 does not explicitly disclose determine a part of a currently unfinished task in other target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment
However, Volos discloses determine a part of a currently unfinished task in other target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment ([0063] In accordance with the model and framework described herein, work stealing for dynamic load balancing is performed as follows. If a worker process is in an idle state, meaning that it is available (e.g., not executing other tasks and/or not scheduled to execute other tasks), that worker process can steal tasks from other worker processes that have tasks in their queues remaining to be executed. Please note that the worker process being in an available idle state not executing other tasks and stealing a task from other worker processes that have tasks in their queues remaining to be executed corresponds to Applicant’s determining a part of a currently unfinished task in another target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment. This is because the worker process, corresponding to the target computing unit, that carries out the stealing is idle and not executing a task, corresponding to having finished processing the assigned target task, and in order to steal the task, it is determining a part of a currently unfinished task in another target computing unit, i.e., another worker process, as a newly target task, and the unfinished task has not been processed among target tasks processed by the other target computing unit at the current moment, i.e., is still in the queue of the other worker process remaining to be executed.)
Bernardin-Lin and Volos are both considered to be analogous to the claimed invention because they are in the same field of optimizing task scheduling in computing systems. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Bernardin-Lin to incorporate the teachings of Volos to modify the system as disclosed in Claim 5 to determine a part of a currently unfinished task in another target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, i.e., to carry out task stealing , allowing for reduced failure rates resulting in a more robust system and improved resource utilization and load balancing in the heterogenous computing system, as described in Volos.
Regarding Claim 7, Bernardin-Lin-Volos as described in Claim 6, Bernardin further discloses normalizing performance values of the other target computing unit and n target computing units that have finished processing to determine weights of the other target computing unit and the n target computing units ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines.; [0069] Periodically computing statistical information may involve computing […] (ii) mean normalized time-to-completion for completed task(s) associated with each active job, preferably normalized to account for the capabilities of the processing resources on which the completed tasks execute. Please note that obtaining normalized time-to-completion for completed tasks associated with each active job accounting for the capabilities of the processing resources on which the completed tasks execute corresponds to Applicant’s normalizing performance values of the other target computing unit and n target computing units that have finished processing. Furthermore, the processing times being weighted by a measure of the processing power of the corresponding Engines corresponds to determining weights of the other target computing unit and the n target computing units);
and dividing the currently unfinished task into n+1 subtasks based on the weights of the other target computing unit and the n target computing units, as newly target tasks of the target computing units that have finished processing, wherein processing amount of the subtask has a positive correlation with the corresponding weight ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines. Please note that the broker allocating service to a priority list based on priority weights, where the weighting may be based on a measure of the processing power of the corresponding Engines corresponds to Applicant’s dividing the currently unfinished task into n+1 subtasks based on the weights of the other target computing unit and the n target computing units, as newly target tasks of the target computing units that have finished processing, wherein processing amount of the subtask has a positive correlation with the corresponding weight.).
Regarding Claim 9, Bernardin-Lin as described in Claim 8 does not explicitly disclose determine a part of a currently unfinished task in other target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment
However, Volos discloses determine a part of a currently unfinished task in other target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment ([0063] In accordance with the model and framework described herein, work stealing for dynamic load balancing is performed as follows. If a worker process is in an idle state, meaning that it is available (e.g., not executing other tasks and/or not scheduled to execute other tasks), that worker process can steal tasks from other worker processes that have tasks in their queues remaining to be executed. Please note that the worker process being in an available idle state not executing other tasks and stealing a task from other worker processes that have tasks in their queues remaining to be executed corresponds to Applicant’s determining a part of a currently unfinished task in another target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment. This is because the worker process, corresponding to the target computing unit, that carries out the stealing is idle and not executing a task, corresponding to having finished processing the assigned target task, and in order to steal the task, it is determining a part of a currently unfinished task in another target computing unit, i.e., another worker process, as a newly target task, and the unfinished task has not been processed among target tasks processed by the other target computing unit at the current moment, i.e., is still in the queue of the other worker process remaining to be executed.)
Bernardin-Lin and Volos are both considered to be analogous to the claimed invention because they are in the same field of optimizing task scheduling in computing systems. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Bernardin-Lin to incorporate the teachings of Volos to modify the system as disclosed in Claim 8 to determine a part of a currently unfinished task in another target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, i.e., to carry out task stealing , allowing for reduced failure rates resulting in a more robust system and improved resource utilization and load balancing in the heterogenous computing system, as described in Volos.
Regarding Claim 10, Bernardin-Lin-Volos as described in Claim 9, Bernardin further discloses normalizing performance values of the other target computing unit and n target computing units that have finished processing to determine weights of the other target computing unit and the n target computing units ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines.; [0069] Periodically computing statistical information may involve computing […] (ii) mean normalized time-to-completion for completed task(s) associated with each active job, preferably normalized to account for the capabilities of the processing resources on which the completed tasks execute. Please note that obtaining normalized time-to-completion for completed tasks associated with each active job accounting for the capabilities of the processing resources on which the completed tasks execute corresponds to Applicant’s normalizing performance values of the other target computing unit and n target computing units that have finished processing. Furthermore, the processing times being weighted by a measure of the processing power of the corresponding Engines corresponds to determining weights of the other target computing unit and the n target computing units);
and dividing the currently unfinished task into n+1 subtasks based on the weights of the other target computing unit and the n target computing units, as newly target tasks of the target computing units that have finished processing, wherein processing amount of the subtask has a positive correlation with the corresponding weight ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines. Please note that the broker allocating service to a priority list based on priority weights, where the weighting may be based on a measure of the processing power of the corresponding Engines corresponds to Applicant’s dividing the currently unfinished task into n+1 subtasks based on the weights of the other target computing unit and the n target computing units, as newly target tasks of the target computing units that have finished processing, wherein processing amount of the subtask has a positive correlation with the corresponding weight.).
Regarding Claim 17, Bernardin-Lin as described in Claim 1 does not explicitly disclose determine a part of a currently unfinished task in other target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment
However, Volos discloses determine a part of a currently unfinished task in other target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment ([0063] In accordance with the model and framework described herein, work stealing for dynamic load balancing is performed as follows. If a worker process is in an idle state, meaning that it is available (e.g., not executing other tasks and/or not scheduled to execute other tasks), that worker process can steal tasks from other worker processes that have tasks in their queues remaining to be executed. Please note that the worker process being in an available idle state not executing other tasks and stealing a task from other worker processes that have tasks in their queues remaining to be executed corresponds to Applicant’s determining a part of a currently unfinished task in another target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment. This is because the worker process, corresponding to the target computing unit, that carries out the stealing is idle and not executing a task, corresponding to having finished processing the assigned target task, and in order to steal the task, it is determining a part of a currently unfinished task in another target computing unit, i.e., another worker process, as a newly target task, and the unfinished task has not been processed among target tasks processed by the other target computing unit at the current moment, i.e., is still in the queue of the other worker process remaining to be executed.)
Bernardin-Lin and Volos are both considered to be analogous to the claimed invention because they are in the same field of optimizing task scheduling in computing systems. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Bernardin-Lin to incorporate the teachings of Volos to modify the system as disclosed in Claim 1 to determine a part of a currently unfinished task in another target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, i.e., to carry out task stealing , allowing for reduced failure rates resulting in a more robust system and improved resource utilization and load balancing in the heterogenous computing system, as described in Volos.
Regarding Claim 18, Bernardin-Lin-Volos as described in Claim 17, Bernardin further discloses normalizing performance values of the other target computing unit and n target computing units that have finished processing to determine weights of the other target computing unit and the n target computing units ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines.; [0069] Periodically computing statistical information may involve computing […] (ii) mean normalized time-to-completion for completed task(s) associated with each active job, preferably normalized to account for the capabilities of the processing resources on which the completed tasks execute. Please note that obtaining normalized time-to-completion for completed tasks associated with each active job accounting for the capabilities of the processing resources on which the completed tasks execute corresponds to Applicant’s normalizing performance values of the other target computing unit and n target computing units that have finished processing. Furthermore, the processing times being weighted by a measure of the processing power of the corresponding Engines corresponds to determining weights of the other target computing unit and the n target computing units);
and dividing the currently unfinished task into n+1 subtasks based on the weights of the other target computing unit and the n target computing units, as newly target tasks of the target computing units that have finished processing, wherein processing amount of the subtask has a positive correlation with the corresponding weight ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines. Please note that the broker allocating service to a priority list based on priority weights, where the weighting may be based on a measure of the processing power of the corresponding Engines corresponds to Applicant’s dividing the currently unfinished task into n+1 subtasks based on the weights of the other target computing unit and the n target computing units, as newly target tasks of the target computing units that have finished processing, wherein processing amount of the subtask has a positive correlation with the corresponding weight.).
Claims 11, 14 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Bernardin et al. (US 20030191795 A1) in view of Lin (CN112965800A, published 2021-06-15) as applied to Claim 1 above, and further in view of Haiyang (CN113127173A, published 2021-07-16), hereinafter referred to as Bernardin, Lin, and Haiyang, respectively.
Regarding Claim 11, Bernardin-Lin as described in Claim 1 does not explicitly disclose wherein the generation of the task scheduling strategy based on the currently pending task comprises: in a case that the plurality of target computing units correspond to the same currently pending task, dividing the currently pending task into subtasks equal in number to the plurality of target computing units, wherein the subtask is the target task to be processed by the corresponding target computing unit.
However, Haiyang discloses wherein the generation of the task scheduling strategy based on the currently pending task comprises: in a case that the plurality of target computing units correspond to the same currently pending task, dividing the currently pending task into subtasks equal in number to the plurality of target computing units, wherein the subtask is the target task to be processed by the corresponding target computing unit ([0013] a task acquisition unit configured to acquire a first computing task submitted by a user and classify it into several computing tasks currently pending processing; a throughput estimation unit configured to determine an estimated throughput value for the first computing task; a subtask determination unit configured to determine multiple subtasks corresponding to the first computing task. Please note that the determination of multiple subtasks corresponding to the first computing task via a subtask determination unit corresponds to Applicant’s dividing the currently pending task into subtasks equal in number to the plurality of target computing units, wherein the subtask is the target task to be processed by the corresponding target computing unit, in a case that the plurality of target computing units correspond to the same currently pending task, i.e., when there is one task queued and pending processing, and the system would allow for the distribution of the task into subtasks equal to the number of computing units to achieve efficient parallel processing, where each subtask would be a target task to be processed by the corresponding target computing unit.).
Bernardin-Lin and Haiyang are both considered to be analogous to the claimed invention because they are in the same field of computer task scheduling. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Bernardin-Lin to incorporate the teachings of Haiyang to modify the system as disclosed in Claim 1 to divide the currently pending task into subtasks equal in number to the plurality of target computing units, wherein the subtask is the target task to be processed by the corresponding target computing unit in a case that the plurality of target computing units correspond to the same currently pending task, allowing for improved efficiency and performance via parallelism in the task scheduling scheme, as described in Haiyang.
Regarding Claim 14, Bernardin-Lin-Haiyang as described in Claim 11, Bernardin further discloses wherein the division of the currently pending task into subtasks equal in number to the plurality of target computing units comprises: optimizing performance parameters of the plurality of target computing units, wherein the optimized performance parameters have a higher degree of discrimination than the unoptimized performance parameters ([0060] Scoring Discriminators may also impose a minimum-score restriction, so that no Task will be assigned to an Engine for which the score assigned to the resulting Task/Engine pairing is below the minimum threshold. In this case, the algorithm may be modified so that the Broker will continue to check additional waiting Tasks, beyond the specified number, if necessary, in order to find a first Task that yields a score above the minimum threshold. Please note that the Scoring Discriminators used for Task/Engine pairing where no score will be below a minimum threshold corresponds to Applicant’s optimizing performance parameters of the plurality of target computing units, wherein the optimized performance parameters have a higher degree of discrimination than the unoptimized performance parameters, because the resulting score, i.e., optimized performance parameters, obtained by the Discriminator will result in values guaranteed to be higher than a minimum threshold as compared to not using the Discriminator, i.e., a higher degree of discrimination than the unoptimized performance parameters.);
determining performance values of the plurality of target computing units with the optimized performance parameters of the target computing units as an input of a performance function model, wherein the performance function model represents a functional relationship between the performance parameter of the computing unit and the performance value of the computing unit ([0069] Periodically computing statistical information may involve computing […] (i) mean time-to-completion for completed task(s) associated with each active job; (ii) mean normalized time-to-completion for completed task(s) associated with each active job, preferably normalized to account for the capabilities of the processing resources on which the completed tasks execute. Please note that computing statistical information including obtaining normalized time-to-completion for completed tasks associated with each active job accounting for the capabilities of the processing resources on which the completed tasks execute corresponds to Applicant’s determining performance values for the plurality of target computing units with the optimized performance parameters of the target computing units as an input of a performance function model, wherein the performance function model represents a functional relationship between the performance parameter of the computing unit and the performance value of the computing unit. This is because the mean time-to-completion may serve as a performance function model representing a functional relationship between the performance parameter and performance value of the computing unit, i.e., the statistical information that is computing may be used to determine the relationship between the processing resource configured with optimized parameters as previously disclosed and the time-to-completion, or the performance value. The task’s performance by the processing resource with the optimized parameters from the discriminator is the input, and the output is the performance value that is the mean time-to-completion of the task.);
normalizing the performance values of the plurality of target computing units to determine weights of the plurality of target computing units ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines.; [0069] Periodically computing statistical information may involve computing […] (ii) mean normalized time-to-completion for completed task(s) associated with each active job, preferably normalized to account for the capabilities of the processing resources on which the completed tasks execute. Please note that obtaining normalized time-to-completion for completed tasks associated with each active job accounting for the capabilities of the processing resources on which the completed tasks execute corresponds to Applicant’s normalizing the performance values of the plurality of target computing units to determine weights of the plurality of target computing units. Furthermore, the processing times being weighted by a measure of the processing power of the corresponding Engines corresponds to determining weights of the plurality of target computing units.);
and dividing the currently pending task into subtasks equal to the number of the plurality of target computing units based on the weights, wherein processing amount of the subtask has a positive correlation with the corresponding weight ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines. Please note that the broker allocating service to a priority list based on priority weights, where the weighting may be based on a measure of the processing power of the corresponding Engines corresponds to Applicant’s dividing the currently pending task into subtasks equal to the number of the plurality of target computing units based on the weights, wherein processing amount of the subtask has a positive correlation with the corresponding weight.).
Regarding Claim 20, Bernardin-Lin as described in Claim 1 does not explicitly disclose wherein the heterogeneous computing terminal is further configured to send an interrupt signal to the target computing unit when receiving a task change instruction for changing the initial task set; the target computing unit is further configured to still process the target task until part or all of the target task is completely processed, and send a processing completion signal; and the heterogeneous computing terminal is further configured to newly generate a task scheduling strategy in response to the processing completion signal.
However, Haiyang discloses wherein the heterogeneous computing terminal is further configured to send an interrupt signal to the target computing unit when receiving a task change instruction for changing the initial task set; the target computing unit is further configured to still process the target task until part or all of the target task is completely processed, and send a processing completion signal; and the heterogeneous computing terminal is further configured to newly generate a task scheduling strategy in response to the processing completion signal ([0053] if you set the execution of a task to be paused and its progress preserved each time a heterogeneous cluster is scheduled, and then reallocate computing chips for all tasks. Please note that setting execution of a task to be paused and its progress preserved each time a heterogenous cluster is scheduled corresponds to Applicant’s heterogeneous computing terminal sending an interrupt signal to the target computing unit when receiving a task change instruction for changing the initial task set and still processing the target task until part or all of the target task is completely processed, and sending a processing completion signal. This is because setting the execution of the task to be paused when scheduling happens corresponds to sending an interrupt signal when receiving a task change instruction, and pausing while saving progress corresponds to still processing the target task until part of the task is completely processed, since part of the task is finished processing as the signal is received, i.e., there is a processing completion signal to enact the pause. Furthermore, reallocating computing chips for the tasks in response to the heterogenous cluster being scheduled corresponds to newly generating a task scheduling strategy in response to the processing completion signal.).
Bernardin-Lin and Haiyang are both considered to be analogous to the claimed invention because they are in the same field of computer task scheduling. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Bernardin-Lin to incorporate the teachings of Haiyang to modify the system as disclosed in Claim 1 to send an interrupt signal to the target computing unit when receiving a task change instruction for changing the initial task set, still process the target task until part or all of the target task is completely processed, and send a processing completion signal, further newly generating a task scheduling strategy in response to the processing completion signal, allowing for improved system flexibility in the task scheduling scheme, as described in Haiyang.
Claims 12-13, 15 and 16 are rejected under 35 U.S.C. 103 as being unpatentable over Bernardin et al. (US 20030191795 A1) in view of Lin (CN112965800A, published 2021-06-15), further in view of Haiyang (CN113127173A, published 2021-07-16) as applied to Claims 11 and 14 above, and further in view of Volos et al. (US 20200110676 A1), hereinafter referred to as Bernardin, Lin, Haiyang, and Volos, respectively.
Regarding Claim 12, Bernardin-Lin-Haiyang as described in Claim 11 does not explicitly disclose determine a part of a currently unfinished task in other target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment
However, Volos discloses determine a part of a currently unfinished task in other target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment ([0063] In accordance with the model and framework described herein, work stealing for dynamic load balancing is performed as follows. If a worker process is in an idle state, meaning that it is available (e.g., not executing other tasks and/or not scheduled to execute other tasks), that worker process can steal tasks from other worker processes that have tasks in their queues remaining to be executed. Please note that the worker process being in an available idle state not executing other tasks and stealing a task from other worker processes that have tasks in their queues remaining to be executed corresponds to Applicant’s determining a part of a currently unfinished task in another target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment. This is because the worker process, corresponding to the target computing unit, that carries out the stealing is idle and not executing a task, corresponding to having finished processing the assigned target task, and in order to steal the task, it is determining a part of a currently unfinished task in another target computing unit, i.e., another worker process, as a newly target task, and the unfinished task has not been processed among target tasks processed by the other target computing unit at the current moment, i.e., is still in the queue of the other worker process remaining to be executed.)
Bernardin-Lin-Haiyang and Volos are both considered to be analogous to the claimed invention because they are in the same field of optimizing task scheduling in computing systems. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Bernardin-Lin-Haiyang to incorporate the teachings of Volos to modify the system as disclosed in Claim 11 to determine a part of a currently unfinished task in another target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, i.e., to carry out task stealing , allowing for reduced failure rates resulting in a more robust system and improved resource utilization and load balancing in the heterogenous computing system, as described in Volos.
Regarding Claim 13, Bernardin-Lin-Haiyang-Volos as described in Claim 12, Bernardin further discloses normalizing performance values of the other target computing unit and n target computing units that have finished processing to determine weights of the other target computing unit and the n target computing units ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines.; [0069] Periodically computing statistical information may involve computing […] (ii) mean normalized time-to-completion for completed task(s) associated with each active job, preferably normalized to account for the capabilities of the processing resources on which the completed tasks execute. Please note that obtaining normalized time-to-completion for completed tasks associated with each active job accounting for the capabilities of the processing resources on which the completed tasks execute corresponds to Applicant’s normalizing performance values of the other target computing unit and n target computing units that have finished processing. Furthermore, the processing times being weighted by a measure of the processing power of the corresponding Engines corresponds to determining weights of the other target computing unit and the n target computing units);
and dividing the currently unfinished task into n+1 subtasks based on the weights of the other target computing unit and the n target computing units, as newly target tasks of the target computing units that have finished processing, wherein processing amount of the subtask has a positive correlation with the corresponding weight ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines. Please note that the broker allocating service to a priority list based on priority weights, where the weighting may be based on a measure of the processing power of the corresponding Engines corresponds to Applicant’s dividing the currently unfinished task into n+1 subtasks based on the weights of the other target computing unit and the n target computing units, as newly target tasks of the target computing units that have finished processing, wherein processing amount of the subtask has a positive correlation with the corresponding weight.).
Regarding Claim 15, Bernardin-Lin-Haiyang as described in Claim 14 does not explicitly disclose determine a part of a currently unfinished task in other target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment
However, Volos discloses determine a part of a currently unfinished task in other target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment ([0063] In accordance with the model and framework described herein, work stealing for dynamic load balancing is performed as follows. If a worker process is in an idle state, meaning that it is available (e.g., not executing other tasks and/or not scheduled to execute other tasks), that worker process can steal tasks from other worker processes that have tasks in their queues remaining to be executed. Please note that the worker process being in an available idle state not executing other tasks and stealing a task from other worker processes that have tasks in their queues remaining to be executed corresponds to Applicant’s determining a part of a currently unfinished task in another target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, wherein the currently unfinished task is a task that has not been processed among target tasks processed by the other target computing unit at the current moment. This is because the worker process, corresponding to the target computing unit, that carries out the stealing is idle and not executing a task, corresponding to having finished processing the assigned target task, and in order to steal the task, it is determining a part of a currently unfinished task in another target computing unit, i.e., another worker process, as a newly target task, and the unfinished task has not been processed among target tasks processed by the other target computing unit at the current moment, i.e., is still in the queue of the other worker process remaining to be executed.)
Bernardin-Lin-Haiyang and Volos are both considered to be analogous to the claimed invention because they are in the same field of optimizing task scheduling in computing systems. Therefore, it would have been obvious to someone of ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Bernardin-Lin-Haiyang to incorporate the teachings of Volos to modify the system as disclosed in Claim 14 to determine a part of a currently unfinished task in another target computing unit as a newly target task of the target computing unit after finishing processing the assigned target task, i.e., to carry out task stealing , allowing for reduced failure rates resulting in a more robust system and improved resource utilization and load balancing in the heterogenous computing system, as described in Volos.
Regarding Claim 16, Bernardin-Lin-Haiyang-Volos as described in Claim 15, Bernardin further discloses normalizing performance values of the other target computing unit and n target computing units that have finished processing to determine weights of the other target computing unit and the n target computing units ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines.; [0069] Periodically computing statistical information may involve computing […] (ii) mean normalized time-to-completion for completed task(s) associated with each active job, preferably normalized to account for the capabilities of the processing resources on which the completed tasks execute. Please note that obtaining normalized time-to-completion for completed tasks associated with each active job accounting for the capabilities of the processing resources on which the completed tasks execute corresponds to Applicant’s normalizing performance values of the other target computing unit and n target computing units that have finished processing. Furthermore, the processing times being weighted by a measure of the processing power of the corresponding Engines corresponds to determining weights of the other target computing unit and the n target computing units);
and dividing the currently unfinished task into n+1 subtasks based on the weights of the other target computing unit and the n target computing units, as newly target tasks of the target computing units that have finished processing, wherein processing amount of the subtask has a positive correlation with the corresponding weight ([0036] The proportion of service that the Broker allocates to competing priority lists is based on an N-tuple of non-negative integer Priority Weights, where N is the number of distinct priorities. In particular, if the N-tuple of Priority Weights is given by (w1, w2, . . . , wN), then the Broker distributes priority-1 Tasks until either the priority-1 list is empty, or it has distributed w1 Tasks.; [0048] To account for heterogeneous processing capabilities, the Broker may weight the actual processing times by some measure of the processing power of the corresponding Engines. Please note that the broker allocating service to a priority list based on priority weights, where the weighting may be based on a measure of the processing power of the corresponding Engines corresponds to Applicant’s dividing the currently unfinished task into n+1 subtasks based on the weights of the other target computing unit and the n target computing units, as newly target tasks of the target computing units that have finished processing, wherein processing amount of the subtask has a positive correlation with the corresponding weight.).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Raj (US 20170220383 A1) discloses determining a workload capacity for particular workload agents, determined normalized workload parameter values, and using it to select candidate workload agents for job scheduling of computing tasks (see [0004-0007, 0108, 0113-0117]).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to FARAZ T AKBARI whose telephone number is (571)272-4166. The examiner can normally be reached Monday-Thursday 9:30am-7:30pm 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, April Blair can be reached at (571)270-1014. 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.
/FARAZ T AKBARI/Examiner, Art Unit 2196
/HIREN P PATEL/Primary Examiner, Art Unit 2196