Inducing concurrency in software code
First Claim
1. A system, comprising:
- one or more processors;
a memory coupled to the one or more processors, wherein the memory is configured to store program instructions executable by the one or more processors to implement a framework to induce multi-threading, wherein the framework comprises;
a concurrent code generator configured to receive marked code comprising sequential code having one or more blocks of code marked for concurrent execution, wherein each marked block of code is marked by including a marker method call within the code to suggest the block for potential concurrent execution, wherein the concurrent code generator is configured to generate concurrent code from the marked code, wherein the concurrent code comprises one or more tasks configured for concurrent execution in place of the one or more marked blocks of code; and
a scheduler configured to schedule one or more of the tasks for multi-threaded execution.
2 Assignments
0 Petitions
Accused Products
Abstract
An Induced Multi-threading (IMT) framework may be configured to induce multi-threaded execution in software code. In one embodiment, the IMT framework may include a concurrent code generator configured to receive marked code having one or more blocks of code marked for concurrent execution. Software code initially intended for sequential execution may have been automatically marked by an automated code marker and/or marked manually to generate the marked code. The concurrent code generator may be configured to generate concurrent code from the marked code. The concurrent code may include one or more tasks configured for concurrent execution in place of the one or more marked blocks of code. In one embodiment, the IMT framework may also include a scheduler configured to schedule one or more of the tasks for multi-threaded execution.
-
Citations
33 Claims
-
1. A system, comprising:
-
one or more processors; a memory coupled to the one or more processors, wherein the memory is configured to store program instructions executable by the one or more processors to implement a framework to induce multi-threading, wherein the framework comprises; a concurrent code generator configured to receive marked code comprising sequential code having one or more blocks of code marked for concurrent execution, wherein each marked block of code is marked by including a marker method call within the code to suggest the block for potential concurrent execution, wherein the concurrent code generator is configured to generate concurrent code from the marked code, wherein the concurrent code comprises one or more tasks configured for concurrent execution in place of the one or more marked blocks of code; and a scheduler configured to schedule one or more of the tasks for multi-threaded execution. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method, comprising:
-
receiving marked code comprising sequential code having one or more blocks of code marked for concurrent execution, wherein each marked block of code is marked by including a marker within the code to suggest the block for potential concurrent execution; generating concurrent code from the marked code, wherein the concurrent code comprises one or more tasks configured for concurrent execution in place of the one or more marked blocks of code, and wherein the concurrent code comprises one or more tasks transformed from a class in the marked code into a derived class; and scheduling one or more of the tasks for multi-threaded execution. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A tangible, computer accessible storage medium comprising program instructions, wherein the program instructions are executable to implement:
-
receiving marked code comprising sequential code having one or more blocks of code marked for concurrent execution, wherein the marked code comprises a marker for each block of code marked for concurrent execution; generating concurrent code from the marked code, wherein the concurrent code comprises one or more tasks configured for concurrent execution in place of the one or more marked blocks of code; and scheduling one or more of the tasks for multi-threaded execution according to priority information included with the marker for the corresponding marked block. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
Specification