Scriptable Dynamic Load Balancing for Heterogeneous Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Heterogeneous-processing computer systems face challenges in load balancing due to the tradeoff between adaptability and simplicity, as existing dynamic load balancers require significant resources and time for implementation and maintenance, while static load balancers struggle to adapt to new processor types and architectures.

Innovation Solution

A scriptable dynamic load balancing approach is implemented, where a load balancer executes a script with configurable rules to distribute loads among heterogeneous processors based on load and processor characteristics, allowing for adaptable and efficient load distribution without the complexity of traditional dynamic load balancers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a dynamic load balancer is used to adapt to new processor types and architectures, then adaptability is improved, but implementation complexity and maintenance resources increase significantly

Engineering Contradiction:
ImproveadaptabilityVSAvoidimplementation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The load balancer uses runtime scripts to dynamically determine processor selection and load division strategies, allowing the system to adapt to different processor types and architectures without requiring complex static configuration. The scriptable approach enables the load balancing behavior to be modified and updated easily while maintaining relatively simple system architecture.

Inventive Principle:
Principle #15Dynamics

2Device complexity

If a static load balancer with hard-coded rules is used, then implementation simplicity is improved, but adaptability to new processor types and architectures deteriorates

Engineering Contradiction:
Improveimplementation simplicityVSAvoidadaptability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system combines static load balancer architecture with dynamic scriptable rules, allowing simple implementation while maintaining adaptability through configurable scripts that can be updated at runtime to support new processor types and architectures without requiring system redesign.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The load balancing behavior is controlled through configurable parameters and scripts that can be modified to adapt to different processor characteristics, load types, and system architectures, enabling a simple base implementation to become adaptable through parameter configuration rather than structural complexity.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If dynamic load balancing with multiple queues is implemented, then load processing efficiency is improved, but system complexity and resource requirements increase

Engineering Contradiction:
Improveload processing efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements dynamic load balancing using scripts that determine load division and processor selection at runtime, achieving improved load processing efficiency through adaptive decision-making while keeping the underlying queue structure and system architecture relatively simple and manageable.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9910714B2Scriptable dynamic load balancing in computer systems
Publication Date: 2018.03.06 ADVANCED MICRO DEVICES INC
  • US9910714B2 patent drawing
  • US9910714B2 patent drawing
  • US9910714B2 patent drawing

AI summary

The described embodiments include a system for executing a load using a first processor and a seond processor in a computer system. During operation, a load balancer executing on the first processor obtains one or more attributes of a load to be executed on the computer system. Next, the load balancer applies a set of configurable rules to the one or more attributes to select a processor from the first and second processors for executing the load. Finally, the system executes the load on the selected processor.