Program Conversion Device Eliminates Conditional Branches
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing program conversion methods are inefficient, as they do not effectively optimize program execution by eliminating conditional branches, which hinders parallel processing and increases execution time.
Innovation Solution
A program conversion device and method that analyzes programs to detect conditional branches, calculates their execution results, and generates new programs without conditional branches, using combinations of conditional expressions and calculation portions where only one expression is true, facilitating faster execution through parallel processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If programs include conditional branches to handle different execution paths, then program logic can be expressed flexibly, but program execution efficiency decreases and parallel processing becomes difficult
Solution Approach 1:
The patent segments the program into multiple independent threads, each executing a specific calculation portion. The conditional branch is replaced by distributing different calculation portions to different threads, allowing parallel execution while maintaining the original conditional logic through thread selection based on condition evaluation.
Solution Approach 2:
The patent introduces dynamic thread creation and selection mechanisms where threads are created on-demand based on condition evaluation. The system dynamically determines which threads to execute based on the conditional expressions, enabling flexible adaptation to different execution scenarios while optimizing for parallel processing efficiency.
2Adaptability or versatility
If conditional branches are used to control execution flow, then program can handle multiple scenarios, but execution time increases due to sequential processing
Solution Approach 1:
The patent divides the program into multiple independent calculation portions that can be executed simultaneously by different threads. Each calculation portion corresponds to a potential execution scenario, allowing all scenarios to be prepared in parallel rather than sequentially, thereby reducing execution time while maintaining comprehensive scenario coverage.
Solution Approach 2:
The patent performs preliminary analysis to identify all possible execution scenarios and pre-computes the corresponding calculation portions in parallel threads. This preliminary action allows the system to avoid sequential execution by having multiple calculation results ready simultaneously, significantly reducing the overall execution time for handling multiple scenarios.
3Productivity
If programs are converted to eliminate conditional branches, then parallel processing capability improves, but program complexity increases during conversion
Solution Approach 1:
The patent introduces an intermediary conversion layer that automatically transforms conditional branches into parallel thread structures. This intermediary mechanism handles the complexity of conversion by systematically analyzing conditional expressions and generating appropriate thread configurations, shielding the user from conversion complexity while enabling parallel processing capability.
Solution Approach 2:
The patent changes the fundamental execution parameters from sequential conditional branching to parallel thread-based execution. The conversion process transforms the program structure by changing execution parameters such as adding thread pools, modifying execution models, and adjusting memory access patterns, thereby enabling parallel processing while managing conversion complexity through systematic parameter transformation.
Data Source
AI summary
A program conversion device analyzes a first program and detects a portion of the first program that includes a conditional branch and calculates a value according to an execution result of the conditional branch; and generates, on the basis of the analysis result, a second program including a plurality of combinations of a conditional expression and a calculation expression and using a value indicated by the calculation expression combined with the conditional expression that becomes true, wherein the calculation expression indicates the value and does not include a conditional branch and only one conditional expression from among the plurality of conditional expressions becomes true.


