Fine-Grained Runtime Work Scheduling for Parallel Loops

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current parallel computing systems face challenges in efficiently managing work distribution among multiple threads in shared-memory machines, leading to load imbalance and increased overhead, especially with workloads that have variable CPU demands and bursty patterns, making it difficult to tune applications for different hardware configurations.

Innovation Solution

A runtime system that implements fine-grained distribution of loop iterations among multiple threads, integrated with a resource management layer, using techniques like asynchronous request combining and per-core iteration counts to reduce the need for tuning and achieve low overhead, supporting very fine-grained scheduling down to single iterations of 1K cycles.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional parallel computing systems use fixed resource requirements and long stable CPU-bound phases, then scheduling overhead is low and system stability is high, but adaptability to variable CPU demands and different hardware configurations is poor

Engineering Contradiction:
Improveadaptability to variable CPU demandsVSAvoidscheduling complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic scheduling by allowing runtime adjustment of the number of hardware contexts per socket based on actual workload demands. The system dynamically allocates and deallocates hardware contexts during execution, enabling adaptation to variable CPU demands while maintaining manageable scheduling complexity through automated resource management.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs feedback mechanisms where runtime monitors actual hardware context utilization and workload characteristics. Based on this feedback, the runtime adjusts the number of active hardware contexts per socket, optimizing resource allocation for variable CPU demands without requiring complex manual configuration.

Inventive Principle:
Principle #23Feedback

2Productivity

If multiple workloads are run on the same shared machine to improve hardware utilization, then resource efficiency increases, but interference between workloads increases

Engineering Contradiction:
Improvehardware utilizationVSAvoidworkload interference
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent segments hardware contexts by socket, creating isolated execution domains. Each workload is assigned to specific sockets with dedicated hardware contexts, preventing interference between workloads while maintaining high hardware utilization. This segmentation allows multiple workloads to run concurrently on shared machine without mutual disruption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The runtime system acts as an intermediary layer between workloads and hardware contexts. It manages socket-to-workload mappings and coordinates hardware context allocation, enabling efficient resource sharing while isolating workloads from direct interference. The runtime mediates resource access to ensure fair and interference-free execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If manual tuning is performed to optimize work distribution for specific hardware configurations, then performance is maximized for that configuration, but ease of operation decreases and adaptability to different hardware is reduced

Engineering Contradiction:
Improveperformance optimizationVSAvoidtuning effort
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The runtime system performs self-tuning by automatically determining optimal hardware context allocation based on detected workload characteristics. It monitors execution patterns and autonomously adjusts the number of hardware contexts per socket, eliminating the need for manual tuning while maintaining performance optimization across different hardware configurations.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system automatically changes scheduling parameters such as the number of hardware contexts per socket based on detected workload patterns. By dynamically adjusting these parameters without user intervention, the system achieves performance optimization for each hardware configuration while maintaining ease of operation through automated parameter management.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If fine-grained distribution of loop iterations is implemented to reduce load imbalance, then performance improves, but scheduling overhead increases

Engineering Contradiction:
ImproveperformanceVSAvoidscheduling overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges the scheduling of loop iterations with the existing hardware context allocation process. By combining these operations, the system achieves fine-grained distribution of work without adding separate scheduling overhead. The iteration distribution is integrated into the hardware context management framework, eliminating redundant scheduling steps.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11157321B2Fine-grained scheduling of work in runtime systems
Publication Date: 2021.10.26 ORACLE INT CORP
  • US11157321B2 patent drawing
  • US11157321B2 patent drawing
  • US11157321B2 patent drawing

AI summary

A runtime system for distributing work between multiple threads in multi-socket shared memory machines that may support fine-grained scheduling of parallel loops. The runtime system may implement a request combining technique in which a representative thread requests work on behalf of other threads. The request combining technique may be asynchronous; a thread may execute work while waiting to obtain additional work via the request combining technique. Loops can be nested within one another, and the runtime system may provide control over the way in which hardware contexts are allocated to the loops at the different levels. An “inside out” approach may be used for nested loops in which a loop indicates how many levels are nested inside it, rather than a conventional “outside in” approach to nesting.