Kernel Processor Grouping for Scalable Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As the number of processors in systems increases, existing technologies often fail to match the expected processing capacity, leading to bottlenecks and issues such as synchronization and correctness problems when applications designed for fewer processors are scaled up, resulting in inefficient resource utilization and erratic performance.

Innovation Solution

The technique involves statically grouping individual processors into kernel-level groups based on physical locality, allowing threads to be assigned and processed on a group basis, thereby simplifying the operating system's task distribution and minimizing scheduling burdens, especially in large-scale processor systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the number of processors in a system is increased to improve processing capacity, then the system can handle more tasks, but bottlenecks and synchronization issues occur when running applications designed for fewer processors

Engineering Contradiction:
Improveprocessing capacityVSAvoidsynchronization correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system segments the large set of available processors into multiple smaller processor groups, where each group can independently execute applications. This segmentation allows applications designed for fewer processors to run within a dedicated group, avoiding synchronization issues, while other groups handle additional processing tasks, thereby maintaining high productivity.

Inventive Principle:
Principle #1Segmentation

2Productivity

If individual threads are distributed to various processors to maximize utilization, then processing efficiency improves, but scheduling complexity and bottlenecks increase

Engineering Contradiction:
Improveprocessor utilizationVSAvoidscheduling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system merges multiple individual processors into processor groups that function as unified scheduling units. Instead of the scheduler managing each processor individually, it manages groups of processors, significantly reducing scheduling complexity. Threads are assigned to processor groups, which then distribute work internally, maintaining high utilization while simplifying the scheduling layer.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If applications are run on systems with more processors than designed for, then resource utilization should improve, but erratic performance and correctness issues occur

Engineering Contradiction:
Improveresource utilizationVSAvoidapplication performance stability
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system applies local quality by creating processor groups with specific characteristics suited for different application types. Each processor group can be optimized and isolated for particular workloads, ensuring that applications run in an environment matching their design expectations. This local optimization within groups maintains performance stability while the overall system achieves high resource utilization through multiple groups.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8881163B2Kernel processor grouping
Publication Date: 2014.11.04 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8881163B2 patent drawing
  • US8881163B2 patent drawing
  • US8881163B2 patent drawing

AI summary

Techniques for grouping individual processors into assignment entities are discussed. Statically grouping processors may permit threads to be assigned on a group basis. In this manner, the burden of scheduling threads for processing may be minimized, while the processor within the assignment entity may be selected based on the physical locality of the individual processors within the group. The groupings may permit a system to scale to meet the processing demands of various applications.