Multi-processor Job Scheduling via Global Local Coordination

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multi-processor scheduling algorithms face challenges with high job migration rates and low real-time utilization, leading to unstable system performance and increased load, particularly in systems with delays and limited memory performance.

Innovation Solution

A method involving a global job scheduling function that communicates with local scheduling functions to maintain status information and laxity values, allowing jobs to be dispatched and recalled based on processor idle times, reducing job migrations, and enabling efficient load sharing across processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If global scheduling algorithms like EDF, LLF, or PFair are used in multi-processor systems, then real-time utilization can be improved, but job migration rates increase significantly leading to unstable system performance

Engineering Contradiction:
Improvereal-time utilizationVSAvoidsystem performance stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The scheduling function is segmented into global and local components. The global scheduler maintains an overview and makes high-level decisions, while local schedulers on each processor handle job execution and make local optimization decisions. This segmentation reduces the frequency and impact of job migrations across processors while maintaining high real-time utilization through coordinated local scheduling.

Inventive Principle:
Principle #1Segmentation

2Productivity

If global scheduling with full migration is used, then processor utilization can be increased, but the number of scheduler invocations overwhelms the system

Engineering Contradiction:
Improveprocessor utilizationVSAvoidscheduler invocation overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The scheduling decision-making process is extracted from a purely global centralized model. Local schedulers are empowered to make autonomous scheduling decisions based on local processor states, reducing the number of global scheduler invocations. The global scheduler only intervenes when necessary for system-wide optimization, significantly reducing overhead while maintaining high processor utilization.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If job migrations are increased to improve load balancing, then processor utilization improves, but system performance becomes unstable due to accelerating load increase

Engineering Contradiction:
Improveprocessor utilizationVSAvoidsystem load stability
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The scheduling system performs preliminary actions by maintaining updated status information about processor idle times and job laxity values in advance. This allows the scheduler to proactively allocate jobs to processors that will be idle soon, preventing the need for reactive job migrations. By anticipating processor availability and job urgency, the system achieves load balancing without the instability caused by frequent reactive migrations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2256632B1Multi-processor scheduling
Publication Date: 2013.07.31 TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
  • EP2256632B1 patent drawingFigure 1~3
  • EP2256632B1 patent drawingFigure 4A
  • EP2256632B1 patent drawingFigure 4B

AI summary

Scheduling of processing jobs in a multi-processor computing apparatus is described. A global job scheduling function (102) communicates with a plurality of local job scheduling functions (112), each local job scheduling function being associated with a respective processor (108). The global job scheduling function maintains updated status information regarding any idle processor, points in time when any processor is expected to be idle, and laxity values associated with any processor. The global job scheduling function schedules jobs by dispatching jobs to the local job scheduling functions and the dispatching is conditioned on the status information. Jobs are recalled from the local job scheduling functions at any non-idle processor and any recalled job is dispatched to a local job scheduling function at an idle processor. Interrupted jobs are received from the local job scheduling functions, and any received interrupted job is dispatched to a local job scheduling function, the dispatching being conditioned on the status information.