Method of using a distinct flow of computational control as a reusable abstract data object
First Claim
1. A method of parallel processing in a memory structure comprising:
- creating a first thread in the memory structure which represents an independent flow of control managed by a program structure, said first thread having two states, a first state processing work for the program structure and a second state undispatched awaiting work to process;
providing a second thread in the memory structure which represents an independent flow of control managed by a program structure separate from the first thread;
using the second thread to prepare work for the first thread to process;
placing the work prepared by the second thread in a queue for processing by the first thread and marking the work as not complete;
if the first thread is in the second state awaiting work to process when the work prepared by the second thread is placed in the queue, dispatching the first thread and using it to process the work in the queue;
if the first thread is in the first state processing other work when the work prepared by the second thread is placed in the queue, using the first thread to complete processing of the other work, access the work in the queue, and then process the work in the queue; and
using the program structure to destroy the first thread in the memory structure after the first thread completes a desired amount of work.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of parallel processing in which there is first provided a first thread which represents an independent flow of control managed by a program structure, the first thread having two states, a first state processing work for the program structure and a second state undispatched awaiting work to process; and a second thread which represents an independent flow of control managed by a program structure separate from the first thread. The method includes using the second thread to prepare work for the first thread to process and placing the work prepared by the second thread in a queue for processing by the first thread. If the first thread is awaiting work to process when the work prepared by the second thread is placed in the queue, the method includes dispatching the first thread and using it to process the work in the queue. If the first thread is processing other work when the work prepared by the second thread is placed in the queue, the method includes using the first thread to complete processing of the other work, access the work in the queue, and then process the work in the queue.
-
Citations
14 Claims
-
1. A method of parallel processing in a memory structure comprising:
-
creating a first thread in the memory structure which represents an independent flow of control managed by a program structure, said first thread having two states, a first state processing work for the program structure and a second state undispatched awaiting work to process; providing a second thread in the memory structure which represents an independent flow of control managed by a program structure separate from the first thread; using the second thread to prepare work for the first thread to process; placing the work prepared by the second thread in a queue for processing by the first thread and marking the work as not complete; if the first thread is in the second state awaiting work to process when the work prepared by the second thread is placed in the queue, dispatching the first thread and using it to process the work in the queue; if the first thread is in the first state processing other work when the work prepared by the second thread is placed in the queue, using the first thread to complete processing of the other work, access the work in the queue, and then process the work in the queue; and using the program structure to destroy the first thread in the memory structure after the first thread completes a desired amount of work. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of parallel processing in a memory structure comprising:
-
creating a first thread in the memory structure which represents an independent flow of control managed by a program structure, said first thread having two states, a first state processing work for the program structure and a second state undispatched awaiting work to process; providing a second thread in the memory structure which represents an independent flow of control managed by a program structure separate from the first thread; using the second thread to prepare work for the first thread to process; placing the work prepared by the second thread in a queue for processing by the first thread, the work placed in the queue being marked as not complete; if the first thread is in the second state awaiting work to process when the work prepared by the second thread is placed in the queue, dispatching the first thread and using it to process the work in the queue; if the first thread is in the first state processing other work when the work prepared by the second thread is placed in the queue, using the first thread to complete processing of the other work, access the work in the queue, and then process the work in the queue; using the second thread to place additional work in the queue; using the first thread to sequentially process the additional work in the queue as it completes processing prior work; and using the program structure to destroy the first thread in the memory structure after the first thread completes a desired amount of work. - View Dependent Claims (7, 8, 9)
-
-
10. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps of parallel processing in a memory structure using i) a first thread which represents an independent flow of control managed by a program structure, said first thread having two states, a first state processing work for the program structure and a second state undispatched awaiting work to process, and ii) a second thread which represents an independent flow of control managed by a program structure separate from the first thread, said method steps comprising:
-
creating the first thread; using the second thread to prepare work for the first thread to process; placing the work prepared by the second thread in a queue for processing by the first thread and marking the work as not complete; if the first thread is in the second state awaiting work to process when the work prepared by the second thread is placed in the queue, dispatching the first thread and using it to process the work in the queue; if the first thread is in the first state processing other work when the work prepared by the second thread is placed in the queue, using the first thread to complete processing of the other work, access the work in the queue, and then process the work in the queue; and using the program structure to destroy the first thread in the memory structure after the first thread completes a desired amount of work. - View Dependent Claims (11, 12, 13, 14)
-
Specification