Dynamic workload distribution for data processing

US12033003B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12033003-B2
Application numberUS-202117443782-A
CountryUS
Kind codeB2
Filing dateJul 27, 2021
Priority dateJul 27, 2021
Publication dateJul 9, 2024
Grant dateJul 9, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12033003B2 cover?
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 …
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/5083. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 09 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).