Multithreaded Program Parameter Optimization via Piecewise-Rational Functions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for optimizing program parameters in multithreaded programming are limited by the need for new models for each unique workload or hardware configuration, require manual tuning, and fail to model the holistic relationship between program, data, and hardware parameters effectively, relying on extensive low-level metric consideration or specific training data.

Innovation Solution

Generating low-level and high-level metric functions that calculate respective metrics, allowing for the determination of program parameter values that optimize high-level metrics, such as execution time and hardware occupancy, across various hardware configurations without the need for input training data, using piecewise-rational functions and symbolic hardware parameter values.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If new models are generated for each unique workload or hardware configuration, then optimization accuracy is improved, but device complexity and time consumption increase

Engineering Contradiction:
Improveoptimization accuracyVSAvoidmodel generation complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent creates a universal model generation system that can handle multiple workload types and hardware configurations through a single framework. The system uses standardized templates and parameter mappings that work across different scenarios, eliminating the need to create entirely new models for each case while maintaining optimization accuracy.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system optimizes performance by dynamically adjusting program parameters based on hardware characteristics and workload properties. Instead of generating new models, it modifies existing parameter values (such as thread counts, block sizes, and memory allocation) to achieve optimal performance across different configurations.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If manual tuning interfaces are provided for user adjustment, then adaptability is improved, but ease of operation deteriorates due to requiring expert knowledge

Engineering Contradiction:
Improveparameter tuning flexibilityVSAvoiduser tuning difficulty
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The system performs automatic model generation and parameter optimization without requiring user intervention. It self-adjusts program parameters by analyzing hardware characteristics and workload properties, eliminating the need for manual tuning while maintaining adaptability to different configurations.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system uses performance feedback from execution to automatically refine parameter selections. By monitoring actual performance metrics and comparing them against predicted values, the system iteratively improves parameter choices without requiring user expertise or manual adjustment.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If exhaustive consideration of low-level metrics is performed, then measurement precision is improved, but productivity decreases due to large computational requirements

Engineering Contradiction:
Improvemetric measurement accuracyVSAvoidoptimization speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system extracts only the most relevant low-level metrics needed for optimization, rather than analyzing all possible metrics exhaustively. It identifies and focuses on critical performance indicators that have the greatest impact on overall system performance, reducing computational overhead while maintaining measurement precision.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The optimization process is divided into distinct stages, each analyzing specific subsets of metrics. The system segments the complex optimization problem into manageable parts, analyzing different metric groups at appropriate levels of detail to balance precision and computational efficiency.

Inventive Principle:
Principle #1Segmentation

4Measurement precision

If precise input training data is required, then optimization accuracy is improved, but loss of information increases when dealing with sensitive data

Engineering Contradiction:
Improveoptimization precisionVSAvoiddata confidentiality
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The system uses synthetic or representative data copies instead of actual sensitive training data. It creates artificial workloads that replicate the statistical properties and performance characteristics of real data without containing the actual sensitive information, maintaining optimization precision while protecting data confidentiality.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10901713B2Optimizing program parameters in multithreaded programming
Publication Date: 2021.01.26 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10901713B2 patent drawing
  • US10901713B2 patent drawing
  • US10901713B2 patent drawing

AI summary

Optimizing program parameters in multithreaded programming may include: generating, for a program, a plurality of low-level metric functions, each of the low-level metric functions calculating a respective low-level metric of a plurality of low-level metrics; generating one or more high-level metric functions for one or more high-level metrics, each of the one or more high-level metric functions comprising a piecewise-rational function based on one or more of the low-level metric functions; and generate, based on the one or more high level-metric functions, one or more data parameter values and one or more hardware parameter values, one or more program parameter values for executing the program, wherein the one or more program parameter values are configured to optimize the one or more high-level metrics.