Small barrier with local spinning
First Claim
1. A computer-implemented system for thread management, comprising:
- a barrier component for processing threads locally at corresponding memory locations when meeting a process barrier; and
a stack component for processing stack blocks associated with the threads at the barrier.
2 Assignments
0 Petitions
Accused Products
Abstract
A barrier with local spinning. The barrier is described as a barrier object having a bit vector embedded as a pointer. If the vector bit is zero, the object functions as a counter; if the vector bit is one, the object operates as a pointer to a stack. The object includes the total number of threads required to rendezvous at the barrier to trigger release of the threads. The object points to a stack block list that describes each thread that has arrived at the barrier. Arriving at the barrier involves reading the top stack block, pushing onto the list a stack block for the thread that just arrived, decrementing the thread count, and spinning on corresponding local memory locations or timing out and blocking. When the last thread arrives at the barrier, the barrier is reset and all threads at the barrier are awakened for the start of the next process.
32 Citations
20 Claims
-
1. A computer-implemented system for thread management, comprising:
-
a barrier component for processing threads locally at corresponding memory locations when meeting a process barrier; and a stack component for processing stack blocks associated with the threads at the barrier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-implemented method of managing threads, comprising:
-
processing a thread received at a process barrier according to a barrier object, the barrier object defined as a bit vector of a pointer; and controlling the thread at a local memory location based on state of a next thread relative to the barrier. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer-implemented system, comprising:
-
computer-implemented means for processing a thread received at a process barrier according to a barrier object, the barrier object defined as a bit vector of a pointer; and computer-implemented means for controlling the thread at a local memory location based on state of a next thread relative to the barrier.
-
Specification