Multithreaded Task Scheduler for Multi-Core Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-core processors face inefficiencies in task scheduling due to parallelization problems, synchronization issues, and resource competition, leading to suboptimal performance and energy usage when executing multithreaded applications.

Innovation Solution

A task scheduler that analyzes thread coupling degree, bandwidth utilization rate, and speedup profile to dynamically assign tasks to cores within or across core clusters, optimizing communication and synchronization among threads and utilizing hardware prefetchers to maintain data locality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If default OS scheduling algorithms are used to assign tasks to cores, then the scheduling process is simple and easy to implement, but performance is suboptimal due to parallelization problems, synchronization issues, and resource competition

Engineering Contradiction:
Improveexecution performanceVSAvoidscheduling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The scheduling system dynamically adapts its behavior based on real-time workload characteristics. The task scheduler analyzes thread coupling degree, bandwidth utilization rate, and speedup profile to determine optimal scheduling strategies, transitioning between different scheduling modes (e.g., cluster-aware vs. cluster-agnostic) depending on the application's parallelization needs and resource competition patterns.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback mechanisms by monitoring execution performance metrics and using them to adjust scheduling decisions. The task scheduler collects information about thread synchronization patterns, cache hit rates, and inter-core communication frequencies, then uses this feedback to optimize task-to-core assignments and resolve synchronization issues iteratively.

Inventive Principle:
Principle #23Feedback

2Reliability

If tasks are assigned to cores within the same core cluster, then communication and synchronization among threads are optimized, but resource competition increases leading to suboptimal overall performance

Engineering Contradiction:
Improvesynchronization efficiencyVSAvoidoverall execution performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The scheduling system applies different assignment strategies to different task characteristics. For tasks with high thread coupling degree requiring frequent synchronization, the scheduler assigns tasks to cores within the same cluster to optimize communication. For tasks with low coupling or high bandwidth utilization needs, the scheduler distributes tasks across different clusters to reduce resource competition. This localized optimization approach tailors the scheduling strategy to the specific needs of each task.

Inventive Principle:
Principle #3Local quality

3Productivity

If more cores are utilized to execute multithreaded applications, then productivity increases, but energy consumption increases

Engineering Contradiction:
Improveexecution throughputVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The scheduling system employs partial core utilization by carefully selecting the number and configuration of active cores based on the specific workload characteristics. Rather than always utilizing all available cores, the scheduler determines the optimal subset of cores needed to achieve the required throughput, leaving other cores in a low-power state. This approach applies partial action (using only necessary cores) to balance productivity and energy efficiency.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8347301B2Device, system, and method of scheduling tasks of a multithreaded application
Publication Date: 2013.01.01 TAHOE RES LTD
  • US8347301B2 patent drawing
  • US8347301B2 patent drawing
  • US8347301B2 patent drawing

AI summary

Device, system, and method of executing multithreaded applications. Some embodiments include a task scheduler to receive application information related to one or more parameters of at least one multithreaded application to be executed by a multi-core processor including a plurality of cores and, based on the application information and based on architecture information related to an arrangement of the plurality of cores, to assign one or more tasks of the multithreaded application to one or more cores of the plurality of cores. Other embodiments are described and claimed.