Parallel Programming Model for Combinatorial Optimization
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


