Programmatic implicit multithreading

US10915355B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10915355-B2
Application numberUS-201916378928-A
CountryUS
Kind codeB2
Filing dateApr 9, 2019
Priority dateFeb 28, 2017
Publication dateFeb 9, 2021
Grant dateFeb 9, 2021

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 mechanism is provided for programmatic implicit multithreading. A first operation is executed on a first thread in a processor, where the first operation is from a set of operations within a block of code of an application that are distinct and process unrelated data. A determination is made as to whether a time limit associated with executing the first operation has been exceeded. Responsive to the time limit being exceeded, a determination is made as to whether there is one or more unexecuted operations in the set of operations. Responsive to one or more unexecuted operations existing in the set of operations, a new thread is spawned off on the processor to execute a next unexecuted operation of the one or more unexecuted operations.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, in a data processing system comprising a processor and a memory coupled to the processor, for programmatic implicit multithreading, the method comprising: executing a first operation on a first thread in the processor, wherein the first operation is from a set of operations within a block of code of an application that are distinct and process unrelated data; determining whether a time limit associated with executing the first operation has been exceeded; responsive to the time limit being exceeded, determining whether there is one or more unexecuted operations in the set of operations; and responsive to one or more unexecuted operations existing in the set of operations, spawning off a new thread on the processor to execute a next unexecuted operation of the one or more unexecuted operations. 2. The method of claim 1 , further comprising: responsive to the time limit failing to be exceeded, determining whether the first operation has completed; responsive to the first operation completing before the time limit is exceeded, determining whether there is one or more unexecuted operations in the set of operations; and responsive to one or more unexecuted operations existing in the set of operations, executing the next unexecuted operation of the one or more unexecuted operations. 3. The method of claim 1 , further comprising: for each unexecuted operation in the one or more unexecuted operations spawned off to a new associated thread due to a previous operation exceeding the time limit; executing the unexecuted operation on the new associated thread in the processor thereby forming a executing operation; determining whether a time limit associated with the executing operation has been exceeded; responsive to the time limit being exceeded, determining whether there is one or more unexecuted operations in the set of operations; and responsive to one or more unexecuted operations existing in the set of operations, spawning off an associated thread on the processor to execute the next unexecuted operation of the one or more unexecuted operations. 4. The method of claim 1 , further comprising: responsive to all operations in the set of operations completing execution, rejoining a parent thread of the application. 5. The method of claim 1 , wherein the set of operations within the block of code of the application that are distinct and process unrelated data are identified within the block of code. 6. The method of claim 1 , wherein the time limit is a default time limit that triggers parallelization of operations within the block of code of the application that are distinct and process unrelated data when the default time limit has been exceeded and wherein the default time limit is used when a predetermined time limit fails to be identified within the block of code of the application. 7. A computer program product comprising a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a computing device, causes the computing device to: execute a first operation on a first thread in a processor, wherein the first operation is from a set of operations within a block of code of an application that are distinct and process unrelated data; determine whether a time limit associated with executing the first operation has been exceeded; responsive to the time limit being exceeded, determine whether there is one or more unexecuted operations in the set of operations; and responsive to one or more unexecuted operations existing in the set of operations, spawn off a new thread on the processor to execute a next unexecuted operation of the one or more unexecuted operations. 8. The computer program product of claim 7 , wherein the computer readable program further causes the computing device to: responsive to the time limit failing to be exceeded, determine whether the first operation has completed; responsive to the first operation completing before the time limit is exceeded, determine whether there is one or more unexecuted operations in the set of operations; and responsive to one or more unexecuted operations existing in the set of operations, execute the next unexecuted operation of the one or more unexecuted operations. 9. The computer program product of claim 7 , wherein the computer readable program further causes the computing device to: for each unexecuted operation in the one or more unexecuted operations spawned off to a new associated thread due to a previous operation exceeding the time limit; execute the unexecuted operation on the new associated thread in the processor thereby forming a executing operation; determine whether a time limit associated with the executing operation has been exceeded; responsive to the time limit being exceeded, determine whether there is one or more unexecuted operations in the set of operations; and responsive to one or more unexecuted operations existing in the set of operations, spawn off an associated thread on the processor to execute the next unexecuted operation of the one or more unexecuted operations. 10. The computer program product of claim 7 , wherein the computer readable program further causes the computing device to: responsive to all op the set of operations completing execution, rejoin a parent thread of the application. 11. The computer program product of claim 7 , wherein the set of operations within the block of code of the application that are distinct and process unrelated data are identified within the block of code. 12. The computer program product of claim 7 , wherein the time limit is a default time limit that triggers parallelization of operations within the block of code of the application that are distinct and process unrelated data when the default time limit has been exceeded and wherein the default time limit is used when a predetermined time limit fails to be identified within the block of code of the application. 13. An apparatus comprising: a processor; and a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to: execute a first operation on a first thread in the processor, wherein the first operation is from a set of operations within a block of code of an application that are distinct and process unrelated data; determine whether a time limit associated with executing the first operation has been exceeded; responsive to the time limit being exceeded, determine whether there is one or more unexecuted operations in the set of operations; and responsive to one or more unexecuted operations existing in the set of operations, spawn off a new thread on the processor to execute a next unexecuted operation of the one or more unexecuted operations. 14. The apparatus of claim 13 , wherein the instructions further cause the processor to: responsive to the time limit failing to be exceeded, determine whether the first operation has completed; responsive to the first operation completing before the time limit is exceeded, determine whether there is one or more unexecuted operations in the set of operations; and responsive to one or more unexecuted operations existing in the set of operations, execute the next unexecuted operation of the one or more unexecuted operations. 15. The apparatus of claim 13 , wherein the instructions further cause the processor to: for each unexecuted operation in the one or more unexecuted operations spawned off to a new associated thread due to a previous operation exceeding the time limit; execut

Assignees

Inventors

Classifications

  • G06F9/4881Primary

    Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title

  • G06F9/48Primary

    Program initiating; Program switching, e.g. by interrupt · 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 US10915355B2 cover?
A mechanism is provided for programmatic implicit multithreading. A first operation is executed on a first thread in a processor, where the first operation is from a set of operations within a block of code of an application that are distinct and process unrelated data. A determination is made as to whether a time limit associated with executing the first operation has been exceeded. Responsive…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/4881. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 09 2021 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 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).