Parallel Programming Model for Combinatorial Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Dynamic programming for combinatorial optimization in parallel computing environments faces challenges due to the inability of common programming language facilities to effectively map processing threads to sub-problems and manage state preservation across multiple threads, leading to inefficiencies in solving hierarchical optimization problems.

Innovation Solution

A programming model that enables transparent parallelization of combinatorial optimization by encoding optimization steps, managing state, and preserving the state of optimization steps, allowing for efficient decomposition and recombination of sub-problems across multiple processing threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If common programming language facilities (recursive function calls) are used to solve combinatorial optimization problems, then state preservation and sub-problem solving work well in single-threaded environments, but thread mapping and state management become ineffective in parallel computing environments

Engineering Contradiction:
Improvestate preservationVSAvoidparallel computing adaptability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent segments the combinatorial optimization problem into independent sub-problems that can be solved in parallel. Each sub-problem is assigned to a separate processing thread, allowing simultaneous computation while maintaining state through structured data representations. This segmentation enables the system to overcome the limitations of recursive function calls in parallel environments by dividing the problem space into manageable, independently solvable units.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary layer between the problem definition and the parallel processing threads. This intermediary manages the mapping of threads to sub-problems and handles state preservation across threads using structured data representations. The intermediary abstracts the complexity of parallel state management, allowing each thread to operate independently while maintaining consistency with the overall problem state.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If processing threads are mapped to sub-problems in parallel environments, then computational speed improves, but common programming language facilities like recursion fail to function as expected

Engineering Contradiction:
Improvecomputational speedVSAvoidrecursion functionality
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent employs dynamic thread assignment and state management mechanisms that adapt to the parallel computing environment. Instead of relying on static recursive function calls, the system dynamically maps processing threads to sub-problems based on available resources and problem structure. This dynamic approach maintains recursion-like functionality in parallel environments by using structured data representations that can be efficiently accessed and modified by multiple threads simultaneously.

Inventive Principle:
Principle #15Dynamics

3Quantity of substance

If the number of sub-problems exceeds the number of processing threads, then comprehensive problem coverage is achieved, but thread utilization efficiency decreases

Engineering Contradiction:
Improvenumber of sub-problemsVSAvoidthread utilization efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent implements preliminary actions by pre-organizing the problem space into sub-problems that can be efficiently mapped to available processing threads. Before parallel execution begins, the system structures the sub-problems and prepares the mapping strategy, allowing threads to be effectively utilized when they become available. This preliminary organization ensures that when threads are assigned to sub-problems, the mapping is optimized for both comprehensive coverage and efficient thread utilization.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9052969B2Programming model for transparent parallelization of combinatorial optimization
Publication Date: 2015.06.09 EMC IP HLDG CO LLC
  • US9052969B2 patent drawing
  • US9052969B2 patent drawing
  • US9052969B2 patent drawing

AI summary

Each of a plurality of subtasks is configured to explore and assess alternative solutions for a combinatorial optimization problem by a reentrant finite state machine is represented. Each of a plurality of threads is configured to perform operations comprising a subtask until either completion or a blocked state is reached and, in the event a blocked state is reached, to move on to performing another subtask that is not currently in a blocked state.