Thread Group Scheduling for Multiprocessor Resource Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multiprocessor systems, existing thread scheduling methods fail to efficiently utilize processor resources and manage data communication between threads, leading to suboptimal processing efficiency and resource utilization.
Innovation Solution
The proposed solution organizes execution units into groups, maps processor resources exclusively to each group's address space, and controls their assignment to processors such that all execution units within a group are assigned simultaneously, prioritizing groups based on priority levels and arrival order, and allows groups to be assigned to processors only when all units are available, thereby optimizing resource allocation and reducing reassignment costs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If threads are scheduled individually using conventional methods (round-robin or priority scheduling), then CPU time can be assigned to threads, but processing efficiency and resource utilization are suboptimal in multiprocessor systems
Solution Approach 1:
The patent merges multiple threads into thread groups that are scheduled and assigned to processors as unified units. This combining approach allows the system to optimize resource allocation at the group level, improving processing efficiency by ensuring that related threads execute together on available processors, while simplifying the overall scheduling complexity through group-based management.
Solution Approach 2:
The patent segments the thread pool into distinct thread groups that can be independently managed and scheduled. By dividing threads into groups with common characteristics or relationships, the system can apply scheduling decisions to entire groups rather than individual threads, improving efficiency while reducing scheduling complexity through hierarchical management.
2Productivity
If threads are assigned to processors without grouping constraints, then processor resources can be utilized, but resource utilization and data communication efficiency deteriorate
Solution Approach 1:
The patent combines threads that require frequent data communication into the same thread groups, which are then assigned to processors together. This merging ensures that threads sharing data access requirements are co-located on the same processor or closely coupled processors, improving resource utilization while maintaining efficient data communication through reduced inter-processor data transfer needs.
3Productivity
If thread assignment does not consider simultaneous group assignment, then individual threads can be scheduled flexibly, but reassignment costs increase and efficiency deteriorates
Solution Approach 1:
The patent merges threads into groups that are assigned to processors simultaneously as unified units. This approach improves assignment efficiency by making batch assignments rather than individual assignments, thereby reducing the overhead and time loss associated with repeated assignment operations. When reassignment is needed, entire groups can be reassigned together, minimizing reassignment costs.
Data Source
AI summary
A thread status managing unit organizes a plurality of threads into groups and manages the status of the thread groups. A ready queue queues thread groups in a ready state or a running state in the order of priority and, within the same priority level, in the FIFO order. An assignment list generating unit sequentially retrieves the thread groups from the ready queue. The assignment list appends a retrieved thread group to a thread assignment list only when all threads belonging to the retrieved thread group are assignable to the respective processors at the same time. A thread assigning unit assigns all threads belonging to the thread groups stored in the thread assignment list to the respective processors.


