Thread Coordination via Segmented Synchronization Primitives
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing synchronization primitives in computer systems are inefficient, causing excessive waiting among threads when one thread takes a long time to complete, leading to delayed execution of other threads.
Innovation Solution
Employing a coordination mechanism that uses two high-level primitives, the Mark primitive and the AfterAll primitive, allowing additional task sections to execute between marked points and coordination points, thereby improving efficiency by enabling partial thread processing while waiting for completion of initial task sections.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a single synchronization primitive is used to coordinate tasks among threads, then thread coordination is achieved, but execution efficiency deteriorates due to excessive waiting
Solution Approach 1:
The patent divides the single synchronization primitive into two separate primitives: a first synchronization primitive that allows threads to proceed independently after completing their first task section, and a second synchronization primitive that coordinates the second task sections. This segmentation eliminates the bottleneck where all threads must wait for the slowest thread, thereby improving execution efficiency while maintaining coordination reliability.
2Reliability
If threads wait for the slowest thread to complete before proceeding, then synchronization is maintained, but waiting time increases excessively
Solution Approach 1:
The patent segments the synchronized execution into two independent phases using two different synchronization primitives. Threads execute their first task sections and call the first synchronization primitive independently without blocking each other. Only when threads need to execute their second task sections do they coordinate through the second synchronization primitive. This reduces waiting time by allowing independent progression in the first phase while maintaining synchronization in the second phase.
3Reliability
If all threads must complete their first task section before any thread can execute its second task section, then task coordination is ensured, but overall processing speed decreases
Solution Approach 1:
The patent divides task execution into two distinct segments coordinated by different synchronization primitives. The first segment allows threads to complete their first task sections and invoke the first synchronization primitive independently. The second segment coordinates the execution of second task sections through the second synchronization primitive. This segmentation enables parallel processing in the first segment while maintaining coordinated execution in the second segment, thereby improving overall processing speed without sacrificing task coordination reliability.
Data Source
AI summary
To coordinate tasks executed by a plurality of threads that each includes plural task sections, a call of a mark primitive to mark a first point after a first of the plural task sections is provided. Also, a call of a second primitive is provided to indicate that a second of the plural task sections is not allowed to begin until after the plurality of threads have each reached the first point.


