Infrastructure driven auto-scaling of workloads
US-2024419470-A1 · Dec 19, 2024 · US
US12033003B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12033003-B2 |
| Application number | US-202117443782-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 27, 2021 |
| Priority date | Jul 27, 2021 |
| Publication date | Jul 9, 2024 |
| Grant date | Jul 9, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A computer-implemented method, according to one embodiment, includes: receiving a data process that includes a plurality of sub-processes. A unique subset of the sub-processes is assigned to each of: a managing thread, and at least one other thread. Moreover, performance characteristics of each of the threads is evaluated while the respective subsets of sub-processes are being performed, and a determination is made as to whether the performance characteristics of each of the threads are substantially equal to the performance characteristics of each of the other threads. In response to determining that performance characteristics of each of the threads are not substantially equal, the subsets of the sub-processes are dynamically adjusted such that the performance characteristics of each of the threads become more equal. Moreover, the adjusted subsets of the sub-processes are reassigned to each of the managing thread and at least one other thread.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method, comprising: receiving a data process at a managing thread, wherein the data process includes a plurality of sub-processes; assigning, by the managing thread, a unique subset of the sub-processes to each of: the managing thread, and at least one other thread; causing, by the managing thread, each of the subsets of sub-processes to be performed by the thread to which the respective subset is assigned; evaluating, by the managing thread, performance characteristics of each of the threads while the respective subsets of sub-processes are being performed; determining, by the managing thread, whether the performance characteristics of each of the threads are substantially equal to the performance characteristics of each of the other threads; in response to determining that performance characteristics of each of the threads are not substantially equal to the performance characteristics of each of the other threads, dynamically adjusting, by the managing thread, a number of the sub-processes that are included in each of the subsets of the sub-processes such that the performance characteristics of each of the threads become more equal; reassigning, by the managing thread, the adjusted subsets of the sub-processes to each of the managing thread and the at least one other thread; and causing, by the managing thread, each of the adjusted subsets of the sub-processes to be performed by the thread to which the respective adjusted subset is assigned. 2. The computer-implemented method of claim 1 , wherein causing each of the subsets of sub-processes to be performed by the thread to which the respective subset is assigned includes causing the subsets of sub-processes to be performed by each of the respective threads simultaneously and in parallel. 3. The computer-implemented method of claim 1 , wherein evaluating performance characteristics of each of the threads includes, for each of the threads: determining a wait time experienced by the thread since being assigned the respective subset of sub-processes; and comparing the wait time experienced by the thread to wait times experienced by the remaining threads since being assigned the respective subsets of sub-processes. 4. The computer-implemented method of claim 3 , wherein determining whether the performance characteristics of each of the threads are substantially equal to the performance characteristics of each of the other threads includes: determining whether a difference between the wait time experienced by the thread and the wait times experienced by the remaining threads is outside a predetermined range; and in response to determining the difference between the wait time experienced by the thread and the wait times experienced by the remaining threads is outside the predetermined range, determining that the performance characteristics of the threads is not substantially equal. 5. The computer-implemented method of claim 1 , comprising: in response to determining that performance characteristics of each of the threads are substantially equal to the performance characteristics of each of the other threads, maintaining the assignment of the subsets of sub-processes to the threads to which assigned. 6. The computer-implemented method of claim 1 , wherein the data process is a sort process having: input/output (I/O) sub-processes, sorting sub-processes, and supplemental sub-processes. 7. The computer-implemented method of claim 6 , wherein assigning a unique subset of the sub-processes to each of: the managing thread and at least one other thread includes: assigning the I/O sub-processes to the managing thread; assigning the sorting sub-processes to a sort thread; dividing the supplemental sub-processes into a first portion and a second portion; assigning the first portion of the supplemental sub-processes to the managing thread; and assigning the second portion of the supplemental sub-processes to the sort thread. 8. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable and/or executable by a processor cause the processor to: receive, by the processor via a managing thread executing on the processor, a data process that includes a plurality of sub-processes; assign, by the processor via the managing thread, a unique subset of the sub-processes to each of: the managing thread, and at least one other thread; cause, by the processor via the managing thread, each of the subsets of sub-processes to be performed by the thread to which the respective subset is assigned; evaluate, by the processor via the managing thread, performance characteristics of each of the threads while the respective subsets of sub-processes are being performed; determine, by the processor via the managing thread, whether the performance characteristics of each of the threads are substantially equal to the performance characteristics of each of the other threads; in response to determining that performance characteristics of each of the threads are not substantially equal to the performance characteristics of each of the other threads, dynamically adjust, by the processor via the managing thread, a number of the sub-processes that are included in each of the subsets of the sub-processes such that the performance characteristics of each of the threads become more equal; reassign, by the processor via the managing thread, the adjusted subsets of the sub-processes to each of the managing thread and at least one other thread; and cause, by the processor via the managing thread, each of the adjusted subsets of the sub-processes to be performed by the thread to which the respective adjusted subset is assigned. 9. The computer program product of claim 8 , wherein causing each of the subsets of sub-processes to be performed by the thread to which the respective subset is assigned includes causing the subsets of sub-processes to be performed by each of the respective threads simultaneously and in parallel. 10. The computer program product of claim 8 , wherein evaluating performance characteristics of each of the threads includes, for each of the threads: determining a wait time experienced by the thread since being assigned the respective subset of sub-processes; and comparing the wait time experienced by the thread to wait times experienced by the remaining threads since being assigned the respective subsets of sub-processes. 11. The computer program product of claim 10 , wherein determining whether the performance characteristics of each of the threads are substantially equal to the performance characteristics of each of the other threads includes: determining whether a difference between the wait time experienced by the thread and the wait times experienced by the remaining threads is outside a predetermined range; and in response to determining the difference between the wait time experienced by the thread and the wait times experienced by the remaining threads is outside the predetermined range, determining that the performance characteristics of the threads is not substantially equal. 12. The computer program product of claim 8 , wherein the program instructions are readable and/or executable by the processor to cause the processor to: in response to determining that performance characteristics of each of the threads are substantially equal to the performance characteristics of each of the other threads, maintain, by the processor, the assignment of the subsets of sub-processes to the threads to which assigned. 13. The computer program product of claim 8 , wherein
from multiple instruction streams, e.g. multistreaming · CPC title
Monitor · CPC title
Task decomposition · CPC title
Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451) · CPC title
Thread allocation · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.