Container Hardware Multithreading Configuration via SMT Parameters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing container configurations do not allow for per-container adjustment of thread usage, leading to suboptimal performance as different workloads within containers have varying requirements for latency and throughput, resulting in inefficient resource utilization.

Innovation Solution

A method that enables the configuration of a maximum number of hardware threads per processor core during container initialization, allowing for selective core allocation and thread configuration based on specified parameters, such as SMT settings, to optimize thread usage for specific workloads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If containers share the OS kernel and run as isolated processes, then resource utilization improves and deployment speed increases, but per-container thread configuration control is lost leading to suboptimal performance

Engineering Contradiction:
Improvedeployment speedVSAvoidper-container thread configuration
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent applies local quality by introducing container-specific configuration files that allow each container to have customized thread settings (SMT parameters) while sharing the common OS kernel. This enables different thread allocation strategies for different containers based on their specific workload requirements, rather than applying a uniform configuration to all containers.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent segments the thread configuration control by introducing a container-level configuration layer between the OS kernel and individual container workloads. This segmentation allows the system to maintain the benefits of kernel sharing while enabling fine-grained control over thread allocation for each container through separate configuration files and initialization procedures.

Inventive Principle:
Principle #1Segmentation

2Productivity

If hardware multithreading is enabled with maximum threads per core, then throughput increases, but latency-sensitive workloads suffer from increased wait time due to thread contention

Engineering Contradiction:
ImprovethroughputVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies dynamics by making thread configuration adjustable and workload-specific rather than static and uniform. Container administrators can dynamically set SMT parameters based on whether the workload is latency-sensitive or throughput-oriented, allowing the system to adapt thread allocation to match the specific performance characteristics required by each application.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent enables parameter changes by introducing configurable SMT parameters at the container level. Different containers can have different numbers of threads per core configured based on their performance requirements, allowing optimization of the thread-to-core ratio for each workload type without affecting other containers.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If per-container thread configuration is implemented, then workload-specific optimization improves, but system complexity increases due to additional configuration management

Engineering Contradiction:
Improveworkload-specific performanceVSAvoidconfiguration management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies self-service by enabling container administrators to configure thread settings through simple configuration files that are read during container initialization. This self-service approach allows users to optimize their own containers without requiring complex system-wide configuration changes or deep knowledge of underlying hardware multithreading mechanisms.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent implements preliminary action by configuring thread settings in advance through configuration files before container execution begins. The container initialization procedure reads these pre-configured settings and applies them automatically, eliminating the need for complex runtime configuration management or system administrator intervention during container deployment.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11983561B2Configuring hardware multithreading in containers
Publication Date: 2024.05.14 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11983561B2 patent drawing
  • US11983561B2 patent drawing
  • US11983561B2 patent drawing

AI summary

As part of a container initialization procedure, a maximum number of hardware threads per processor core in a set of cores of a computer system are enabled, the container initialization procedure configuring an operating system executing on the computer system for container execution and configuring a first container for execution on the operating system. From a set of available cores in the set of cores, an execution core is selected. In the selected execution core, a number of threads per core to be used during execution of the first container is configured, the number of threads per core specified for the container initialization procedure by a first simultaneous multithreading (SMT) parameter. Using the configured execution core, the first container is executed, the executing virtualizing the operating system.